Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Atmega8 Bascom - PWM - powolne zmniejsznie/zwiększanie

maximus22_kr 03 May 2015 01:11 1302 4
  • #1
    maximus22_kr
    Level 18  
    Witam
    Mam płytkę sterującą dwoma kanałami PWM - przez ULN oraz MOSFETY.
    Płytka ma dwa wejścia oraz wejście czujnika PIR - INT1.

    Ma przede wszystkim sterować włączaniem taśmy LED 12V z czujnika PIR ( oprócz tego z drugiego wejścia ). LED włączona przez PIR ma docelowo świecić określoną ilość czasu ( zależną od natężenia światła ) i się wyłączyć. Żeby było ciekawiej, zapalenie i gaszenie ma być płynne. Opóźnienie robię przez flagę od Timer'a, żeby uniknąć Wait, mimo, że program nic wielkiego nie robi.

    Chciałem zrobić to w pętli FOR-NEXT, jednak coś nie tak, nie zapala się wcale ( tzn. był moment, że zapalał i gasił po upływie czasu, ale bez płynnego przejścia PWM )

    Code: vbnet
    Log in, to see the code
  • #2
    yokoon
    Level 29  
    Witam.
    Ja zrobiłem tak:

    Code: vbnet
    Log in, to see the code
  • #3
    maximus22_kr
    Level 18  
    Ten sposób już kiedyś sprawdzałem i działał. Pamiętam, że kod zwiększający/zmniejszający musiał być w podprogramach.

    Liczyłem, że da się to zrobić na flagach od Timer.
  • #4
    yokoon
    Level 29  
    maximus22_kr wrote:
    Ten sposób już kiedyś sprawdzałem i działał. Pamiętam, że kod zwiększający/zmniejszający musiał być w podprogramach.

    Liczyłem, że da się to zrobić na flagach od Timer.


    Moim zdaniem nie musi być w podprogramach, ja wykorzystałem działanie w Sub-ie
    ponieważ służy mi do podświetlania wyświetlacza LCD 20*4. Wywołuję go przez instrukcję warunkową If..Then, w razie potrzeby np. wieczorem. Przez to, iż wyświetlacz nie jest podświetlany cały czas jest mniejszy pobór prądu, co przy zasilaniu bateryjnym jest ważne.
  • #5
    Anonymous
    Anonymous