-         

Ergebnis 1 bis 3 von 3

Thema: RS232, Waitkey und Relais schalten ?!

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576

    RS232, Waitkey und Relais schalten ?!

    Anzeige

    Hallo Leute

    Irgendiwe stehe ich derzeit am Schlauch

    Ich habe zwei Mega8

    Beim ersten habe ich einen Taster.
    Wenn ich den Taster drücke, sendet der eine "1" per RS232 an den zweiten Mega8.
    Der soll dann so lange das Relais schalten, solange ich beim ersten Mega8 die Taste drücke.

    Im Prinzip funktioniert es ja, aber ich kriege es nicht hin, dass das Signal beim Relais konstant auf High bleibt.
    Es kommt mehr ein Pulssignal zum Relais und das zieht so natürlich nicht an.

    Der Code schaut so aus:
    Code:
    Do
    
    A = Waitkey()                                              
    
      If A = 49 Then
       Portb.0 = 1
       else
         Portb = 0
      End If
    
    Loop
    Kriege da immer nur Pulse raus!



    Habs dann auch so probiert:

    Code:
    Do
    A = Waitkey()                                               'Warte auf Zeichen von 
    Starting:
      If A = 49 Then
       Portb.0 = 1
        A = Inkey()
       Goto Starting
      End If
    Portb = 0
    Loop
    oder so:
    Code:
    Do
    Starting:
    A = Waitkey()                                               'Warte auf Zeichen von 
      If A = 49 Then
       Portb.0 = 1
         Goto Starting
      End If
    Portb = 0
    Loop
    was mache ich falsch ?!

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    42
    Beiträge
    849
    Servus Roberto!

    Du machst da einen Denkfehler, die Byteinfortmation kommt ja nur einen Moment lang. Entweder du spendierts an und aus zwei Bytewerte oder du machst es mit einem ständigen Bytewert der in bestimmten Abständen wiederholt udn damit das Relais wie eine Art Monoflop retriggert. In der ersten Variante könntest du es wie folgt realisieren:

    Code:
    Do 
      A = Waitkey()                                              
      If A = 49 Then Portb.0 = 1 
      If A = 32 Then Portb.0 = 0
    Loop
    Dann mußt du natürlich auf der Senderseite auch etwas nachtragen:

    Bei gedrückter Taste den Wert 49 senden udn bei losgelassener Taste eben die 32. Dann ist es speichernd programmiert und nicht wie von dir als Puls.

    Grüße Wolfgang

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo Wolfgang


    Danke für die Schnelle Antwort


    Du machst da einen Denkfehler, die Byteinfortmation kommt ja nur einen Moment lang.
    ahaaa, Du meinst, dass inzwischen, kurz, kein Zeichen da ist und das Relais inzwischen schon wieder ausschaltet..

    Deine Idee werde ich morgen gleich probieren.
    Klingt gut


    Gute Nacht noch und Danke

Berechtigungen

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