Призываю на помощь анонов-ардуинщиков. Срочно нужно собрать такую хреновину: к ардуино пожключаются три led-ленты(не rgb, просто белые, а так же сенсор-микрофон. В зависимости от громкости звука улавливаемого микрофоном загорается большее или меньшее количество диодов. Вопрос вот в чем: через что мне подключать ленты к плате и как это все вместе собрать. (желательно потратив минимум денег)
бамп
БАМП
>>123610879 (OP)какая у тебя лента?нужна с управляемыми диодими
Мамкин фантазер детектед.В ЛЕД-ленте диоды подключены последовательно.
>>123612207точно, торможу. в таком случае, можно ее разрезать на 3 части и сделать чтобы в зависимости от громкости загоралась одна, две или три ленты.
>>123612519тебе и ардуина не нужна- собери на транзисторах или операционниках
>>123611750вот такая. 12V/6W. не RGB, там только +- контакты
>>123612861ардуина и так уже есть
+вот такой детектор звука
>>123613007зачем огород городить,тебе всеравно надо усилить сигнал с микрофона и както переключать свои светодиоды и ардуина тут лишняя
>>123613300вот к ней и присобач индикатор уровняhttp://audio-cxem.ru/shemyi/indikatoryi/logarifmicheskiy-indikator-urovnya-signala-na-lm3915.html
>>123613356его не нужно усилять. он уже на плате с усилением и резистором который позволяет регулировать уровень сигнала
>>123612875Тебе для чего? Поиграться или конкретное устройство нужно. http://ru.aliexpress.com/item/2016-Brand-New-High-Quality-8-x-WS2812-LED-strip-5050-RGB-for-Arduino-Trinket-Gemma/32603560910.htmlНу и да, чтоб просто лампочку зажигать по уровню, так можно и аналоговую схему сделать.
>>123613300Твой саунд детектор какой сигнал выдает? Если что-то наподобие обычного analogRead, то тебе просто нужно через полевики подключить части твоей ленты. В том количестве, сколько свободных пинов ардуины у тебя есть. А затем просто сравнивать в каждой итерации цикла значения с пороговым для включения нужного сегмента и дергать соответствующий пин.
>>123614168да, аналоговый. я читал, что через MOSFET совеуют подключать
>>123615321И? Тебя в подобной реализации что то не устраивает? И не забывай, что для ленты тебе нужен отдельный блок питания, Так что конструкция получится несколько габаритная. Олсо, кошерная цветомузыка делается не по уровню сигнала, а на основе анализа частоты - на низах включем красный, на верхах мигаем синим, и т.д.
>>123615879блок питания есть, подключается в сеть 220 и на выходе дает 12V. У меня самая главная мозгоебка с транзисторами, так как я не знаю какой подобрать, +как подключить сенсор. У меня познания в электронике на самом деле не самые высокие, последний раз я занимался чем-то подобным на физике в 11 классе лет 5 назад, так что не обессудь. Это не светомузыка, а арт-проект.
>>123616832Для твоего саунд детектора есть встроенная библиотека? По крайней мере скинь ссыль на него может чего конкретного подскажу.>самая главная мозгоебка с транзисторамиЕбанные полупроводники сейчас настолько ядреные, что могут рулить десятком таких лент. По сути тебе надо вычислить ток на каждый сегмент - это ключевой параметрНу к примеру:http://www.chipdip.ru/product/irf530n/
>>123618050Или this:http://www.chipdip.ru/product/irlu120n/
а почему на оппике мега зачёркнута?
>>123618266вот такой подойдет?http://www.chipdip.ru/product/irf540n/я просто не в России
народ, погуглите оппик? там какая-то инструкция как сделать из ржб ленты медленный экран. поясните как на ржб ленте светодиоды разным цветом загораются?
>>123618905Ага.Держи самый простой код:int input = A0;int seg1 = 1;int seg2 = 2;int seg3 = 3;int seg4 = 4;int level = 0;void setup () { // Serial.begin(9600); pinMode (input, INPUT) ; // input from the Sound Detection Module pinMode(seg1, OUTPUT); pinMode(seg2, OUTPUT); pinMode(seg3, OUTPUT); pinMode(seg4, OUTPUT); }void loop (){ / у нас четыре выхода, так что мы делим выходные 1024 значений на 4 = 256 1 == 0-256; 2 == 256-512 3 == 512-768 4 == 768-1024 / level = digitalRead (input) ; if (level >=0 ) // первый сегмент включен всегда { digitalWrite(seg1, HIGH); }else { digitalWrite(seg1, LOW); } if (level >=256 ) { digitalWrite(seg2, HIGH); } else { digitalWrite(seg2, LOW); } if (level >=512 ) { digitalWrite(seg3, HIGH); } else { digitalWrite(seg3, LOW); } if (level >=768 ) { digitalWrite(seg4, HIGH); } else { digitalWrite(seg4, LOW); } }
а всё понял. это не обычная лента
>>123620289>// Serial.begin(9600);Не надо>level = digitalRead (input) ; level = analogRead (input) ; Блеять, извиняй, анон, я чуток заебался, и начал говнокодить из примера.Олсо попробуй для начала реализовать на обычных светодиодах, а когда получится то переходи на лунту и полевики.