- fchao-Sinus-Wechselrichter AliExpress         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 35 von 35

Thema: Gabellichtschranke ink Inkrementierungsscheibe

  1. #31
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    48
    Beiträge
    408
    Anzeige

    E-Bike
    no show...........

  2. #32
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144
    hab jetzt eigentlich nur noch ein problem & zwar wird der ausgang ab & zu selber gesetzt ohne das ne taste gedrückt wird bzw ein interrupt impuls auslöst?!

    hat wer ne idee

    aktuelle code, hab sogar ne doppelte abfrage drinnen aber komischer weise gehts noch immer nicht.
    hilft da vielleicht der debounce befehl?

    Code:
    $regfile = "m8def.dat"
    $baud = 9600
    $crystal = 8000000
    
    Set Pinb.2
    Config Pinb.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 = Falling
    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
    Waitms 250
    
    If Pinb.2 = 0 Then
    Gosub Rauf
      Else
      Gosub Halt
    End If
    End If
    Waitms 100
    
    
    
    If Irq0 > 6 Then
    Gosub Halt
    Irq0 = 0
    Else
    
    End If
    
     Loop
    
    
    '' bei Int0 wird irq0 um 1 erhöht
    Irq0:
    Incr Irq0
    Return
    
    '' wenn 800 impulse ereicht dann motor stopp
    Halt:
    Portb = &B00000000
    Waitms 100
    
    Return
    
    '' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter
    Rauf:
    Portb = &B11111111
    Return

  3. #33
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Ort
    München
    Beiträge
    111
    Hast Du womöglich irgendeine Störeinstrahlung z.B. von einem Handy oder Schnurlostelefon das in der Nähe liegt?

  4. #34
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2006
    Beiträge
    144
    hy leute

    hab mir gestern den l293d vom c geholt und heute alles mal zusammengestöpselt.
    http://focus.ti.com/lit/ds/symlink/l293d.pdf

    der en eingang vom 293 hängt über 10k auf vcc (5v)
    die motoransteuerung erfolgt über pd5/ pd6

    in das programm hab ich ne zusätzliche abfrage für einen 2. taster eingebaut bzw das programm mit einer "rolo runter" subroutine erweitert

    das ganze arbeitet eigentlich so wie es soll, nur ab & zu schaltet sich der motor ein, hab mal ein handy hingehalten und nen anruf getätigt aber da tut sich nichts, denk mal es liegt eventuell an der verdrahtung, da noch alles ein bisschen kreuz & quer liegt.

    jedenfalls es funktioniert mal im groben so wie ich mir das seit langem gedacht hab.
    taste 1 // motor links
    taste2 // motor rechts

    hier mal das programm
    Code:
    $regfile = "m8def.dat"
    $baud = 9600
    $crystal = 8000000
    
    Set Pinb.2
    Set Pinb.1
    Config Pind.5 = Output
    Config Pind.6 = 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 = Falling
    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
    Waitms 250
    
    If Pinb.2 = 0 Then
    Gosub Runter
      Else
    End If
    End If
    Waitms 100
    
    If Pinb.1 = 0 Then
    Waitms 250
    
    If Pinb.1 = 0 Then
    Gosub Rauf
      Else
    End If
    End If
    Waitms 100
    
    
    
    If Irq0 > 10 Then
    Gosub Halt
    Irq0 = 0
    Else
    
    End If
    
     Loop
    
    
    '' bei Int0 wird irq0 um 1 erhöht
    Irq0:
    Incr Irq0
    Return
    
    '' wenn 800 impulse ereicht dann motor stopp
    Halt:
    Reset Portd.5
    Reset Portd.6
    waitms 100
    Return
    
    '' wenn 800 interruptimpulse noch nicht erreicht sind motor läuft weiter
    Rauf:
    Set Portd.5
    Reset Portd.6
    Waitms 100
    Return
    
    Runter:
    Reset Portd.5
    Set Portd.6
    Waitms 100
    Return
    werd dem nächst den motor aufs fenster montieren und das rolo montieren, muss mir noch ein bisschen gedanken machen über die montierung.

    eventuell werd ich vielleicht doch noch endschalter einbaunen sicherheitshalber, oder vielleicht genügt es ja wenn ich abgeschiermte leitungen verwende um störsignale zu vermeiden.

    jedenfalls ein dank an alle die mir bei der realisierung geholfen haben!!!
    hab in einem monat echt viel über meinen mega8 dazugelernt!!!! )))

    mfg
    piri

    ps. weitere dokumentation folgt!

  5. #35
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Sind das fertige Rolladenmotore oder baust du die Motorengeschichte selbst?
    Käufliche Motoren sind Wechselstrommotore.
    War das dein fertiges Program oben, die Irq-Variable paßt?
    Gibt einiges zu verbessern:
    Also, die Tasterabfrage würde ich mit
    DEBOUNCE Px.y , state , label [ , SUB]
    machen, da der Taster dadurch entprellt wird.
    Dann würde ich den Watchdog benutzen:
    CONFIG WATCHDOG = time
    steht einiges in der Hilfe über die Befehle.
    Gibt immer was zu verbessern

Seite 4 von 4 ErsteErste ... 234

Berechtigungen

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

Labornetzteil AliExpress