Hi@all!
Beim Basteln mit dem ATmega128 unter BASCOM-AVR für meine Wintergartensteuerung bin ich auf einen genialen Aspekt bei Timer 3 gestoßen.
Timer3 verfügt über insgesamt 3 Compare-Register und Ausgänge mit denen mittels einem Timer drei unabhängige PWM's realisiert werden können.
Da ich bei meinem Projekt ziemlich Ressourcen-Probleme beim ATmega128 habe, ist eine Lösung entstanden, mit der ich über einen Timer sowohl die PWM für die LCD-Displayhelligkeit als auch eine PWM für die Drehzahlregelung meines Lüfters steuern kann. Schön Ressourcensparend also
Kurz vorgestellt:
- Umsetzung auf ATmega128 mit 16 MHz auf STK500 + STK501
- Programmierung mit BASCOM-AVR
- Verwendung von Timer3
- PortE.3 OC3A für PWM LCD-Displayhelligkeit über Transistorstufe
- PortE.4 OC3B für PWM Lüftergeschwindigkeit über Transistorstufe
In den Anhängen findet Ihr:
- die Beschaltung für den Lüfter
- die Beschaltung für das LCD-Display am Beispiel DOC-M 16x3
- Bilder der Prototypen
- Sourcecode BASCOM-AVR
Bemerkungen:
- Die im Sourcecode enthaltenen LEDs dienen nur zum Test, ob die Konfiguration des Timer 3 die restlichen nicht vewendeten PIN's beeinflusst oder ob die Ressourcen für andere Dinge zur Verfügung stehen.
- Das Bild vom LCD-Prototyp stammt noch aus der Zeit vor der Umstellung auf PortE.4 für die PWM. Vorher lief die PWM auf PortB.4.
- Für den Anlauf des Lüfters hatte ich eine Anlaufkonstante vorgesehen mit der ich starten wollte, um dann die Drehzahl auf einen niedrigeren Wert abzusenken. Bei Test hat sich jedoch herausgestellt, dass der von mir verwendete Lüfter ziemlich genau die gleiche niedrigste Drehzahl und Anlaufdrehzahl hat. Damit habe ich den Punkt nicht weiter verfolgt.
Vielleicht kann ja jemand was damit anfangen
Grüße,
Markus
Beim Basteln mit dem ATmega128 unter BASCOM-AVR für meine Wintergartensteuerung bin ich auf einen genialen Aspekt bei Timer 3 gestoßen.
Timer3 verfügt über insgesamt 3 Compare-Register und Ausgänge mit denen mittels einem Timer drei unabhängige PWM's realisiert werden können.
Da ich bei meinem Projekt ziemlich Ressourcen-Probleme beim ATmega128 habe, ist eine Lösung entstanden, mit der ich über einen Timer sowohl die PWM für die LCD-Displayhelligkeit als auch eine PWM für die Drehzahlregelung meines Lüfters steuern kann. Schön Ressourcensparend also
Kurz vorgestellt:
- Umsetzung auf ATmega128 mit 16 MHz auf STK500 + STK501
- Programmierung mit BASCOM-AVR
- Verwendung von Timer3
- PortE.3 OC3A für PWM LCD-Displayhelligkeit über Transistorstufe
- PortE.4 OC3B für PWM Lüftergeschwindigkeit über Transistorstufe
In den Anhängen findet Ihr:
- die Beschaltung für den Lüfter
- die Beschaltung für das LCD-Display am Beispiel DOC-M 16x3
- Bilder der Prototypen
- Sourcecode BASCOM-AVR
Bemerkungen:
- Die im Sourcecode enthaltenen LEDs dienen nur zum Test, ob die Konfiguration des Timer 3 die restlichen nicht vewendeten PIN's beeinflusst oder ob die Ressourcen für andere Dinge zur Verfügung stehen.
- Das Bild vom LCD-Prototyp stammt noch aus der Zeit vor der Umstellung auf PortE.4 für die PWM. Vorher lief die PWM auf PortB.4.
- Für den Anlauf des Lüfters hatte ich eine Anlaufkonstante vorgesehen mit der ich starten wollte, um dann die Drehzahl auf einen niedrigeren Wert abzusenken. Bei Test hat sich jedoch herausgestellt, dass der von mir verwendete Lüfter ziemlich genau die gleiche niedrigste Drehzahl und Anlaufdrehzahl hat. Damit habe ich den Punkt nicht weiter verfolgt.
Vielleicht kann ja jemand was damit anfangen
Grüße,
Markus