-
        

Ergebnis 1 bis 5 von 5

Thema: Drehgeber GP1A038RBK über ATmega328p auslesen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2013
    Beiträge
    22

    Drehgeber GP1A038RBK über ATmega328p auslesen

    Anzeige

    Hey Leute habe ein kleines Problem (Mal wieder )
    Also wir wollen die Drehzahl eines Motors mit dem Oben genannten inkremental drehgeber messen und auf einem Display ausgeben.
    zur hilfe haben wir das beispiel in der Wiki genommen und es als Vorlage benutzt. http://www.rn-wissen.de/index.php/Be...mit_RN-Control
    Jetzt ist unser problem das der Atmega 328p keine Impulse zählt obwohl welche an den eingäng PinD.2 anliegen. (einmal mit led sichtbar und gemessen 2,23V )
    Jetzt meine frage ob das dran liegt das die Spannung zu klein ist und der mc das signal nicht als HIGH erkennt. Wenn das der Fall ist wie kann ich das Signal dann verstärken und wodran liegt das in sämtlichen foren habe ich nehmlich immer gelesen das der sensor dierekt an den mc angeschlossen wurde
    ich hoffe ihr könnt mir weiterhelfen!!!
    LG Balu18

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2007
    Ort
    Berlin
    Beiträge
    524
    Hallo Balu18,

    Laut Datenblatt liegt der Ausgang der Lichschranke bei minimal Vcc-0,3 Volt

    Wenn also am Pin 6 der Lichtschranke 5 Volt dran liegen, sollte dein High Signal mindestens 4,7 Volt sein.
    bei 2,7 Volt Versorgung also mindestens 2,4 Volt am Ausgang.

    Da Du nur 2,23 Volt misst, sollte da irgendwas faul sein.
    Ich würd den Pin vom Controller erstmal unterbrechen und dann miss mal nochmal dein High Signal and der Lichtschranke.

    Dann mal prüfen welcher LED Strom in der Lichtschranke fließt. Sollten so ca. 11 mA sein.


    Steht der Pin vom Controller auch richtig (auf Eingang) Sonst arbeiten 2 Ausgänge gegeneinander.

    Welche Spannung hast Du am Pin 6 der Lichtschranke und welche als Versorgung am Controller ?

    Funktioniert das Zählen überhaupt. Du müsstes den Pin mal mit einen Draht oder Taster von High noch Low ändern und schauen ob der Controller
    die Signale überhaupt zählt.

    EDIT:
    wenn ich den Parameter VIH des Controllers grade richtig interpretiere, dann muss ein High Signal mindestens 0,6*VCC sein
    also bei 5 Volt Versorgung mindestens 3 Volt und da hast Du dann auf jeden Fall ein Problem.
    Dann brauchst Du nämlich 3 Volt für ein High.
    Das sollte aber richtig funktionieren, wenn deine Lichtschranke auch mit +5V versorgt wird.
    Du must unbedingt klären warum dein Ausgangspegel der Lichtschranke so gering ist.

    Wenn Du an dem Pin zum gucken noch eine LED zum prüfen dran hast, dann geht es nicht mehr. Die muss weg.
    Die begrenzt Dir nämlich den Pegel auf die Durchflussspannung der LED. Ich würd jetzt sagen Du hast ne grüne oder gelbe LED dran

    Mehr fällt mir im Moment nicht ein.
    Siro
    Geändert von Siro (04.01.2014 um 23:38 Uhr)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2013
    Beiträge
    22
    erstmal danke für die schnelle antwort
    Also an pin 1 habe ich 1,3V mit 14,5 ampeere halt von 5V über 330OHM
    An pin 2 klar gnd
    an pin 3 ebenfals klar gnd
    an pin 4 habe ich nichts da ich keine drehrichtung bestimmen möchte
    an pin 5 habe ich klar 2,3 V
    und an pin 6 habe ich VCC vom mc 4,78V
    Die LED war blau
    das einzige was nach entfernen der led noch auf der leitung liegt ist ein 10k Ohm wiederstand der als pull down wiederstand fungiert damit ich ein klares signal erhalte könnte es vielleicht daran liegen.

    hier noch unser genauer code :
    Code:
    $regfile = "m328pdef.dat"
    
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    
    Config Portd.2 = Input
    
    Dim Ist As Word
    Dim Soll As Word
    'Interrupt Messung
    Const Timervorgabe = 3036
    Const Markierungenproscheibe = 60
    Dim Zaehlerirq0 As Long
    Dim Impulseprosekunde As Long
    Dim Impulseprominute As Long
    Dim Umdrehungenprominute As Integer
    Dim Umdrehungenprosekunde As Integer
    
    'LCD
    Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.1 , Rs = Portb.0
    Config Lcd = 16 * 2
    
    'Interrupt Messung
    Config Int0 = Falling
    Config Timer1 = Timer , Prescale = 256
    
    Zaehlerirq0 = 0
    On Int0 Irq0
    Enable Int0
    
    On Timer1 Timer_irq
    Enable Timer1
    
    
    Enable Interrupts
    
    Cls
    Do
    
       'Umrechnen der Messgrößen
       Impulseprominute = Impulseprosekunde * 60
       Umdrehungenprominute = Impulseprominute / Markierungenproscheibe
       Umdrehungenprosekunde = Impulseprosekunde / Markierungenproscheibe
    
    
    Locate 1 , 1
    Lcd "Min" ; Umdrehungenprominute
    Locate 2 , 1
    Lcd "Impuls" ; Impulseprominute
    
    
    Loop
    
    End                                                         'end program
    
    Irq0:
     Incr Zaehlerirq0                                           'Pro Impuls (Markierung auf Scheibe) ein Aufruf
    Return
    
    
    Timer_irq:                                                  'Pro Sekunde ein Aufruf
      Timer1 = Timervorgabe
      Impulseprosekunde = Zaehlerirq0
      Zaehlerirq0 = 0
    Return

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2007
    Ort
    Berlin
    Beiträge
    524
    Die 1,3 Volt an Pin 1 sind richtig.
    Bei einer Versorgung von 5V must Du die Spannung der LED im Optokoppler abziehen
    Also 5V - 1,3 Volt. Das ist dann die Spannung die an dem Vorwidertsand abfallen muss, also 3,7 Volt
    Der Strom ist dann bei deinem 330 Ohm 3,7 / 330 und damit 11,2 mA (!!!! MILLI Ampere)
    Das scheint also auch okay.

    Aber:

    Die Lichtschranke hat einen eingebauten Pullup von 10K laut Datenblatt, wenn Du dann zusätzlich einen Pulldown mit 10K hast, teilt sich die Sapnnung durch 2
    wenn deine 4,78 Volt an Pin 6 durch 2 teilst kommst Du auf 2,39 Volt was annähernd in Richtung deinr Messung kommt mit 2,3 Volt.
    Da muss auf jeden Fall der Pulldown Widerstand raus. Du benötigst NICHTS an dem Pin der CPU.
    Einfach den Ausgang von der Lichtschranke direkt ran ohne Pullup oder Pulldown und auch KEINE LED ran.

    Das "klare" Masse Signal wird durch den internen Transistor in der Lichtschranke erzeugt wenn er leitend wird. Das High Signal erzeugt der interne Pullupwiderstand in der Lichtschranke.

    Dann sollte dein Pegel auch "richtig" HIGH werden


    Siro

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2013
    Beiträge
    22
    super danke für die hilfe hat gefunzt
    ich habs leider nicht so mit Datenblättern :P hab ich nie gezeigt bekommen wo man als erstes dierekt erstmal drauf gucken muss etc
    aber naja jetzt gehts ja
    lg Balu18

Ähnliche Themen

  1. Infos über Drehgeber
    Von heliosoph im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 10.07.2013, 16:32
  2. Antworten: 0
    Letzter Beitrag: 17.03.2013, 10:53
  3. MD23 an RN-Control, Drehgeber auslesen
    Von xxxsnowxxx im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 3
    Letzter Beitrag: 27.05.2010, 15:47
  4. Drehgeber (mittels Hallsensoren) auslesen
    Von alex.kurke im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 26.05.2005, 00:09
  5. Optokoppler an Drehgeber auslesen
    Von Daveler im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 03.01.2005, 20:10

Berechtigungen

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