INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(
Witajcie Majsterkowicze! Chciałbym Wam zaprezentować projekt bardzo prosty w swojej budowie, możliwy w wykonaniu nawet przez osoby, które z Arduino(ch340, oryginał, kopie) mają styczność kilka godzin.
Co będzie nam potrzebne?
-kabel typu jack-jack 3.5mm;
-głośniczek o małej mocy (np. z laptopa);
-3 diody;
-kilka kabli (przewody połączeniowe);
-płytka stykowa (nie koniecznie, można lutować ;) );
-oczywiście Arduino oraz źródło dźwięku;
Podłączenie wszystkiego jest banalnie proste, poniżej schemat:
Przejdźmy zatem do kodu:
int soundPin1 = A0; //deklaracja wejścia analogowego void setup() { Serial.begin(9600); //monitor portu szeregowego pinMode(3,OUTPUT); pinMode(6,OUTPUT); pinMode(5,OUTPUT); //nasze wyjścia } void loop() { int soundPin1Reading; //zmienna z wartością naszego wejścia if (analogRead(soundPin1)<8) //eliminowanie zakłóceń, poniżej tej wartości //diody nie zapalają się { soundPin1Reading=0; //przypisanie wartości 0 } else { soundPin1Reading=analogRead(soundPin1); //jeśli wartość jest wyższa } //przypisujemy ją do zmiennej Serial.println(soundPin1Reading); //wyświetlamy naszą wartość w monitorze //portu szeregowego int a=soundPin1Reading*10;// zmienna mocy świecenia dla pinu 3 int b=soundPin1Reading*12;// zmienna mocy świecenia dla pinu 5 int c=soundPin1Reading*16;// zmienna mocy świecenia dla pinu 6 int f=(soundPin1Reading/255)*20; //zmienna opóźnienia //przykład: mp4 na analogu daje sygnał 10, mnożymy przez 10 i dioda zapala się //napęciem (100/255)*5V czyli około 1.96V analogWrite(3,a); analogWrite(5,b); analogWrite(6,c);//zapalanie diód delay(f);//opóźnienie do wygaszenia analogWrite(3,0); analogWrite(5,0); analogWrite(6,0);//wygaszanie ich delay(f);//opóźnienie między cyklami }
Kod został chyba jasno objaśniony wraz z przykładem.
Na końcu efekt jaki udało mi się osiągnąć metodą prób i błędów:
Moja przygoda z Arduino trwa trzeci dzień także wyrozumiałości :D
INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(
Przydałby by się rezystory do diod by ograniczyć ich maksymalny prąd przewodzenia.
Generalnie nie ma takiej potrzeby gdyż odczyty na porcie szeregowym po obliczeniach (patrz przykład w kodzie) nie dawały więcej niż 2.36V więc uznałem je za zbędne. Jak widać w zmiennych każda dioda ma zadeklarowaną własną moc świecenia która nie przekracza jej granicy wytrzymałości.
Ale tu nie chodzi o napięcie. Dioda LED nie stanowi prawie żadnego oporu w obwodzie. Jeśli nie zabezpieczysz jej rezystorem, uszkodzi się (najczęściej nie od razu)
Dla mnie to lekki przerost formy nad treścią. Iluminofonię można zrobić na kilku elementach dyskretnych.
Arduino to płytka prototypowa, nie widzę przeszkód żeby przenieść gotowy kod na mikrokontroler np. ATtiny 13, idealnie by się nadawał. Uczę się więc tak jest o wiele wygodniej ;)
Tak projekt na attiny 13 był by dobry tylko attiny 13 ma 2 wyjścia PWM. Można na tym kodzie wysterować tylko 2 diody led ściemnić je i rozjaśnić. By mieć więcej wyjść PWM musiał byś zastosować dodatkowy układ scalony.
a jak podpiąc to pod żarówki zamiast diód ?
Przekaźniki…
Przekaźniki by zajechał po kilku dniach :-) transoptory lub tyrystory użyć