Archiwa tagu: photocell

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:

Schemat układu

Schemat układu

Dla początkujących – szczegółowe info jak podłączyć kabelki:

Fizyczne połączenia

Fizyczne połączenia

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.

Diody LED czyli jak migac i świecić

UWAGA -nowa wersja
Po prawie pięciu latach odświeżyliśmy ten wpis, tak by lepiej odpowiadał na pytania początkujących. Zamiast tego wpisu polecamy nowe Diody LED czyli jak migać i świecić

Ostatnio zapadła cisza na StarterKicie, bo przed świętami przygotowywałem się do Bootstrapa 9.4, które to przygotowania zajęły mi większość wolnego czasu. Teraz korzystając z dnia wolnego, który sobie po świętach zostawiłem, nadrabiam zaległości.

Poprzednio zajmowaliśmy się tym jak Arduino może odczytać wartość z zewnętrznego czujnika (fotorezystora). Teraz będziemy starać się odczyt pokazać.

Użyjemy do tego 7 diod LED, które ułożone w rząd będą tworzyć wskaźnik – im więcej światła pada na fotorezystor tym więcej diod się zapali. Zaczniemy od końca, czyli jak to wygląda w akcji.


Arduino’s Eye from Starter Kit on Vimeo.

Wybaczcie słabą jakość, ale kamera w komórce to jedyne czym dysponuję aby uwiecznić moje eksperymenty.

Widać jednak co się dzieje. Poza kadrem przybliżam i oddalam fotorezystor do lampy, kolejne diody zapalają się i gasną w miarę jak natężenie światła padające na fotorezystor rośnie i maleje.
Czytaj dalej

Oko Arduino czyli o fotorezystorze a nie mitologii Tolkiena

Oko Arduino – to brzmi jak cytat z J. R. Tolkiena, a chodzi o podłączenie do Arduino fotorezystora. Tym postem mam zamiar zacząć krótki cykl artykułów o podstawach elektroniki.

Fotorezystor to układ, którego oporność zmienia się w zależności od natężenia światła padającego na niego. Pozostaje tylko zmierzyć to w jakiś sposób. W jaki?

Dla zabawowego zastosowania pominiemy na razie zupełnie dokładność pomiaru a jedynie nas będzie interesowała bardzo uproszczona wersja.

Jak to wygląda?

Prosty układ, zmontowany na płytce prototypowej

Prosty układ, zmontowany na płytce prototypowej (kliknij na obrazek aby zobaczyć notki na zdjęciu na stronie Flickra)

Schemat układu jest taki:

Schemat podłączenia Arduino do fotorezystora

 

Schemat podłączenia Arduino do fotorezystora

To co tutaj jest narysowane to tak zwany dzielnik napięcia. Poczytaj na Wikipedii jak dokładnie działa.

W skrócie napięcie w punkcie pomiędzy dwoma rezystorami będzie się zmieniać w zależności od zmieniającej się rezystancji foto rezystora. I to właśnie będziemy mierzyć  naszym programem.

Oto jego kod:

// pin z którego odczytujemy wartość napięcia
int photoPin = 0;
//idczytana wartość
int val = 0;

//początkowa konfiguracja
void setup()
{
  pinMode(photoPin, INPUT); // ustawienie pinu jako wejscie
  Serial.begin(57600);
}

void loop()
{
  //odczytujemy i normalizujemy do przedziału 0-7
  val = analogRead(photoPin)/128;
  for (int i=0;i<=val;i++) {
    Serial.print(".");
  }
  Serial.println();
  delay(90);
}

Program (jak prawie każdy na Arduino) składa się z części przygotowywującej układ do działania (setup) oraz głównej pętli (loop) wykonującej się póki prąd w Arduino…

W głównej pętli mierzymy napięcie, przekształcamy odczytaną wartość w zakres liczb od 0 do 7 (bo Arduino odczytuje napięcie jako liczbę od 0 1023, więc po podzieleniu na 128 i zaokrągleniu w dół dostajemy wynik od 0 do 7) i tyle ile wyszło, tyle kropek wyświetlamy. Chwila przerwy i pętla trwa…

Rezultat działania:

Arduino IDE w trakcie pracy naszego programu

Arduino IDE w trakcie pracy naszego programu

W trakcie pracy zakrywam ręką fotorezystor, zmieniając jego rezystancję a w rezultacie napięcie odczytywane przez Arduino na PIN 0. Ilość kropek jest proporcjonalna do odczytanego napięcia.

Wykaz części

Już wkrótce – jak można fizycznie pokazać zmieniający się odczyt.