sobota, 12 kwietnia 2014

arduino, fotorezystor i diody LED...

W tym poście pokaże wam jak w łatwy sposób można sterować 3 diodami LED przy pomocy arduino i foto-rezystora (czujnika natężenia światła).

Na początek otwieramy program do pisania programów na arduino i w pierwszej kolejności (zaznaczony fragment kodu) jak zawsze zaczynamy od wpisania funkcji inicjalizującej void setup()
następnie wpisujemy polecenie Serial.begin(9600); które rozpoczyna komunikację z portem szeregowym i w nawiasie podajemy prędkość tej komunikacji w b/s.
while(!Serial); (przy arduino leonardo ponieważ się restartuje).

Kolejną czynnością jest zdefiniowanie portów które będziemy używać:
 pinMode(A0,INPUT);
 pinMode(13, OUTPUT);
 pinMode(12, OUTPUT);
 pinMode(11, OUTPUT);
jak widać port analogowy A0 jest portem wejściowym czyli odbiera informacje i na ich podstawie arduino będzie wysyłać polecenia na porty cyfrowe 13,12,11.

Następnie tworzymy główną pętlę programu czyli void loop()
na początek wpisujemy polecenie: int odczyt = analogRead(A0);
za pomocą którego odczytamy wartości z naszego foto-rezystora.
Następnie wypisujemy warunki dla jakich mają być wykonywane/podejmowane kolejne czynności.
if(odczyt < 499)
digitalWrite(13, HIGH);
else digitalWrite(13, LOW);
inaczej mówiąc jeżeli odczyt z foto-rezystora będzie w zakresie poniżej 499 to na pin 13 zostanie podane napięcie, jeżeli napięcie będzie w zakresie powyżej 499 to na pinie 13 nie będzie napięcia.

Tak samo jest przy pozostałych pinach, a ponieważ chciałem aby w danej chwili świeciła tylko jedna dioda LED to dodałem warunek:
if(odczyt <500)
digitalWrite(12, LOW)

Ponieważ chciałem zobaczyć jak wygląda odczyt danych z portu szeregowego wpisałem polecenie:
Serial.println(odczyt);

jest to nic innego jak  wyświetlanie jakiejś informacji zawartej w nawiasie w moim przypadku danych z odczytu z foto-rezystora. Samo słowo Serial odpowiedzialne jest za komunikację z naszym portem szeregowym, a słowo print znaczy drukuj razem z końcówką ln która nakazuje zrobić enter.
Na samym końcu umieszczamy opóźnienie aby informacje z portu szeregowego pokazywały się co jakiś czas: delay(500); w moim przypadku ustawiłem sobie 0,5 sekundy ale to zależy od was jaki czas wybierzecie.

Kolejnym etapem będzie zmontowanie naszego układu na płytce stykowej.
Trochę wygląda to jak sygnalizacja świetlna :)
Pomyślałem że na 3 różnych kolorach będzie to lepiej widoczne.
Najpierw montujemy diody LED na naszej płytce
 (najlepiej dłuższymi nóżkami w tą samą stronę czyli anodą+),
dokładamy po 1 rezystorze na każdą diodę LED (krótka nóżka katoda-)
(ja używam rezystorów o rezystancji 220 om)
Jak widać na załączonym wyżej zdjęciu wszystkie nie podłączone do niczego nóżki rezystorów podłączyłem za pomocą krótkich przewodów do niebieskiej linii którą zaś podłączyłem do pinu GND w arduino czyli masy.
Pozostałe wolne nóżki od diod LED podłączyłem kolejno do portów cyfrowych 13,12,11.

Przenosimy się teraz na drugi koniec naszej płytki gdzie zamontujemy nasz foto-rezystor wraz z rezystorem.
 Jak sama nazwa wskazuje foto-rezystor to nic innego jak rezystor tylko że jego rezystancja zależna jest od czynnika (w tym przypadku światła). W przypadku braku światła nie przepuszcza prądu a im więcej światła tym więcej prądu przepuszcza. Ponieważ arduino odbiera informacje na pinie analogowym A0 w postaci  prądu od 0V do 5V (wartości te są przedstawione w zakresie od 0 do 1023) dlatego znajduje się na płytce rezystor który na dzieli prąd (2 rezystory połączone szeregowo    -[]--[]-     dzielą nam napięcie na pół (pod warunkiem że są takiej samej wartości.
W moim przypadku użyłem rezystora 4,7 k om ponieważ po podłączeniu foto-rezystora do miernika wskazał wartość 5 k om. Prąd na wyjściu rezystora wyniósł około 2,7 V (w miejscu łączenia się rezystora i foto-rezystora). Drugą wolną nóżkę rezystora podpinam do pinu 5 V, a wolną nóżkę od foto-rezystora do masy czyli naszej niebieskiej linii. Miejsce łączenia się foto-rezystora z rezystorem podpinam do pinu A0 który będzie odbierał informacje o prądzie.

Wgrywamy nasz program do arduino i oto efekt:


Na sam koniec mogę dodać że w ten sam sposób za pomocą specjalnych przekaźników można sterować np: oświetleniem, bramą garażową.

Brak komentarzy: