PHP Forum - Coding Board
Dezember 16, 2017, 08:23:11 *
Willkommen Gast. Bitte einloggen oder registrieren.

Einloggen mit Benutzername, Passwort und Sitzungslänge
News:
 
   Übersicht   Hilfe Suche Einloggen Registrieren  
Seiten: [1]
  Drucken  
Autor Thema: IR-Steuerung von Roboter (Gleichstrommotor)  (Gelesen 205 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
kip
Newbie
*
Beiträge: 20



Profil anzeigen E-Mail
« am: März 26, 2009, 02:36:43 »

hi,

ich versuche gerade einen Gleichstrommotor mit Hilfe einer herkömmlichen Multi-Fernbedienung, einem IR-Sensor (TSOP 1736, Datenblatt) und einem Microcontroller-Board (AT89S8253) zu realisieren. Die Fernbedienung hab ich auf den RC5-Code programmiert. Glaub ich zumindest, das Signal der Taste 1 entspricht laut Oszi auf jeden Fall dem des RC5-Codes. Den Empfänger hab entsprechend dem Datenblatt aufgebaut, allerdings hab ich den 10k-Widerstand durch einen 1k-Widerstand ersetzt, da es trotzdem noch zu Schwingungen beim Signal gekommen ist, wenn der Empfänger mit dem Microcontroller verbunden war. Den Empfängerausgang hab ich an einem beliebigen PIN angeschlossen. NUN zur Programmierung:

Code:
CSEG AT 0

; IR-Signal-Auswertung
IRinput        BIT        P1.3
IRCode        DATA    7fh
IRempfadr    DATA    7eh

; Zuweisung der Fernbedinung

IRrechts    EQU       00101110b
IRlinks        EQU       00101011b
IRvor        EQU       00101101b
IRzurueck    EQU       00101100b
IRstopp        EQU       00101111b

; Gleichstrom-Motor-Steuerung
Motoren        DATA    P2
Mstopp        EQU        00000000b
Mvor        EQU        11001100b
Mzurueck    EQU        10101010b
Mrechts        EQU        11001000b
Mlinks        EQU        10001100b

LEDs        DATA     P0

start:
MOV Motoren,#Mstopp

;RC5-Empfang

ireinlesen:
JB         IrInput,    ireinlesen
CLR     A
LCALL     Zeit34
MOV     B,            #7
loopAdr:
MOV     C,            IrInput
RLC     A
LCALL     Zeit
    DJNZ    B,        loopAdr
ANL     A,            #00111111b
MOV     IRempfadr,    A
CLR     A
MOV     B,            #6
loopDaten:
MOV     C,            IrInput
RLC     A
LCALL     Zeit
DJNZ     B,            loopDaten
MOV     IRcode,        A
CALL     zeit
CALL     zeit

; Ende RC5-Empfang
MOV     A,            IRempfadr
ANL     A,            #11011111b
JNZ        IReinlesen

; Motorsteuerung
MOV     A,            IRcode
CJNE    A,            #IRrechts,m1
MOV     motoren,    #Mrechts
SJMP     anzeigen
m1:
CJNE     A,            #IRlinks,m2
MOV        motoren,    #Mlinks
SJMP    anzeigen
m2:
CJNE    A,            #IRvor,m3
MOV        motoren,    #Mvor
SJMP    anzeigen
m3:
CJNE    A,            IRzurueck,m4
MOV        motoren,    #Mzurueck
SJMP    anzeigen
m4:
CJNE    A,            IRstopp,anzeigen
MOV        motoren,    #Mstopp
SJMP    anzeigen

;LED-Anzeige
anzeigen:
MOV        LEDs,        IRCode
SJMP    IReinlesen

;Zeitverzögerung 1768us
Zeit:
MOV        R6,            #5
loop1:
MOV        R7,            #172
loop0:
DJNZ    R7,            loop0
DJNZ    R6,            loop1
RET

;Zeitverzögerung 1328us

Zeit34:
MOV        R6,            #5
loop3:
MOV        R7,            #131
loop2:
DJNZ    R7,            loop2
DJNZ    R6,            loop3
RET

ENDCode:
IRrechts    EQU       00101110b
Gespeichert
DizzY_D
Official SC Leaker
Full Member
***
Beiträge: 104

296119081
Profil anzeigen E-Mail
« Antworten #1 am: März 26, 2009, 04:57:05 »

Is ja interessant...
Ich habe mich ne Zeit lang auch mir Robotern auf AVR Basis geschäftigt.
Is n cooles Hobby nur leider fehlt mir imho die Zeit/Lust da wieder aktiv zu werden.
Bei deinem Problehm kann cih dir leider net helfen, denn ich habe meinen Robo immer in Bascom geproggt Smiley
Und ich denke mal hier wird dir auch niemand so richtig helfen können.
Falls du die Seite net schon kennst, Poste das mal auf http://www.Roboternetz.de
Da laufen ja genug Leute mit Ahnung rum.
Ansonsten würd ich gerne mal n Bild von deinem Schätzchen sehen Lächelnd
Nur so aus Interesse!

MfG DizzY_D
Gespeichert

Aktuelles Projekt:

Status: 5%
Real Coder doesn't code Visual Basic. Real Coder codes Opcodes.
Ph0xEn
Jr. Member
**
Beiträge: 62


Profil anzeigen E-Mail
« Antworten #2 am: Juli 19, 2009, 02:29:50 »

Normalerweise solltest du die ganzen AVM AT Mikrocontroller auch mit C Programmieren können, ich empfinde das ganze als einfacher irgendwie...also ich hab mal mit einem ATMega 8 eine Heizungs/Lüftungssteuerung Programmiert und gelötet. Da fand ich C doch um einiges gemütlicher.

MfG
Gespeichert
kip
Newbie
*
Beiträge: 20



Profil anzeigen E-Mail
« Antworten #3 am: Juli 19, 2009, 05:37:50 »

Leider Gottes dürfen wir nicht in C programmieren. Lernen nur Assembler! Traurig Bin leider immer noch nicht auf eine Lösung gekommen!
« Letzte Änderung: Juli 19, 2009, 05:47:04 von kip » Gespeichert
Seiten: [1]
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | New Look by Nolt Prüfe XHTML 1.0 Prüfe CSS