- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 22

Thema: ProBot128 ACS

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    PS_8 steht für die Zeitbasis
    Aha, vielleicht sollte ich mir doch mal die Doku anschauen. PS steht für PreScaler (=Vorteiler). Die Periodendauer bei 36000Hz (36kHz) ist doch 27,7µs oder 0,0000277Sek. (0,0000277+36000=0,9972). Aber leider wird's dadurch auch nicht besser. 542,5ns sind 0,0000005425Sek., mal 51 sind 0,0000276675Sek.

    http://www.c-control-pro.de/document...imer_t3pwm.htm

    Code:
    #define PWM_IR 35
    #define IR_left 27
    #define IR_right 29
    #define TSOP 26
    
    Sub main()
        PRO_BOT128_INIT()
    
        Port_DataDirBit(PWM_IR,PORT_OUT)
        Port_DataDirBit(IR_left,PORT_OUT)
        Port_DataDirBit(IR_right,PORT_OUT)
        Port_DataDirBit(TSOP,PORT_IN)
        // Timer_T3PWM(51,25,PS_8) // Timer nicht aktivieren
    
            Port_WriteBit(PWM_IR,PORT_ON) // Anoden High         
            Port_WriteBit(IR_left,PORT_OFF) // Kathoden Low        
            Port_WriteBit(IR_right,PORT_OFF)
    
        Do While True
        End While
    
    End Sub
    So müßten 2*0,007mA durch OC3A fliesen. Wenn das klappt kann man wieder ohne aktivierten Timer in der Hauptschleife den OC3A "von Hand" togglen. OC3A ein, Periodendauer warten, OC3A aus, Periodendauer warten usw. Nach jedem Durchgang kann man den TSOP abfragen und den Status an einer LED ausgeben.

    Gruß

    mic
    Geändert von radbruch (15.11.2011 um 21:27 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    10.11.2011
    Beiträge
    9

    Beitrag

    Mir ist grad das Herz in die Hose gerutscht :O
    Hab aber grade nochmal genau nachgeschaut:
    es ist so Belegt wie erst geschrieben,
    OC3A ist 35
    PD5 ist 29
    PD3 ist 27

    OC3A lässt sich auch mit dem code


    Code:
    #define PWM_IR 35
    #define IR_left 27
    #define IR_right 29
    #define TSOP 26
    
    Sub main()
        PRO_BOT128_INIT()
    
        Port_DataDirBit(PWM_IR,PORT_OUT)
        Port_DataDirBit(IR_left,PORT_OUT)
        Port_DataDirBit(IR_right,PORT_OUT)
        Port_DataDirBit(TSOP,PORT_IN)
        // Timer_T3PWM(51,25,PS_8) // Timer nicht aktivieren
    
            Port_WriteBit(PWM_IR,PORT_ON) // Anoden High         
            Port_WriteBit(IR_left,PORT_OFF) // Kathoden Low        
            Port_WriteBit(IR_right,PORT_OFF)
    
        Do While True
        End While
    
    End Sub
    nicht einfach auf High schalten.

    Gruß

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Du hast recht mit der Belegung der Pins. Sorry. Muss mich noch mehr einlesen...

    Gruß

    mic

    [Edit]

    Echt kniffelig. Inzwischen habe ich noch einen dritten Versuch auf der selben Codebasis gefunden. Die funktioniert leider auch nicht:
    https://www.roboternetz.de/community...28-ACS-Problem

    Warum verwendet ihr nicht die Funktionen aus der probot-Library?

    Code:
    ACS_INIT()
    Initialisiert das Anti-Collisions-System, muss vor der Benutzung aufgerufen werden.
    
    ACS_LEFT() as byte
    Gibt des Status der Hindernis-Erkennung zurück (linker Sensor):
    1 = kein Hindernis
    0 = Hindernis erkannt
    
    ACS_RIGHT() as byte
    Gibt des Status der Hindernis-Erkennung zurück (rechter Sensor):
    1 = kein Hindernis
    0 = Hindernis erkannt
    Die Antwort kann ich mir selbst geben: Weil der Code der Library die Basis für eure Varianten ist:

    Code:
    /---[ ACS System ]-------------------------------------------------------------
    void ACS_INIT(byte sensitivity)
    {
        //Calculating the pulse width modulation
        //Timer_T3PWM(Par1,Par2,PS);
        //Period=Par1*PS/FOSC (51*8/14,7456MHz=27,66 µs)  = 36Khz
        //Pulse=Par2*PS/FOSC (25*8/14,7456MHz=13,56 µs) On Time
    
        //Timer_T3PWM(word period,word PW0,byte PS)   '36Khz
        Timer_T3PWM(51,sensitivity,PS_8);   //with Par1, Par2 can reach altered!
                                            //Responding To the ACS must be sensitive To these parameters are screwed!
    }
    
    //---[ Read ACS Sensor right ]--------------------------------------------------
    byte ACS_RIGHT(void)
    {
        byte ACS_Right;
        Port_WriteBit(IR_left,PORT_OFF);
        Port_WriteBit(IR_right,PORT_ON);
        AbsDelay(5);
        ACS_Right=Port_ReadBit(TSOP);
        Port_WriteBit(IR_right,PORT_OFF);
        return ACS_Right;
    }
    
    //---[ Read ACS Sensor left ]---------------------------------------------------
    byte ACS_LEFT(void)
    {
        byte ACS_Left;
        Port_WriteBit(IR_right,PORT_OFF);
        Port_WriteBit(IR_left,PORT_ON);
        AbsDelay(5);
        ACS_Left=Port_ReadBit(TSOP);
        Port_WriteBit(IR_left,PORT_OFF);
        return ACS_Left;
    }
    Geändert von radbruch (15.11.2011 um 22:28 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    10.11.2011
    Beiträge
    9
    Also ich hab mir jetzt ein SRF02 zugelegt, der die Arbeit übernehmen soll.
    Bei dem Timer tipp ich jetzt einfach ma auf einen Defekt.
    Besteht eigentlich die Möglichkeit statt des Timer_T3PWM
    den Timer_T0PWM zu nutzen?

    Gruß

Ähnliche Themen

  1. Probot128 Motor?
    Von pro-bot128 im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 11
    Letzter Beitrag: 30.04.2014, 10:49
  2. ProBot128 Syntax Fehler EOF in BASIC
    Von Wombatz im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 2
    Letzter Beitrag: 11.07.2011, 18:44
  3. ProBot128 zieht nach rechts
    Von Alexander Krauss im Forum Mechanik
    Antworten: 4
    Letzter Beitrag: 06.07.2011, 06:15
  4. ProBot128 blinkt nur LEDs und piepst
    Von Robo_Noob_ im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 8
    Letzter Beitrag: 15.10.2009, 12:31
  5. Probot128: Widerstand fehlt!
    Von Jojoce im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 10
    Letzter Beitrag: 20.09.2009, 14:39

Berechtigungen

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

12V Akku bauen