Arduino – gramy!
Długa cisza na blogu zostaje właśnie przerwana! Ostatnie parę miesięcy byłem mocno zaangażowane w projekty nie związane z Arduino, cały czas jaki mogłem przeznaczyć na Arduino pochłaniało prowadzenie sklepu z modułami – obsługa klientów, poszukiwania nowych dostawców, itp.
Teraz pojawiło się trochę czasu, który mogę przeznaczyć na dokumentowanie eksperymentów z Arduino, dlatego mam nadzieję, że uda mi się w najbliższym czasie dodać kilka przykładów na Starter Kicie.
Ciszo, idź precz!
Jako, że mamy przerwać ciszę, więc zacznijmy od obsługi przez Arduino tzw. buzzera – maleńkiego głośniczka zdolnego wydawać niezbyt głośne (ale jednak) dźwięki. Zacznijmy od produktu finalnego:
Arduino buzzer from Starter Kit on Vimeo.
Buzzer jest sterowany przez Arduino, wygrywający prostą melodyjkę. Prędkość odtwarzania zależy od odczytu z fotorezystora (im jaśniej tym wolniej gra).
Jak to jest zrobione?
Jak odczytywać wartości z fotorezystora pisałem w jednym z wcześniejszych postów. Buzzer jest pobudzany przez odpowiednie przykładanie napięcia niskiego i wysokiego. Dla bezpieczeństwa (portu wyjściowego Arduino) dokładamy rezystor 220 Ohm, aby ograniczyć prąd jaki może przez niego przejść.
Na szczęście Arduino jest open source i dzięki temu w sieci można znaleźć mnóstwo gotowych elementów. I tak kwestia odgrywania melodyjki (nutki) jest opisana w tutorialu Melody. My z niego skorzystamy i dodamy tylko element odczytu wartości napięcia z fotorezystora i przełożenie tego na odpowiednie opóźnienie.
Jedyna modyfikacja tutorialu Melody to (poza ustawianiem początkowym w setup
) linia w loop
:
tempo=analogRead(analog)/3+100;
Czyli odczyt napięcia dzielmy na 3 i dodajemy 100. Uzyskamy wartość z przedziału od 100 do 1023/3+100=441. Oryginalne tempo
to było opóźnienie 300. Pozostaje do dodania schemat:
Dla początkujących – szczegółowe info jak podłączyć kabelki:
Szczegółowa lista części (Fritzing ma w podstawowej bibliotece tylko głośniczek piezo, więc on jest używany na schematach) :
Fritzing Bill of Materials Sketch: buzzer.fz Date: Tue Sep 29 01:11:59 2009 Arduino1 Arduino Diecimila Breadboard1 Tiny Breadboard J1 Piezo Speaker R1 220 Ω Resistor R2 10k Ω Resistor R3 Basic Photo-Resistor (Photocell) Shopping List Quantity Part 1 10k Ω Resistor 1 220 Ω Resistor 1 Arduino Diecimila 1 Basic Photo-Resistor (Photocell) 1 Piezo Speaker 1 Tiny Bre
No i na koniec – kod użyty w przykładzie: melody.pde
PS
Jak się wam podobają schematy i obrazki zrobione w Friztingu? Jak dla mnie kapitalny software do dokumentowania eksperymentów z Arduino. Polecam – sprawdźcie go.
Wpis stanowi bardzo dobre uzupełnienie tutoriala „Melody”. Już od pewnego czasu przymierzam się, aby zacząć korzystać z programu Fritzing. Schematy wyglądają trochę ładniej, niż te wykonane w Eaglu.
„rezystancja min 14 ohm nie powinna wygenerować prądu większego niż 36 mA”
Chyba 360mA?
Faktycznie był to błąd w obliczeniu. Usunąłem ten fragment, bo w takim razie rezystor 220 ohm jest przydatny.
Mała uwaga dla początkujących. Na schemacie podłączamy wejście analogowe do A1, natomiast w kodzie widnieje:
int analog = 0;
Więc albo zmieniamy int analog = 0; na int analog = 1; lub wejście wpinamy do A0 :)
Na obrazku jak połączyć kabelki jest wybrany port 1, a program ewidentnie mierzy port 0. Początkujący może stracić trochę czasu zanim załapie.
Hmm a da się dźwięk z buzzera jakoś wzmocnić ? (bez opornika jest głośniej ale było powiedziane, że może spalić się płytka)
Jeszcze dodam, że kolory oznaczające wejścia na spikerze są odwrotnie oznaczone.
A ja zrobiłem tak :)
https://youtube.com/shorts/Xz73K689aBA?feature=share
Mój drugi projekt