Jump to content

Recommended Posts

Posted

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

Posted

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?!

 

 

Posted

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

 

 

 

 

 

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...