Hallo,
hier möchte ich Euch vorstellen, wie ein AVR (hier ATMega 2560, es kann
aber auch an jeden anderen AVR angepasst werden) über RS-232 mit dem
Windows-PC (geht auch unter Linux und MAC-OS) gesteuert werden kann. Als
Hardware wird hier die LED an PortB.7 verwendet, es lässt sich natürlich
jede hardware analog steuern: Relais, Servos etc.
Hier der Bascom-code auf dem AVR:
1
$regfile = "m2560def.dat"
2
$framesize = 32
3
$swstack = 32
4
$hwstack = 32
5
$crystal = 16000000
6
$baud = 1200
7
8
Config Portb.7 = Output
9
Led Alias Portb.7
10
11
Dim X As Byte
12
Dim Y As Byte
13
Dim Z As Byte
14
15
Z = 50 ' General Wait Time
16
Y = 0 'initialize software-timer
17
18
Do
19
20
If Ischarwaiting() = 1 Then 'Eingang RS-232 prüfen
21
Inputbin X
22
X = 100 - X 'Software-Umkehr damit LED dunkel ist, wenn der Trackbar links gezogen wird
23
End If
24
25
While Y < 100 'Software-timer. Das kann
26
If Y = X Then Led = 1 'natürlich auch mit einem onboard-timer
Der COM-Port muss angepasst werden. Nach Installation des USB-RS232
Adapters wird der im Gerätemanager angezeigt.
Viel Spass beim Experimentieren.
Thomas
ich habe das Programm eben darum erweitert, dass eine RGB-LED
individuell angesteuert wird. Dabei liegen die Anoden über jeweils 220 Ω
an den Ports:
Rot - PortB.6
Grün - PortB.5
Blau - PortB.4
Die Helligkeitswerte werden in einem Byte übertragen. Dabei hat die rote
Led den Bereich von 0 bis 80, die grüne 81 ~ 161 und die blaue 162 ~
242. Beide Programme sind in Basic geschrieben (BASCOM und PureBasic,
beide führen diese Programme auch in der Demo-Version aus).
AVR-Seite (Bascom):