- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 35

Thema: Gabellichtschranke ink Inkrementierungsscheibe

  1. #21
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Anzeige

    Praxistest und DIY Projekte
    Naja, bist auf einem guten Weg.
    Wenn du den Simulator richtig anwenden kannst, dann ist schon viel gewonnen, die meisten Fehler kann mann da schon gut erkennen. Die Einzelstep und Schleifenfunktion ist schon geil.

  2. #22
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144
    hy hab das programm in den mega8 geladen
    nur es funktioniert nicht?!

    taster is ein kleiner taster
    ausgang derzeit ne led an 200ohm gegen masse

    interupt eingang noch nicht getestet.

    so, jetzt zu den fehler.

    hab alles mögliche probiert sogar ne zusätzliche abfgae eingebaut damit der taster echt nur bei gegen masse funktion hat
    mit pullup widerstand gegen +5 am taster auch schon probiert
    port & pin getestet, wobei ich noch immer nicht genau weiß was der unterschied is, funktioniert jedenfalls im simulator ohne probleme!!!

    sogar ne debounce eingebaut, aber hat nie richtig im simulator funktioniert.

    bitte hilfe, es kann ja nicht sein das programm im AVR richtig funkt & im mega 8 nicht.
    led leuchtet nie!!!!!!!!!!!!!!!!!

    mega 8 sollte funktioniern da schon ein testprogramm für display ansteuerung gefunkt hat



    hier das aktuelle programm



    Code:
    $regfile = "m8def.dat"
    $baud = 9600
    $crystal = 8000000
    
    Config Pinb.2 = Input
    Config Pinb.1 = Output
    Config Portb.2 = Input
    
    
    Dim Irq0 As Word
    
    
    
    
    
    '' Interrupt Int0 config
    On Int0 Irq0
    
    Config Int0 = Rising
    Enable Int0
    Enable Interrupts
    
    
    
    
    
    Do
    
    
    
    ''abfrage ob taste gedrückt & Kontrolle ob irq0 noch nicht über 800
    Abfrage:
    
    
    If Pinb.2 = 0 Then
    Waitms 250
    End If
    
    If Pinb.2 = 0 Then
    Gosub Rauf
    End If
    
    
    
    Waitms 20
    
    
    
    
    
    
    If Irq0 > 5 Then
    Gosub Halt
    Else
    
    
    
    End If
    
    
    Loop
    
    
    '' bei Int0 wird irq0 um 1 erhöht
    Irq0:
    Incr Irq0
    Return
    
    
    
    
    '' wenn 800 impulse ereicht dann motor stopp
    Halt:
    
    Irq0 = 0
    Reset Pinb.1
    Waitms 100
    Return
    
    '' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter
    Rauf:
    Set Pinb.1
    Waitms 100
    Return
    mfg
    piri

  3. #23
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144
    kleines update

    hab da programm jetzt so geändert damit es auf tastendruck funktioniert.

    nur der gabellichtschranke macht probleme, led (motor) geht nach x impulsen nicht aus.

    wenn ich den int0 mit finger berühre funktionierts, also dürft vielleicht das ganze nicht mit gabellichtschranke funktionieren?!

    gabellichtschranke gp1a73e http://document.sharpsma.com/files/gp1a73a_e.pdf
    hab sie mit ausgang (47k) gegen 5v und vcc (330ohm) gegen 5v beschalten
    vielleicht funkt das gar nicht mit gp1a73

    mfg
    piri

    danke für tips

    aktuelle code, mit veränderungen, hab die veränderungen teilweise aus andren codes kopiert, weil mit denen zumindest die led an funkt!

    Code:
    $regfile = "m8def.dat"
    $baud = 9600
    $crystal = 8000000
    
    Config Pinc.2 = Input
    Config Portb.1 = Output
    
    
    
    
    
    Dim Irq0 As Word
    
    
    
    
    
    '' Interrupt Int0 config
    On Int0 Irq0
    
    Config Int0 = Falling
    Enable Int0
    Enable Interrupts
    
    
    
    
    
    Do
    
    
    
    ''abfrage ob taste gedrückt & Kontrolle ob irq0 noch nicht über 800
    Abfrage:
    
    
    
    
    If Pinc.2 = 0 Then
    Gosub Rauf
    End If
    
    
    
    Waitms 100
    
    
    
    
    
    
    If Irq0 > 2 Then
    Gosub Halt
    Else
    
    
    
    End If
    
    
    Loop
    
    
    '' bei Int0 wird irq0 um 1 erhöht
    Irq0:
    Incr Irq0
    
    
    Return
    
    
    
    
    '' wenn 800 impulse ereicht dann motor stopp
    Halt:
    
    Irq0 = 0
    Portb = &B00000000
    Waitms 100
    Return
    
    '' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter
    Rauf:
    Portb = &B11111111
    Waitms 100
    Return

  4. #24
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Config Pinb.2 = Input
    Config Pinb.1 = Output
    Config Portb.2 = Input

    Warum Portb.2 nochmal konfigurieren?

  5. #25
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Laut Datenblatt hat der VCC-Anschluss 5 Volt - ohne 330 Ohm, hat eigene Stromquellenschaltung.

    '' Interrupt Int0 config
    On Int0 Irq0
    würde ich vor " Do " setzen.
    Probier mal aus.

  6. #26
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144
    hy

    so hab ma das nochmal angschaut also
    @ stromi

    ' Interrupt Int0 config
    On Int0 Irq0
    steht doch eh vor do
    oder muss man die flanke nicht nehmen falling/rising?

    jedenfalls hab ich ma mal dacht wenn ich schon ein lcd hab, dann lass ich mal den irq0 anzeigen, gut ein paar programmzeilen eingebaut:
    hängt nix & berührung mit finger zählt er hoch teilweise schon wenn ein kabel hängt.
    häng ich den optokoppler ausgang dazu, bleibt er stehen und zählt nix, auch dann nicht wenn impulse kommen sollten
    häng ich den widserstand von int0 gegen vcc tut sich das selbe nichts
    also überhaupt keine zählung

    ich denk mal es liegt an dem optokoppler, wie könnte man den am besten ohne AVR testen, hab leider nur so ein mist messgerät das ströme >30ma nur schlecht anzeigt oder gar nicht, bzw beim diodentest bin ich mir auch nicht sicher

    aber müsste eigentlich mit einer led am ausgang vomoptokoppler funktionieren?! led dann wieder mit47k gegen vcc??

    mfg
    piri

    aja hier code inklusive int0 auswertung am display



    Code:
    $regfile = "m8def.dat"
    $baud = 9600
    $crystal = 8000000
    
    Config Pinb.2 = Input
    Config Portb.1 = Output
    
    
    'LCD-Ausgabe
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    
    Config Lcd = 16 * 2
    
    
    
    
    
    
    
    
    '' Interrupt Int0 config
    
    
    Config Int0 = rising
    On Int0 Irq0
    Enable Interrupts
    Enable Int0
    
    Dim Irq0 As Word
    
    
    
    
    
    Do
    
    Cls
    Cursor Off
    
    Lcd Irq0
    Print
    
    
    
    ''abfrage ob taste gedrückt & Kontrolle ob irq0 noch nicht über 800
    Abfrage:
    
    
    
    
    
    If Pinb.2 = 0 Then
    Gosub Rauf
    End If
    
    
    
    Waitms 100
    
    
    
    
    
    
    If Irq0 > 250 Then
    Gosub Halt
    Else
    
    
    
    End If
    
    
    Loop
    
    
    '' bei Int0 wird irq0 um 1 erhöht
    Irq0:
    Incr Irq0
    
    
    Return
    
    
    
    
    '' wenn 800 impulse ereicht dann motor stopp
    Halt:
    
    Irq0 = 0
    Portb = &B00000000
    Waitms 100
    Return
    
    '' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter
    Rauf:
    Portb = &B11111111
    Waitms 100
    Return

  7. #27
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Kann es sein dass du verschiedene Betriebsspannungen hast, oder nicht die gleiche Masse?
    Verdrahtung:
    Von 5Volt=Vcc-->[=4,7k=]-->Collektor_Lichtschranke ; Emitter an Masse.
    Der Anschluß Collektor_Lichtschranke ist der IRQ-Anschluß, Emitter ist auch an der Controller-Masse.
    Program:
    On Int0 Irq0
    habe ich "nach der Interuptfreigabe schreiben" gemeint.
    Dein IRQ ist bei der Subroutine Halt zu 0 gemacht, dann wird aber ein neuer Durchlauf gemacht, dabei wird festgestellt, dass IRQ< 800 ist also: Motor wieder an. Wirst du nicht wollen
    Bei dem Unterprogram Halt muss dann dein Motor dauerhaft aus bleiben, oder der Motor dreht dann um, oder oder anders....

    Ich würde auch nicht so etwas schreiben
    Config Pinb.2 = Input
    Config Portb.1 = Output
    entweder die Methode oder eine andere, aber dann dabei bleiben, nicht mischen:

    bei Config Pind.1=..... verwende ich Set oder Reset Pind.1, nicht mit binären Zuweisungen von ganzen Ports
    das "mischen" ist einfach zu Fehlerbehaftet.
    Aber ich bin auch kein Profi...nur Bastler.

  8. #28
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144
    ok bin jetzt 2 abende gesessen und hab gemessen und mich im web auf diversen seiten informiert.

    aber irgendwie find ich auf meine anomalie keine lösung.

    diese beschriebene gabellichtschranke arbeitet irgenwie ganz komisch!!!!!

    hängt auf vcc und gnd//
    +5v am ausgang

    wenn man jetzt zwischen die scheiben was durchschiebt ändert sich nix
    +v5 am ausgang

    verdunkel ich aber die umgebung oder schließ die gabellichtschranke in eine box is am ausgang fast
    0V?! am ausgang

    wie is das möglich, falsch beschlaten?! vout & vcc vertauscht?! ?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!

  9. #29
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Laut deinem geposteten Datenblatt gibt es zwei Anschlussmöglichkeiten:
    GP1A73A hat an 1 Gnd 2 Vout 3 VCC
    GP1A73A1 hat an 1 Vcc 2 Vout 3 Gnd
    Haste das kontrollettie?

  10. #30
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144
    hy danke für die schnelle info.

    aber das mit den licht hat mich so verunsichert das ich im web nochmal nach datenblätter gsucht hab. und siehe da es gibt auf eine gp1s73 http://www.ortodoxism.ro/datasheets/Sharp/mXvtxwx.pdf und die verändert natürlich alles.

    es funktioniert!!!
    jedenfalls der timer zählt jetzt nur wenn der motor läuft! (also lichtschranke arbeitret)

    muss glaub ich noch das programm ein bisschen verbessern, es wird teilwiese der ausgang gesetzt ohne den taser gedrückt zu haben, komische sache, werd mal ne doppelte tastenabfrage einbaun (störsicherheit)
    sowie die abfrage für taste runter fehlt auch noch

    werd mich bei weiteren erfolg wieder bei euch melden und posten wie es weitergangen is!


    danke @ll für die hilfe!

    mfg
    piri

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests