Jump to content

IO-4 Bricklet . Eingange und Ausgänge gleichzeitig ?!?!


Recommended Posts

Hallo TinkerUnity!

 

Besteht die Möglichkeit das IO-4 Bricklet so zu nutzen das zwei Pins als EINGÄNGE und 1 (oder auch zwei) Pins als AUSGÄNGE genutzt werden können?!

 

Ich nutze PIN 0 und 1 als Eingänge und würde gerne PIN 3 bzw. 4 als Ausgang nutzen..

 

Ich programmiere in C#.

 

Im Moment hab ich nur io4.SetInterrupt(3 << 0); um den Interrupt zu aktivieren für die PINs 0 und 1.

 

Würde mich über Antworten freuen.

 

Vielen Dank im Voraus

 

Grüße

 

Artur

Link zu diesem Kommentar
Share on other sites

ich muss noch dazu sagen das an den PINs 0 und 1 zwei Endschalter hängen. Ich überprüfe die Values und den Status des Motors. Funktionieren tut dies soweit ganz gut .. nur wenn ich den Pin 2 des IO-4 als OUTPUT setze dann ändert sich ja mein valueBinary.. =(

 

        private void InterruptCB(BrickletIO4 sender, byte interruptMask, byte valueMask)
        {
            if (io4 != null)
            {
                string interruptBinary = System.Convert.ToString(interruptMask, 2);
                string valueBinary = System.Convert.ToString(valueMask, 2);

                SetTextBoxRef0(interruptBinary);
                SetTextBoxRef1(valueBinary);

                if ( ((valueBinary == "1110") || (valueBinary == "1100")) && ((y_new_state == "BESCHLEUNIGUNG")||(y_new_state == "FAHREN")) )//Endschalter (Y-Achse)
                {
                    Y_Achse.Stop();
                    y_stop_nach_endschalter = true;                    
                }

                if (((valueBinary == "1101") || (valueBinary == "1100")) && ((x_new_state == "BESCHLEUNIGUNG") || (x_new_state == "FAHREN"))) //Endschalter (X-Achse)
                {
                    X_Achse.Stop();
                    x_stop_nach_endschalter = true;                    
                }

                if (x_stop_nach_endschalter == true && y_stop_nach_endschalter == true)
                {
                    Interrupt();
                }
                
            }
        }

 

Ich würde aber gerne diese Funktion behalten und nur einen Pin als Ausgang nutzen.. der aber komplett unabhängig vom anderen sein soll..

 

oder soll ich lieber einen zweiten io-4 anbringen und den dann für meinen Ausgang nutzen?!

 

 

Link zu diesem Kommentar
Share on other sites

hallo MasT3r-A,

 

Ja es geht.

 

Vorab ich mach alles in Java kann dir daher nicht versprechen das es auch in C# genau so geht.

 

deine abfragen: "(valueBinary == "1110")"

Fragen immer alle 4 Pins gleichzeitig ab. diese müssen dann genau das Ergebnis liefern was du abfragst.

 

besser ist es jeden Pin einzeln abzufragen, also jede stelle alleine.

 

Folgende Lösung habe ich dafür:

 

"if ((i&1)==0)"

"if ((i&1)==1)"

 

Hier frage ich Pin 1 auf den zustand 0 und 1 ab.

 

 

ich hoffe das hilft dir weiter.

Gruß Masder

 

 

 

 

 

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...