-         

Ergebnis 1 bis 5 von 5

Thema: GP1A038RBK völlig verzweifelt

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.02.2009
    Beiträge
    39

    GP1A038RBK völlig verzweifelt

    Anzeige

    Hallo Forumsmitglieder,

    völlig am Boden zerstört berichte ich hier von meiner "Niederlage" mit oben genannten Sensor.

    Vielleicht kann mir jemand einen grundlegenden Tip geben, denn ich weiss keinen Rat mehr... Ich habe so ziemlich alles gelesen und bin am ENDE...

    3 x Gp1A038RBK habe ich (nacheinander) nun angeschlossen aber leider erhalte ich keinen einzigen Wert. Ich benutze eine Encoderscheibe (120).

    Das schlimme daran, ganz am Anfang habe ich mal Werte bekommen (Testumgebung auf einem Steckbrett) aber das habe ich nach Tagelangen versuche nicht mehr hinbekommen.

    Ich nutze mit einem ATMEGA88 Testboard bestücktes Controllerboard. Pind.2 (INT0) lösst auch den externen Interrupt aus, wenn ich +5 Volt anziehe, jedoch nicht beim Sensor.


    Ich hab derzeit Sensor Nr. 3 angschlossen und leider bekomme ich da gar keine Reaktionen auf dem Multimeter.

    Die Schaltung basiert auf einer standard Schaltung z.B. aus dem Buch "Roboter selber bauen".

    Ich sende gerne hier die Fotos rein bzw. die Bascomquellen, aber dezeit bin ich so down... ich möchte es erst mal mit ein paar grundsätzliche Fragen versuchen.

    Frage1: Ich messe bei einem durchziehen eines objektes am Sensor an Voa eine Spannungsveränderung. Ist das Richtig so?

    Frage2: Kathode und GND zusammen mit dem Board auf ein gemeinsammes GND. Da mache ich doch nichts falsch oder?

    Frage3: Ist es üblich, das die Sensoren durch das verlöten einen Defekt bekommen haben? LED funktioniert getestet mit einer Kamera. Sind diese art Sensoren sensibler?

    Frage4: Die meisten Beispiele basieren auf einen m32def.dat (Mega32). Das ändere ich auf m88def.dat um... alles andere sollte danach (quarz16) aber doch kein Problem darstellen oder?

    Was mich noch so wunderte:
    Der Port int0 wird nicht immer sauber als Input port definiert. Braucht man das nicht? in dem gleichen oben genannt Buch wird im Bereich ext. Interrupt das aber gemacht. Leider hat es aber nicht gehofen.. und grundsätzlich funktioniert der Interruptauslöser bei mir ja ...

    Vielleicht hat je jemand von Euch einen ähnlichen "Leidensweg" und kann mir helfen....

    Gruß Schilly


    Code:
    '##########################################################################
    'Drehzahl_Messung.BAS
    '
    'Aufgabe:
    'Dieses Testprogramm demonstriert wie man mit Drehgeber
    'die Umdrehungszahl von Motoren anzeigen kann
    'Als Drehgeber wird ein Sharp GP1A038 mit Codescheibe
    'In diesem Code wird nicht die Drehrichtung ausgewertet, daher
    'wird nur ein Interrupt Port (INT0) an den Sensorausgang (VOA)
    'angeschlossen. Zudem noch +5V, GND und +5V wüber 330 Ohm
    'Widerstand an Anode des Sensors. Also einfachste Beschaltung.
    
    'Wenn man nun Programm startet wird jede Sekunde die Drehzahl
    'ermittelt und alle 3 Sekunden über RS232 auf einem
    'Terminalprogramm ausgegeben.
    
    'Das Programm eigent sich somit zum Messen von Drehzahlen als
    'als auch zur Überprüfung der Drehgeberfunktion. Es läßt sich
    'sehr einfach zu Wegstrecken Auswertung ausbauen. Statt
    'an einem Interrupt könnte man Sensor auch an einen Timereingang
    'anschließen, jedoch wird dies hier im Programm nicht berücksichtigt.
    '###########################################################################
    
    $regfile = "m88def.dat"
    $framesize =
    $swstack = 10
    $hwstack = 40
    
    $crystal = 16000000                                         '16Mhz Quarz
    $baud = 19200                                               'UART auf 9600 Baud einstellen
    Config Portd.2 = Input
    
    Config Int0 = Falling                                       'Int0 reagiert auf fallende Flanke
    
    Config Timer1 = Timer , Prescale = 256                      'Timer1 einstellen
    Const Timervorgabe = 3036                                   'Startwert Timer1
    Const Markierungenproscheibe = 120
    
    Dim Zaehlerirq0 As Long
    Dim Impulseprosekunde As Long
    Dim Impulseprominute As Long
    Dim Umdrehungenprominute As Integer
    Print                                                       'Info über UART ausgeben
    Print "Drehzahl Messung" "
    
    Zaehlerirq0 = 0
    On Int0 Irq0                                                'beim auslösen von Int0 springe in die Sub Irg0
    Enable Int0                                                 'Int0 aktivieren
    
    On Timer1 Timer_irq                                         'bei Timer1 Irq springe in Timer_irq
    Enable Timer1                                               'Timer1 einschalten
    
    Enable Interrupts
                                                                 'Globale Irq´s aktivieren
    '------------------------ Haubtprogramm ----------------------------------------
    Do
       Print
       Print "Impulse Sek: " ; Impulseprosekunde                'Messwerte über UART ausgeben
       Impulseprominute = Impulseprosekunde * 60
       Umdrehungenprominute = Impulseprominute / Markierungenproscheibe
       Print "Umdreh. Min: " ; Umdrehungenprominute
       Wait 3
    Loop
    End
    
    '------------------------ Sub - Rutinen -----------------------------------------
    
    'Pro Impuls (Markierung auf Scheibe) ein Aufruf
    Irq0:
    Print "interrupt"
     Incr Zaehlerirq0                                           'Zaehlerirq0 = Zaehlerirq0 +1
    Return
    
    'Pro Sekunde ein Aufruf
    Timer_irq:
      Timer1 = Timervorgabe                                     'Timer mit Startwert laden
      Impulseprosekunde = Zaehlerirq0
      Zaehlerirq0 = 0
    Return

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Du benutzt aber einen Vorwiderstand für die Diode, oder?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    16.02.2009
    Beiträge
    39
    Hallo uwegw

    Zitat Zitat von uwegw
    Du benutzt aber einen Vorwiderstand für die Diode, oder?
    Ja, Wiederstand von 330 Ohm wurde jedesmal verbaut. 1.3 Volt liegt an der LED an.

    Gruß Schilly

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    19.02.2004
    Alter
    54
    Beiträge
    76
    Hi Schilly,

    ich hab das Buch, das Du erwähnst, zufällig nicht zur Hand :)
    Vielleicht solltest Du doch eine kleine Schaltskizze posten ...
    Gibst Du den Ausgang des Sensors direkt auf den Micro, oder verwendest Du einen Spannungsteiler?

    Eine Spannung am Ausgang zu messen ist genau das, was passieren soll. Ist doch schon mal gut. Und Deine LED geht auch noch (der Vorwiderstand für die LED kam mir auch als erstes in den Sinn ...).

    GND bzw. Kathode von LED und Chip selbst kannst Du miteinander verbinden, keine Problem.

    Sharp schreibt im Datenblatt, dass die Teile sensibel für statische Entladungen sind:

    "OPIC chip due to micro design is easily affected by the Electro static discharge"

    Dass Du aber gleich alle drei Teile gefetzt haben solltest scheint mir doch etwas unwahrscheinlich (hast Du beim Basteln einen "Plaste und Elaste" Pulli an?
    :)

    Als letztes noch: hat das irgendwas mit den Pull-up-Widerständen im Chip zu tun? Schalte die doch mal an (oder aus, je nachdem).


    Ciao,
    Christoph

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    16.02.2009
    Beiträge
    39

    Problem gelöst

    Hallo,

    ich habe mein Problem gelöst. Die Sensoren sind alle ok gewesen. Ich nutze als Board das ATMEGA0815 Streifenrasterboard (in einer Variante.. aber Ihr seht auf dem Link sofort wo mein Fehler lag http://www.streifenraster.de.vu/) Der Pin INT0 wird von der RS232/USB anschluss genutzt. Sobald ich INT1 nutze (einen Pin weiter) kann ich auch die von dem Sensor generierten Werte sehen. Als Kabel benutze ich das (TTL-232R 5V). Mir ist noch nicht ganz klar, warum das Kabel diesen Pin benutz. Werde ich mal gleich nachlesen.

    Hat mich leider etliche Tage gekostet.. na ja was solls.. wieder einen Schritt weiter...

    Vielen Dank für Eure Tips...

    Gruß Schilly

Berechtigungen

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