Analoge Spannung mit DA-Wandler MCP4822
02.02.2025
Elektronik | Funk | Software
Der Technik-Blog
Zu diesem Artikel gibt es auch ein Video auf Youtube: ATMega328 digitalen Input (Taster) einlesen - Standalone AVR, C
In diesem Artikel geht es um das Einlesen digitaler Inputs. Dabei befindet sich auf PORTB0 ein Taster, der mit einem 10KOhm Widerstand gegen die Masse geschaltet ist. Der Taster selbst wird mit 5 Volt versorgt und lässt diese bei der Betätigung auch durch. Auf PORTB1 ist eine LED mit einem 220-Ohm-Vorwiderstand angeschlossen. Am Mikrocontroller befindet sich noch standardmäßig der 16 Mhz Oszillator als Taktgeber. Die restlichen Leitungen sind für den AVRISP Programmer und für die externe Stromversorgung.
Die Software wurde in C mit Amtel Studio geschrieben. Am Beginn vom Code wird die Taktfrequenz vom Oszillator und die benötigte Bibliothek deklariert. Vor dem Hauptprogramm die Ports für den digitalen Eingang und Ausgang definiert. Der Code läuft in einer Schleife und fragt den Status vom Eingang ab. Ist der Eingang auf High, dann wird die LED für 5 Sekunden eingeschaltet. Wenn der Eingang auf LOW ist oder der Taster nicht gedrückt wird, so bleibt die LED aus.
#define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB |= (1 << DDB1); //Define output DDRB &= ~(1 << DDB0); //Define input while(1) { if(PINB & (1<<PINB0) == 1){ //If button is pressed PORTB |= (1<<PORTB1); //Turn LED on _delay_ms(5000); //Wait 5 seconds } PORTB &= ~ (1<<PORTB1); //Turn LED off } }
In diesem Beitrag zeigen wir, wie mit dem ATMega328 Mikrocontroller ein Taster als Input eingelesen wird und wie dadurch eine LED auf PORTB gesteuert wird.
WeiterlesenIn diesem Beitrag zeigen wir, wie ein ATMega328 mit dem AVRISP Programmer geflashed wird und welche Bauteile für den eigenständigen Betrieb benötigt werden.
WeiterlesenAEQ-WEB © 2015-2025 All Right Reserved