- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 22

Thema: ProBot128 ACS

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.11.2011
    Beiträge
    9
    Danke für die kompetente Hilfe, aber es funktioniert immer noch nicht.

    "Port_DataDirBit(PWM_IR,PORT_OUT)"

    hatte ich auch schonmal, aber hatte sich leider nichts verändert.
    Ich werd die Frequenz mal mit nem Oszi testen lassen.
    Ich hab nochmal Spannungen gemessen:
    OC3A zu Masse sind etwa 2,5V, PD5 zu Masse 5V.
    Bleiben also für die 3 LEDs und den Widerstand etwa 2,5V

    Gruß

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Es funktioniert ja noch nicht, möglicherweise denke ich auch zu kompliziert.

    "OC3A zu Masse sind etwa 2,5V" bedeutet 50:50 Tastverhältnis. Also läuft immerhin der Timer. "PD5 zu Masse 5V" ist allerdings schlecht. Wenn der Pin high ist gibt es keinen Strom durch die IR-LEDs und man kann nicht unterscheiden, ob OC3A direkt oder über PullUp gemessen wird. Besser wäre eine Messung des Stroms durch die LEDs an OC3A.

    Das Programm wechselt die Seite bei der Abfrage. Zuerst wird rechts gemessen:

    Code:
        Do While True
    
            Port_WriteBit(IR_left,PORT_OFF)         
            Port_WriteBit(IR_right,PORT_ON)
            AbsDelay(5)
            If Port_ReadBit(TSOP) = 0 Then      
               Text = "Object right"
    Kathoden der linken LEDs auf Low, die der Rechten auf High. Prima, jetzt leuchten aber die linken LEDs. Seiten vertauscht?

    Bild hier  

    [Edit]

    Wie lange dauert denn das "AbsDelay(5)"? Der TSOP braucht mindestens 6-10 Impulse bis er das Signal erkennt. Das wären 10 * (1/36000) oder 0,000277Sek bzw. 277µs. Und die Leds leuchten auch nicht schlagartig...

    Bleiben also für die 3 LEDs und den Widerstand etwa 2,5V
    Nein, es bleiben für die drei LEDs und den Widerstand (und den PullUp?) genau 36000 mal 5V und 36000 mal 0V in der Sekunde. ;)

    Zu "Besser wäre eine Messung des Stroms durch die LEDs an OC3A."

    Mit und ohne "Port_DataDirBit(PWM_IR, PORT_OUT)", jeweils mit "Port_WriteBit(IR_right,PORT_OFF)".

    [Edit2]

    Vorsichtshalber habe ich mal das Pinout überprüft:

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

    #define IR_right 29: Scheint richtig. PortBit 29 ist PD5.
    #define IR_left 27: PortBit 27 ist PD3/TXD1. Auch richtig.
    Geändert von radbruch (13.11.2011 um 23: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!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    10.11.2011
    Beiträge
    9
    Also bei der Messung habe ich neue Erkenntnisse gewonnen:

    1. Ob "PWM_IR OUT" oder nicht, spielte bei der Messung keine Rolle
    2. Es fließt ein Strom von 3,5mA im aktiven Strang
    3. Bei "PORT_OFF" messe ich 5V zur Masse im ensprechendem Strang, bei "PORT_ON" sind es 0V (sollte es nicht anders herum sein)


    AbsDelay(5) dauert 5/1000 sec also 0,005sec, das sollte reichen

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    3,5mA könnten bei 50:50 der Berechnung entsprechen: "Das ergibt (5V-3*1,3V)/150Ohm=0,007A pro Strang".

    1 könnte bedeuten, dass Timer_T3PWM() doch Einfluss auf die Pinkonfiguration nimmt. Die mit Port_DataDirBit() gesetzte Datenrichtung wird überschrieben:

    Code:
        Port_DataDirBit(IR_left,PORT_OUT)
        Port_DataDirBit(IR_right,PORT_OUT)
        Port_DataDirBit(TSOP,PORT_IN)
        Port_DataDirBit(PWM_IR,egal)
        Timer_T3PWM(51,25,PS_8)
    Die Bedeutung von "PS_8" ist auch noch nicht klar.

    Bei 3 verstehe ich die Frage nicht.

    Um AbsDelay() zu testen könntest du eine LED im Sekundentakt blinken lassen.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

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

    Beitrag

    Timer_T3PWM( 51,25,PS_8 )

    PS_8 steht für die Zeitbasis (Dauer eines Ticks)
    Diese ist bei PS_8 542,5 ns.
    Daraus errechnet sich die Frequenz:

    Periodendauer = 542,5ns*51 = 0,02766 s
    Frequenz = 1/Periodendauer = 36,143 Hz
    ----------------------------------------------
    AbsDelay(Dauer in Millisekunden)
    Also bei AbsDelay (1000) blinkt die LED relative genau im Sekundentakt

    Gruß

  6. #6
    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!

  7. #7
    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ß

Ä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
  •  

LiFePO4 Speicher Test