Armins AVR-Buch - Ausgang_ueber_PC_schalten

Zuletzt geändert am 15.01.2021, 01:22:20
Hier ist ein Beispiel, wie man über die serielle Schnittstelle mit
dem AVR etwas schalten kann.
Da die serielle Schnittstelle des PC und die UART des AVR unterschiedliche Spannungspegel haben
brauchen wir einen RS232 - TTL Pegelwandler, wie z.b. den Max232.
Die Schaltung kann man selber zusammen löten oder fertig kaufen.
Hier ein Modul von Pollin:

Bild pollinrs232.jpg


Hier der Anschluß des MAX232 an den ATmega8:

Bild Max232.jpg

Hier das Programm.
An Portb.1 und Portb.2 ist jeweils eine LED mit Vorwiderstand angeschlossen.

$regfile = "m8def.dat" 'Verwender AVR
$crystal = 1000000 'Taktfrequenz des AVR
$hwstack = 40 'Stackwerte
$swstack = 16
$framesize = 32
$baud = 2400 'Baudrate der UART

Config Portb.1 = Output ' LED1
Config Portb.2 = Output 'LED2

Dim Rs232 As String * 20 'Stringvariable für empfangene Zeichen von der RS232

Do

Rs232 = "" 'Variable löschen
Input Rs232 'Empfange Daten von der RS232 einlesen

Select Case Rs232 'Variable RS232 auswerten
Case "0" 'Ist die Variable RS232 = "0" ?
Portb.1 = 0 'dann Portb.1=0
Print "LED1 ist aus" 'und über die UART ausgeben "LED1 ist aus"

Case "1"
Portb.1 = 1
Print "LED1 ist ein"

Case "2"
Portb.2 = 0
Print "LED2 ist aus"

Case "3"
Portb.2 = 1
Print "LED2 ist ein"

End Select 'Ende Auswertung

Loop

End


Nach der Übertragung des Programms schließen wir den Pegelwandler an
RX und TX (Pin2 und 3) des AVR an und starten das Terminal-Programm das einem
am besten liegt.
Wir müssen dort natürlich noch die richtige COM Adresse und Baudrate auswählen.

Bild terminal.png

Jetzt kann man über die Tastartur 0,1,2 oder 3 mit Return eingeben und der AVR schaltet die
Eingänge ein und aus.