- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: 3x IS471 an C-Control

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.11.2003
    Ort
    Leipzig
    Alter
    38
    Beiträge
    578
    Anzeige

    Praxistest und DIY Projekte
    int taste
    kann raus!
    Das ist noch aus einem alten Programm!

    Na klar geht das warten mit Wait!
    Du mußt halt eine logische Verknüpfung (zum Beispiel AND) machen.
    wait HALLO=1 AND LALA=5
    Hier das verbesserte Hauptprogramm:
    define Sensor1 port[1]
    define Led1 port[2]
    define Sensor2 port[3]

    #loop
    If Sensor1=0 THEN GOSUB Taste1
    If Sensor2=0 THEN GOSUB Taste2
    goto loop

    #Taste1
    Aktion für Sensor 1
    Next


    #Taste2
    Aktion für Sensor 2
    Led2 = on
    Dein Programm war ein wenig chaotisch.
    Ich habs ein bischen geordnet.
    Bitte mache die Definitionen in den Kopf des Programms.
    Nicht in den Programmbereich!

    Next ist schon ok.

    MfG ACU
    http://www.roboterbastler.de
    endlich wieder online

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    37
    Beiträge
    378
    Zitat Zitat von RCO
    Hmm, also an port[1] und port[2] sind ja 2 sensoren. Und was ist nun genau der Sinn von der sache, dass port[1]=port[2] wird?
    Achso, mir war noch nciht ganz klar, was jetzt wo dran hängt, wenn ich das jetzt richtig sehe, dann so:

    Sensor1 --> Port1
    Led1 --> Port2
    Sensor2 --> Port3
    ...
    Du verwirrst mich echt, im Beispiel schreibst du:
    define Sensor1 port[1]
    int taste;
    If Sensor1=0 THEN GOSUB Taste1

    #Taste1
    define Led1 port[2]
    Led1 = on
    und dann:

    Hmm, also an port[1] und port[2] sind ja 2 sensoren.
    Ich gehe mal davon aus, dass sie jetzt so angeschlossen sind:

    Sensor1 --> Port1
    Led1 --> Port2
    Sensor2 --> Port3
    ...
    ja, so stimmts... Ich hab mich vertippt, sorry



    Zitat Zitat von RCO
    Dann müsste es natürlich so heißen:

    Hier die ports definieren...

    #loop
    Led1 = Sensor1
    Led2 = Sensor2
    Led3 = Sensor3
    goto loop

    Du brauchst hier keine Unterfunktionen, da sich da nicht lohnt, das bringts nur, wenn da mehr drin steht.
    was meinst du mit unterfunktionen?

    Zitat Zitat von ACU
    int taste
    kann raus!
    Das ist noch aus einem alten Programm!

    Na klar geht das warten mit Wait!
    Du musst halt eine logische Verknüpfung (zum Beispiel AND) machen
    Also müsste dein Programm so funktionieren. Und anstatt den LED=on könnte ich dann später ein motorenbefehl einsetzen, richtig so?


    Nur eins versteh ich noch nicht ganz

    Zitat Zitat von RCO
    Das Problem ist, dass die CC soweit ich weiß solange bei einer bedingung hängatt, bis sie erfüllt ist, du kannst also nur einen port überwachen, wenn an einem anderen port was passiert, merkt die CC nix davon.
    wait sensor=0 wartet halt bis der sensor = 0 ist.
    Wenn ich das Proggi so machen würde, wie es mir ACU vorgeschlagen hat, wäre das ja kein problem, da ich keinen Wait befehl habe.

    Aber kann mir jemand noch sagen, was für eine Zeili ich noch einbringen muss, damit die Sensoren nur alle 2 Sekunden abgerufen werden??

    geht das mit einem einfachen Pause 200 befehl?


    Merci


  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.11.2003
    Ort
    Leipzig
    Alter
    38
    Beiträge
    578
    Mit wait kannst dus auch machen.
    Unterprogramme sind diese Dinge
    #Programm
    BLABLABLA
    Next

    Später kannst du in diese Unterprogramme auch größere Anweisungsblöcke einfügen (motorsteuerung, etc.).


    Im Heft steht:
    Der Pause Befehl hält die Programmausführung für Parameter*20Milisekunden an.

    Damit du auch mal was machst:
    Was mußt du eingeben?
    http://www.roboterbastler.de
    endlich wieder online

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    geht das mit einem einfachen Pause 200 befehl?
    Ja im Grunde schon, Pause 200 wäre aber 4 sek. oder hast du übertaktet?

    Wenn ich das Proggi so machen würde, wie es mir ACU vorgeschlagen hat, wäre das ja kein problem, da ich keinen Wait befehl habe.
    Genau, obwohl es mit "wait x and wait y" wohl auch geht.

    Also müsste dein Programm so funktionieren. Und anstatt den LED=on könnte ich dann später ein motorenbefehl einsetzen, richtig so?
    Was du außen dranhängst spielt für das Programm keine Rolle, aber du darfst den motor natürlich nicht direkt dran schalten.

    was meinst du mit unterfunktionen?
    na GOSUB
    Sub --> unter

    Nimm einfach mal ACUs code

    MFG Moritz

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    37
    Beiträge
    378
    Zitat Zitat von ACU
    Mit wait kannst dus auch machen.
    Unterprogramme sind diese Dinge
    #Programm
    BLABLABLA
    Next

    Später kannst du in diese Unterprogramme auch größere Anweisungsblöcke einfügen (motorsteuerung, etc.).


    Im Heft steht:
    Der Pause Befehl hält die Programmausführung für Parameter*20Milisekunden an.

    Damit du auch mal was machst:
    Was musst du eingeben?
    2000 Millisec = 2 Sec
    2000/20 = 100

    -> Pause 100



    edit: Heisst sensor1 = 0, dass der sensor einen Gegenstand erkannt hat? 1 wär für mich etwas logischer^^

    Noch was: Brauch ich nun den Wait befehl nicht?

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Ich kenn mich mit dem IS471 nicht aus, es kann auch sein, dass es davon abhängt, wie man ihn anschließt. Grundsätzlich kann man aber nicht sagen, dass "=1" immer etwas erkannt heißt, das hängt echt vom Sensor und Anschluss ab.

    Pause 100 ergibt eine 2 sekündige Pause genau.

    MFG Moritz

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.11.2003
    Ort
    Leipzig
    Alter
    38
    Beiträge
    578
    Ja du hast Recht, dass mit dem 0 oder 1 ist immer etwas tückisch.
    Im Zweifellsfall heißt es ausprobieren.

    Ich hatte zum Beispiel mal einen Schalter an einem Digiport und sobald ich geschaltet habe ist er von 1 auf 0 gesprungen.
    Ist einige Zeit vergangen, bis ich darauf gekommen bin.


    ACU
    http://www.roboterbastler.de
    endlich wieder online

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    37
    Beiträge
    378
    Ok, ich habs nun Theoretisch glaubs begriffen, werde es heute abend wohl noch praktisch ausprobieren. Danke Erstmal für eure Hilfe!!!

    Nur eine kleine frage hät ich noch, bezüglich dem wait befehl:
    Zitat Zitat von RCO
    Wenn ich das Proggi so machen würde, wie es mir ACU vorgeschlagen hat, wäre das ja kein problem, da ich keinen Wait befehl habe.
    Genau, obwohl es mit "wait x and wait y" wohl auch geht.
    Bei "wait x and wait y" wartet der Controller ja auf 2 ereignisse, aber auf welche?

    Also, würde das fertige Proggi so aussehen, mit jeweils 2 Sec Pause?:

    define Sensor1 port[1]
    define Led1 port[2]
    define Sensor2 port[3]
    define Led2 port[4]

    #loop
    If Sensor1=0 THEN GOSUB Taste1
    If Sensor2=0 THEN GOSUB Taste2
    goto loop

    #Taste1
    Led1=on

    Next
    (brauchts dieses next)?

    #Taste2
    Led2=on

    pause 100

    goto loop


    Ach ja, ihr fragt euch vielleicht, was ich mit diesen 2 Sec bezwecken will:
    Es ist so, das die Control LED meiner IR schaltung, bei einer gewissen distanz zur Wand flakert, und ich könnte mir vorstellen, das der Controller dadurch iritiert wird. MIt diesen 2 sec gedenke ich dieses Problem zu umgehen. Clever was?? 8-
    Zitat Zitat von RCO
    uote="RCO"]
    Was du außen dranhängst spielt für das Programm keine Rolle, aber du darfst den motor natürlich nicht direkt dran schalten.
    ja, weiss ich, ich hab den RN Motor

    Serge

  9. #19
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.11.2003
    Ort
    Leipzig
    Alter
    38
    Beiträge
    578
    Nein der wait Syntax ist anders.
    Er lautet:
    wait True
    das bedeutet er wartet so lange, bis die wait Bedingung erfüllt ist.
    Wenn du eine Mehrfachverknüpfung machen willst, dann so:
    wait A=5 AND B=3
    Dann wartet er solange, bis A5 UND B3 ist.
    Wenn du nur wait A machst, dann wartet er darauf, dass A 1 (TRUE,Wahr) wird.


    MfG ACU
    http://www.roboterbastler.de
    endlich wieder online

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests