PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ir diode programmieren



asuro11
27.05.2009, 15:02
hallo, es geht einmal um eine ir diode die etwas senden soll und einmal um die IR schnittstelle des ASUROS die etwas empfangen soll.

und zwar: die IR-diode ist mit PIN 17 eines Atmega8 verbunden (aber nicht auf dem ASURO sondern auf einer Zusatzplatine). Diese IR-Diode soll nun versenden. Und zwar Fall1, Fall2, Fall3 und Fall4. wie heißt denn der befehl um z.B. Fall1 zu schicken?
ich habe mir irgendwas mit SerWrite überlegt komme aber nicht darauf wie es gehen soll.

und dann auf dem ASURO, dort soll es empfangen werden und bei einem bestimmten fall soll etwas bestimmtes passieren. wie heißt denn der Befehl um etwas zu lesen? SerRead vieleicht? aber wie baue ich das richtig ein?

radbruch
27.05.2009, 16:55
Hallo

Die IR-LED nur mit Pin 17 zu verbinden reicht ja nicht wirklich. Ich vermute mal, dass du die asuro-Schaltung nachgebaut hast. Also D10 und R16 zwischen Pin3 und 17. An Pin 3 (TXD) kommen die Sendedaten raus, an Pin 17 (OC2) die 36kHz-Trägerfrequenz. Wenn das so angeschlossen ist, der zweite(?) Mega8 auch mit 8MHz getaktet wird und der USART mit Init() aus der asuro-Library initialisiert ist, dann sollte man auch mit SerWrite() Daten senden können.

Serielle IR-Daten kann der asuro mit SerRead() empfangen, in der Anleitung steht beschrieben wie das funktioniert. Testen könnte man das z.B. mit dem Terminal. Allerdings muss man dabei beachten, dass die eingegebenen Zeichen erst gesendet werden wenn man [ENTER] drückt.

Alternativ zur seriellen Datenübertragung mit dem USART könnte man dem Asuro auch andere Daten senden, z.B. RC5-Fernbedienungscode oder bei nur 4 verschiedenen Kommandos kann man auch einen eigenen Code entwickeln.

Gruß

mic

asuro11
27.05.2009, 17:56
also die ir diode ist mit pin 3 und 17 verbunden (+widerstand natürlich).
wie würde denn z.b. dann heißen:
versenden von "fall 1"
erkennen von "fall1"

asuro11
29.05.2009, 12:43
in meinem programm sieht es wie folgt aus:

SerWrite("fall 1"); das ist doch falsch oder? muss da nicht noch einiges davor, und in die klammer???

und beim empfangen habe ich einfach:

SerRead(&daten,1,0);
if (daten == 'fall1')

das kann doch auch nicht richtig sein oder???

asuro11
16.06.2009, 19:31
hallo. kennt jemand das basisprogramm was auf jedem vorgefertigten ASURO atmega8 ist?? ist dort zufällig festgelegt dass pin 19,18, oder 16 auf 1 gesetzt ist???

asuro11
16.06.2009, 19:42
hallo. kennt jemand das basisprogramm was auf jedem vorgefertigten ASURO atmega8 ist?? ist dort zufällig festgelegt dass pin 19,18, oder 16 auf 1 gesetzt ist???