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();