- Labornetzteil AliExpress         
Ergebnis 1 bis 2 von 2

Thema: Programm für den ersten Roboter --> So richtig???

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2004
    Beiträge
    263

    Programm für den ersten Roboter --> So richtig???

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hab mal mein Programm für den ersten Roboter geschrieben:
    Code:
    $regfile = "m16def.dat"
    $crystal = 16000000
    
    Dim I As Byte
    I = 0
    
                ' Sensoren: 2 IS471
                ' Motorsteuerung mit L293D
    
                      ' Pind.6 = linker Sensor
                      ' Pind.7 = rechter Sensor
                      ' Portd.4 = linker Motor vorwärts/rückwärts
                      ' Portd.5 = rechter Motor vorwärts/rückwärts
                      ' Portd.2 = linker Motor an/aus
                      ' Portd.3 = rechter Motor an/aus
    Ddrd = 00111111                                             ' Pind.6 und Pind.7 = Input / Rest Output
    Portd = 11000000                                            ' Pullup von Pind.6 und Pind.7 aktivieren
                      ' Pind.6 = linker Sensor
                      ' Pind.7 = rechter Sensor
                      ' Portd.4 = linker Motor vorwärts/rückwärts
                      ' Portd.5 = rechter Motor vorwärts/rückwärts
                      ' Portd.2 = linker Motor an/aus
                      ' Portd.3 = rechter Motor an/aus
    
    Portd. 2 = 0                                                ' linker Motor aus
    Portd. 3 = 0                                                ' rechter Motor aus
    
    Cls
    Locate 2 , 1
    Lcd "  Start in 5"
    Locate 3 , 1
    Lcd "  Sekunden"
    Waitms 5000
    
    Cls
    Portd. 2 = 0                                                ' linker Motor aus
    Portd. 3 = 0                                                ' rechter Motor aus
    
    Do
       If Pind.7 = 0 Then
           If Pind.6 = 0 Then                                   ' wenn kein Sensor ein Hindernis meldet
               If I <> 1 Then
                            Cls
                            Locate 1 , 1
                            Lcd "Kein Hindernis"
                            Locate 2 , 1
                            Lcd "geradeaus fahren"
               End If
               I = 1
               Portd.5 = 1                                      ' rechter Motor vorwärts
               Portd.4 = 1                                      ' linker Motor vorwärts
           Else                                                 ' wenn der linker Sensor ein Hindernis meldet
               Portd.2 = 0                                      ' linker Motor aus
               Portd.3 = 0                                      ' rechter Motor aus
               If I <> 2 Then
                            Cls
                            Locate 1 , 1
                            Lcd "Hindernis links"
                            Locate 2 , 1
                            Lcd "-> Links vorbei"
                            Locate 3 , 1
                            Lcd "fahren"
    
               End If
               I = 2
               Portd.5 = 0                                      ' rechter Motor rückwärts
               Portd.3 = 1                                      ' rechter Motor an
               Waitms 1500
               Portd.3 = 0                                      ' rechter Motor aus
               Portd.2 = 1                                      ' Linker Motor wieder an und vorwärts
               Waitms 1000
               Portd.5 = 1                                      ' rechter Motor vorwärts
               Portd.3 = 1                                      ' rechter Motor wieder an
           End If
       Else
           If Pind.6 = 0 Then                                   ' wenn rechter Sensor Hindernis meldet
               Portd.3 = 0                                      ' rechter Motor aus
               Portd.2 = 0                                      ' linker Motor aus
               If I <> 3 Then
                            Cls
                            Locate 1 , 1
                            Lcd "Hindernis rechts"
                            Locate 2 , 1
                            Lcd "-> rechts vorbei"
                            Locate 3 , 1
                            Lcd "fahren"
               End If
               I = 3
               Portd.4 = 0                                      ' linker Motor rückwärts
               Portd.2 = 1                                      ' Linker Motor an
               Waitms 1500
               Portd.2 = 0                                      ' linker Motor aus
               Portd.3 = 1                                      ' rechter Motor wieder an und vorwärts
               Waitms 1000
               Portd.4 = 1                                      ' linker Motor vorwärts
               Portd.2 = 1                                      ' linker Motor wieder an
           Else                                                 ' wenn beide Sensoren Hindernis melden
               Portd.3 = 0                                      ' rechter Motor aus
               Portd.2 = 0                                      ' linker Motor aus
               If I <> 4 Then
                            Cls
                            Locate 1 , 1
                            Lcd "   Hindernis"
                            Locate 2 , 1
                            Lcd "-> umdrehen"
               End If
               I = 4
               Portd.3 = 1                                      ' rechter Motor an
               Portd.2 = 1                                      ' linker Motor an
               Portd.4 = 0                                      ' linker Motor rückwärts
               Waitms 3000
               Portd.4 = 1                                      ' linker Motor vorwärts
           End If
       End If
    Loop
    
    End                                                         'end program
    Funktioniert das so wohl? Bin noch etwas unsicher.
    Später sollen die Sensoren dann über Interrupts laufen.

    MFG

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.11.2004
    Alter
    34
    Beiträge
    100
    Probiers doch einfach aus
    Probieren geht über studieren
    mit freundlichen Grüßen

    zwerg1

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen