Regulacja intensywności świecenia diody - mikrokontroler
Regulacja intensywności świecenia diody - mikrokontroler
Hej! Zaczynam właśnie zabawę mikrokontrolerem AT90USB1287. Jestem całkiem początkujący i mam taki problem: muszę napisać program umożliwiający zmianę barwy światła podwójnej diody D2. Mam to zrobić zmieniając współczynnik wypełnienia sygnału prostokątnego sterującego diodą, ale nie mogę używać liczników/timerów. Byłbym bardzo wdzięczny za jakąś ideę jak to zrobić lub chociażby rzucenie kilku haseł, co bym wiedział o czym muszę doczytać, żeby się za to zabrać...
- gwozdex
- Użytkownik
- Posty: 879
- Rejestracja: 24 lut 2006, 10:04
- Lokalizacja: Czechowice-Dziedzice
- Kontakt:
Jeżeli nie możesz używać liczników/timerów to musisz zrobić sobie coś w stylu "prymitywnego PWM". Będzie to wyglądać różnie dla innych języków programowania, a idea mogłaby wyglądać następująco:
Zmieniając czas oczekiwania regulujesz jasnością diody.
Oczywiście do tego jeszcze potrzeba skonfigurować port/ dołączyć pliki nagłówkowe itp.
Pozdrawiam i powodzenia.
Kod: Zaznacz cały
Do ' rozpoczęcie pętli nieskończonej
PA.1=1 ' ustaw stan wysoki na pinie A.1 (możesz użyć dowolnego)
Waitms (200) ' poczekaj 200ms i...
PA.1=0 ' zmień stan pinu na "0".
Waitms (100)
LoopOczywiście do tego jeszcze potrzeba skonfigurować port/ dołączyć pliki nagłówkowe itp.
Pozdrawiam i powodzenia.
Dziękuję, o to właśnie mi chodziło:)
Mam jeszcze jedno pytanie: jaki musi być odstęp między mignięciami diody, żeby oku ludzkiemu się wydawało, że dioda w ogóle nie świeci i przy jak krótkim czasie wydaje się już, że dioda świeci najjaśniej (tak, jakbyśmy jej w ogóle nie wyłączali w pętli)?
Mam 4000ms na przejście od najjaśniejszego punktu do zgaśnięcia diody. Czy długość przerwania mam mieć stałą (np 5 ms), a zmniejszać płynnie jedynie czas włączenia diody od np 80ms (po tym czasie ją wyłączam) do 0? Czy nie pojawi się wtedy po prostu miganie diody zamiast jej przygaszania?
Z góry dzięki za pomoc.
Mam jeszcze jedno pytanie: jaki musi być odstęp między mignięciami diody, żeby oku ludzkiemu się wydawało, że dioda w ogóle nie świeci i przy jak krótkim czasie wydaje się już, że dioda świeci najjaśniej (tak, jakbyśmy jej w ogóle nie wyłączali w pętli)?
Mam 4000ms na przejście od najjaśniejszego punktu do zgaśnięcia diody. Czy długość przerwania mam mieć stałą (np 5 ms), a zmniejszać płynnie jedynie czas włączenia diody od np 80ms (po tym czasie ją wyłączam) do 0? Czy nie pojawi się wtedy po prostu miganie diody zamiast jej przygaszania?
Z góry dzięki za pomoc.