Regulacja intensywności świecenia diody - mikrokontroler

Jesli jesteś początkującym elektronikiem, to tu z pewnością znajdziesz pomoc. Miejsce dobre do dyskusji nad podstawami elektroniki w zakresie teorii i praktyki.
ODPOWIEDZ
Michał01
-
Posty: 2
Rejestracja: 15 mar 2008, 12:17
Lokalizacja: hggh

Regulacja intensywności świecenia diody - mikrokontroler

Post autor: Michał01 » 15 mar 2008, 12:28

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ć...

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 15 mar 2008, 13:18

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:

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)
Loop
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.

Michał01
-
Posty: 2
Rejestracja: 15 mar 2008, 12:17
Lokalizacja: hggh

Post autor: Michał01 » 15 mar 2008, 17:05

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.

Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Post autor: grysek67 » 15 mar 2008, 20:34

Najjaśniej pewnie bedzie w przedziale od 50 - 100Hz... Poniżej 50 juz widac że miga. A odstęp miedzy swieceniem powinien byc mniejszy niz okres swiecenia

ODPOWIEDZ