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ć