LoRa Packet Forwarder JSON Daten
25.12.2024
Elektronik | Funk | Software
Der Technik-Blog
Zu diesem Artikel gibt es auch ein Video auf Youtube: Standalone ATMega328 PWM LED Fading - Mikrocontroller
In diesem Beitrag geht es um die PWM (Pulsweitenmodulation) Funktion vom ATMega328. Die PWM gesteuerte LED wird langsam immer heller und dann wieder dunkler. Das Projekt ist mit dem Blink-Projekt vergleichbar, nur dass die LED mit 255 Stufen heller und dunkler wird.
Digitale PWM-Signale sollen so aussehen, wie eine Sinuskurve, wo sich die Spannung abwechselnd ändert. Bei den Mikrocontrollern geschieht dies in digitaler Form. Im Gegensatz zur analogen Sinuswelle wird bei digitalen PWM-Signalen eine Rechteckwelle erzeugt. Das Maximum beträgt 5 Volt, das Minimum 0 Volt. Durch das extrem schnelle ein und ausschalten der LED und durch die Dauer diese Impulse, erreicht man dadurch ein PWM-Signal. Dieses Signal sieht so aus, als würde die LED eine Spannung, je nach Einstellung (0-255) von 0 bis 5 Volt haben. Viele Mikrocontroller unterstützen PWM, allerdings nicht auf jeden Port.
Für die LED wird ein Vorwiderstand von 220 Ohm benötigt. Da der Mikrocontroller in diesem Beispiel nicht mit einem Board betrieben wird, muss auch der Taktgeber vorhanden sein.Der Controller ist auch mit einem AVRISP Programmer verbunden, die die Software auf den Mikrocontroller lädt. Außerdem ist noch eine externe Stromquelle von 5 Volt notwendig.
#include <avr/io.h> #include <util/delay.h> #define F_CPU = 16000000UL int main(void){ DDRB |= (1<<PORTB1); //Define PORTB1 (PIN15) as Output TCCR1A |= (1<<COM1A1) | (1<<WGM10); //Set Timer Register TCCR1B |= (1<<WGM12) | (1<<CS11); OCR1A = 0; int timer; while(1) { while(timer < 255){ //Fade from low to high timer++; OCR1A = timer; _delay_ms(50); } while(timer > 1){ //Fade from high to low timer--; OCR1A = timer; _delay_ms(50); } } }
In diesem Artikel zeigen wir, wie mit dem ATMega328 ein 16x2 Zeichen LCD Display mit 4-Bit angesteuert wird. Programmiert wird alles in C mit dem Amtel Studio
WeiterlesenIn diesem Artikel zeigen wir, wie eine LED mit dem ATMega328 gesteuert wird. Programmiert wird alles in C++ mit Amtel Studio
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved