ItsyBitsy M4. Но программировал не на CircuitPython, а на Arduino IDE.
Простите, но сдается мне вы продолжаете писать чушь.
У вас на выходе вашего преобразования что - ШИМ сигнал? - почитайте, что это такое.
В вашей схеме мосфет управляется напряжением 3.3в и никаких других промежуточных напряжений там нет.
Ну ладно вы не отличаете биполярные транзисторы от полевых, ну , хрен с ним, что задавая вроде конкретный вопрос - вы кидаете ссылку на сайт с кучей картинок видео и текста, То, что уёдет ещё “диапазон” из-за жесткости пружины - вы тоже не понимаете. Но оказывается есть готовый сайт, с готовыми изделиями, и готовой логикой и программами и вы , тем не менее, здесь считаете тролями местных? Пожалуй я откажусь.
Вот такой:
// Port of code at https://efundies.com/src/arduino/midi-solenoids.ino
// to use fortyseveneffects MIDI library and Adafuit_TinyUSB
// Be sure to set Tools -> USB Stack: Adafruit TinyUSB in Arduino IDE
#include <Adafruit_TinyUSB.h>
#include <MIDI.h>
// USB MIDI object
Adafruit_USBD_MIDI usb_midi;
// Create a new instance of the Arduino MIDI Library,
// and attach usb_midi as the transport.
MIDI_CREATE_INSTANCE(Adafruit_USBD_MIDI, usb_midi, MIDIusb);
// these are the arduino pins that the solenoids are hooked up to
enum drumPins {kickPin = 9, snarePin = 1, hhPin = 2, crashPin = 3, cowbellPin = 4 , openhatPin = 5};
// these are the midi notes that each solenoid triggers on, as well as an alternate for each
enum midiNotes {kickMidi = 36, snareMidi = 38, hhMidi = 42, crashMidi = 49, cowbellMidi = 39, openhatMidi = 46};
enum midiNoteAlts {kickMidiAlt = 48, snareMidiAlt = 44, hhMidiAlt = 45, crashMidiAlt = 149, cowbellMidiAlt = 47, openhatMidiAlt = 146};
void setup() {
MIDIusb.begin(MIDI_CHANNEL_OMNI);
MIDIusb.turnThruOff(); // turn off MIDI loop echo
MIDIusb.setHandleNoteOn(handleNoteOn);
MIDIusb.setHandleNoteOff(handleNoteOff);
// the serial port is just used as a monitor for debugging
// it is not needed for midi
Serial.begin(115200);
// setup output pins
pinMode(A4, OUTPUT);
}
void loop() {
// read any new MIDI messages
MIDIusb.read();
// everything happens in handleNoteOn
}
void handleNoteOn(byte channel, byte pitch, byte velocity) {
// it is possible to use the actual midi velocity here, just be sure to
// double to value because midi is 0-127
// and then change digitalWrite to analogWrite
velocity=velocity*2;
switch (pitch) {
case kickMidi:
case kickMidiAlt:
Serial.print("Kick: ");
// digitalWrite(kickPin, velocity);
for(int i=0; i<=velocity; i=i+20) {
analogWrite(A4, i);
Serial.print(i);
delay(10);
}
break;
default:
// print the midi note value, handy for adding new notes
Serial.print("Note(");
Serial.print(pitch);
Serial.print("): ");
break;
}
if(velocity == 0) {
Serial.println("off");
} else {
Serial.println("on");
}
}
void handleNoteOff(byte channel, byte pitch, byte velocity) {
Serial.println("NoteOff");
analogWrite(A4, 0);
}
Не горячитесь. Во-первых, у меня нет пружин, т.к. я использую другой соленоид. Во-вторых, готовое изделие с сайта (его механическая часть меня не устраивает).
Давайте вы тоже не будете горячиться) Выход А4 у ItsyBitsy - аналоговый. И программно через analogWrite() я обеспечиваю разное управляющее напряжение в зависимости от “уровня” (велосити) приходящего на ItsyBitsy миди-сигнала.
Согласно даташиту “труе” аналоговые выходы там только А0 и А1.
А выход А4 - самый обыкновенный ШИМ, как на любой другой ардуине.
Используя analogWrite()
вы не генерите никакого разного аналогового напряжения.
Прежде чем писать ответ - найдите определение, что такое ШИМ сигнал (PWM по английски) и почитайте.
Тут нет никаких напряжений между 0 и 3.3в. ШИМ сигнал представляет собой чередование нулевого и максимального (3.3в) напряжения.
Ваши требования к железу основаны на полнейшей безграмотности…
ЗЫ.
Никакой “настоящий аналоговый сигнал” вам на самом деле не нужен. Для управления соленоидом, в силу его инерционности, вполне подойдет и ШИМ.
Так что перестаньте писать чушь про то, что вам нужен мосфет с реакцией от нуля вольт.
А можно как-то покороче и поконкретнее?) А то когда я начинал строить эту схему меня на одном форуме гуру посылали почитать книги по магнетизму. В жизни много можно чего изучать, но время ограничено, а нужное устройство вполне можно построить без посещения вузовских курсов по электронике))
Повторю свой вопрос, вполне конкретный. Почему схема на MOSFET IRF520 построена без всяких защитных диодов, а вы советуете “не забыть их установить”?
потому что строил безграмотный автор - так устраивает?
Как вам еще обьяснить, если в магнетизме вы разбираться не хотите? Если не хотите понимать - то просто заучивайте - при управлении индуктивной нагрузкой флай-бек диоды ОБЯЗАТЕЛЬНЫ.
Зачем столько снобизма и пафоса отправлять меня читать,что такое ШИМ и называть безграмотным? Я вам завтра пришлю видео, как на пине А4 соленоид от разных значений MIDI-velocity жмет на клавишу с разной силой.
И проверю, как оно все работает, на А0 и А1.
да именно потому что вы безграмотны!
Если бы вы прочитали про ШИМ - понимали бы, что с ШИМом соленоид и должен жать на клавиши с разной силой!
Это вовсе не доказательство того, что у вас там аналоговые напряжения.
То есть если эту схему
построил “безграмотный автор”, но у него все норм работает, то что? Или не работает? Но он там видос на youtube залил))
скорее всего оно будет работать хуже, чем на А4. И это опять же прямо вытекает из того, что я написал выше .
Если конечно вы вообще разберетесь, как включить DAC на А0 А1, а не получите такой же ШИМ, как на А4.
Давайте вы мне не будете говорить, что мне подойдет, а что нет)) Соленоиды в фортепианных системах PianoDisc вполне откликаются на MIDI-velocity. Посмотрите на youtube. Ссылки форум мне не дает запостить. С моей схемой уже откликаются)) А только все зачем-то брюзжите, и обвиняете меня в чуши,
Как с ШИМом он будет жать разной силой? Разную силу обеспечивает разный ток в катушке. Тока регулируется управляющим напряжением на затворе. При этом вы пишите “Тут нет никаких напряжений между 0 и 3.3в”. Откуда же будет разная сила?)
Типичное рассуждение “неуча”
“Все работает” очень относительное понятие. Может оно у него работало пять раз, но в шестой раз сгорело - но он конечно в своем видео про это писать не стал.
На красный свет тоже можно удачно перейти дорогу, и даже не один раз…
Вы обьясните, зачем вы вообще сюда пришли? Вам приводят цитату из учебника - причем мирового уровня - а вы спорите с ней сравнивая со схемой какого-то двоешника на ютубе?
Что значит хуже?) В мануале же написано для А0 и А1 “You can set the raw voltage to anything from 0 to 3.3V”
идиот…
Ну почитайте уже про ШИМ, не позорьтесь.
Если в обычной Ардуино Уно (где вообще нет аналоговых выходов) - выходы ШИМ обеспечивают регулировку яркости светодиода - то почему этот же ШИМ не может обеспечить разную силу реакции соленоида?
Вы же вовсе не смыслите в предмете, за который взялись - а еще спорите
Так объясните мне на пальцах, а не ссылкой на книгу “Искусство схемотехники”, почему у него должно сгореть на шестой раз? Вы же гуру. Вам сложно? Вы уже больше потратили времени на множественные обвинения меня в неграмотности)
Так вы сами написали, что у вас потеряется половина диапазона, потому что на выход менее 2в мосфет реагировать не будет. И это правда.
А что касается “нужен другой мосфет” - мосфетов с реакцией от 0в НЕ БЫВАЕТ.
Обломитесь