Sterowanie paskiem LED za pomocą Arduino
Za pomocą Arduino możemy z powodzeniem sterować paskami z diodami LED. Przedstawiony przykład przedstawia sposób podłączenia oraz pokazuje jak wgrać przykładowy program.
W przykładzie wykorzystamy następujące elementy:
Podłączenie
Pasek LED jest zasilany napięciem 12 V, podczas gdy Arduino pracuje z napięciem 5 V. W celu sterowania nim z Arduino wykorzystamy tranzystor w roli przełącznika. W tym wypadku IRL540N będzie dobrym rozwiązaniem. Wybrany pin Arduino, np. 5 łączymy z pierwszą nóżką tranzystora przez rezystor 10 kΩ. Druga jest podłączona do "-" na pasku LED. Trzecia do masy. Zasilanie +12 V podpinamy bezpośrednio do taśmy LED, natomiast masy całego układu zwieramy razem z masą Arduino, tak jak na poniższym schemacie.
Schemat podłączenia modułu.
Obsługa
Prezentowany układ działa w taki sposób, że gdy ustawimy na pinie 5 Arduino stan wysoki, to tranzystor zaczyna przewodzić prąd zasilający pasek LED. W tym celu wykorzystamy program Blink z przykładów Arduino (Plik -> Przykłady -> 01. Basics -> Blink).
W programie wystarczy zmienić pin Arduino na 5, oraz możemy ustawić opóźnienia:
// the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 13 as an output. pinMode(5, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(5, HIGH); // turn the LED on (HIGH is the voltage level) delay(3000); // wait for a second digitalWrite(5, LOW); // turn the LED off by making the voltage LOW delay(3000); // wait for a second }
Program na zmianę zapala i gasi taśmę LED co 3 sekundy. Efekt jest widoczny na poniższych zdjęciach:
Korzystając z programu Fade (Plik -> Przykłady -> 01. Basics -> Fade) można płynnie rozjaśniać i ściemniać LEDy poprzez sygnał PWM. Pamiętamy o zmianie w programie pinu na 5 (możemy również przepiąć przewód do pinu 9. Najważniejsze, żeby dany pin posiadał PWM oznaczony tyldą). Możemy również poeksperymentować z pozostałymi wartościami.
int led = 5; // the pin that the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 5 to be an output: pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 5: analogWrite(led, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } // wait for 50 milliseconds to see the dimming effect delay(50); }