Sterowanie PWM diodą LED 

Zadanie: Zaprojektować układ sterujący poziomem jasności świecenia diody LED na płytce Arduino sygnałem PWM (Pulse Width Modulation) o wypełnieniu regulowanym przyciskami z klawiatury komputera. Dioda LED jest podłączona do pinu nr 11 Arduino poprzez rezystor 100 Ohm.

Jak ma działać układ:

  • Zapewnić wypełnienie przebiegu wyjściowego sterującego diodą LED od 0% do 100% z krokiem co 10%.
  • Zmianę wypełnienia realizujemy za pomocą dwóch przycisków klawiatury komputera: UP i DOWN.

  • Po naciśnięciu przycisku UP zwiększamy jasność świecenia diody LED (+10%), po naciśnięciu DOWN - zmniejszamy (-10%). Po osiągnięciu 100%, dalsze naciskanie UP nie powoduje żadnej zmiany, a również po osiągnięciu 0% dalsze naciskanie DOWN nie powoduje żadnej zmiany. 
  • Klawiaturę odczytujemy podłączając się do Arduino terminalem portu szeregowego (np. program putty). Nie wykorzystujemy terminala Serial Monitor wbudowanego w środowisko Arduino!
  • Przed realizacją docelowego projektu należy eksperymentalnie dowiedzieć się, jakie kody są generowane przez przyciski UP i DOWN klawiatury wykorzystywanego komputera. Do tego celu należy napisać program testowy, który odczyta te kody (należy posłużyć się funkcją Serial.print(val, HEX)). Do przycisków UP i DOWN nie są przypisane klasyczne kody ASCII, a zamiast tego są generowane sekwencje 3 kodów, które należy wykrywać w programie docelowym.

Co należy przedstawić do oceny:

  • Kod źródłowy w C.
  • Demonstrację działania układu.

Przydatne funkcje w tym projekcie:

available();  //serial port
read(); //serial port
print(,HEX); //serial port
begin(); //serial port
analogWrite(); 
delay();
constrain();   
map();