• Products
    • Isadora
    • Get It
    • ADD-ONS
    • IzzyCast
    • Get It
  • Forum
  • Help
  • Werkstatt
  • Newsletter
  • Impressum
  • Dsgvo
  • Press
  • Isadora
  • Get It
  • ADD-ONS
  • IzzyCast
  • Get It
  • Press
  • Dsgvo
  • Impressum

Navigation

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags

    Arduino multi. bouton

    Interfacing
    6
    9
    2930
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      djoul123 last edited by

      Bonjours,

      J'aimerais utiliser un Arduino pour changer mes scenes sur Isadora, mais j'ai un soucis dans la communication entre Arduino et Isadora, les premières valeur des boutons fonctionne mais après 5, 6 cela ne va plus!

      Arduino

      int analogPin1 = A0;
      int analogPin2 = A1;
      int analogPin3 = A2;
      int analogPin4 = A3;
      int analogPin5 = A4;
      int analogPin6 = A5;
      int analogPin7 = A6;
      int analogPin8 = A7;
      int ldrVal = 0; 
      int threshold = 800; 
      void setup() 
      { 
        Serial.begin(9600); 
        pinMode(2, INPUT);
        pinMode(3, INPUT);
        pinMode(4, INPUT);
        pinMode(5, INPUT);
        pinMode(6, INPUT);
        pinMode(7, INPUT);
        pinMode(8, INPUT);
        pinMode(9, INPUT);
        pinMode(10, INPUT);
        pinMode(11, INPUT);
        pinMode(12, INPUT);
        pinMode(13, INPUT);
      } 
      void loop() { 
        //Analog 0 (Num 4)
        ldrVal = analogRead(analogPin1); 
        if ( ldrVal < threshold ) 
        { 
        Serial.println ("4"); 
          delay(100);
        }
          //Analog 1 (Num 7)
          ldrVal = analogRead(analogPin2); 
        if ( ldrVal < threshold ) 
        { 
        Serial.println ("7"); 
          delay(100);
        }
        //Analog 2 (Num *)
        ldrVal = analogRead(analogPin3); 
        if ( ldrVal < threshold ) 
        { 
        Serial.println ("10"); 
          delay(100);
        }
          //Analog 3  (Num 5)
          ldrVal = analogRead(analogPin4); 
        if ( ldrVal < threshold ) 
        { 
        Serial.println ("5"); 
          delay(100);
        }
        //Analog 4 (Num 2)
        ldrVal = analogRead(analogPin5); 
        if ( ldrVal < threshold ) 
        { 
        Serial.println ("2"); 
          delay(100);
        }
          //Analog 5 (Num 0)
          ldrVal = analogRead(analogPin6); 
        if ( ldrVal < threshold ) 
        { 
        Serial.println ("11"); 
          delay(100);
        }
        //Analog 6 (Num 8)
        ldrVal = analogRead(analogPin7); 
        if ( ldrVal < threshold ) 
        { 
        Serial.println ("8"); 
          delay(100);
        }
          //Analog 7 (Num #)
          ldrVal = analogRead(analogPin8); 
        if ( ldrVal < threshold ) 
        { 
        Serial.println ("12"); 
          delay(100);
        }
      
      //Digital 2 (Telephone)
      

      int buttonState2 = digitalRead(2);

      if (buttonState2 == LOW)
      {
      Serial.println ("20");
      delay(100);
      }
      //Digital 3 (Touche A)
      int buttonState3 = digitalRead(3);

      if (buttonState3 == LOW)
      {
      Serial.println ("18");
      delay(100);
      }
      //Digital 4 (Touche Service)
      int buttonState4 = digitalRead(4);

      if (buttonState4 == LOW)
      {
      Serial.println ("16");
      delay(100);
      }
      //Digital 5 (Touche B)
      int buttonState5 = digitalRead(5);

      if (buttonState5 == LOW)
      {
      Serial.println ("19");
      delay(100);
      }
      //Digital 6 (Touche Belgacom)
      int buttonState6 = digitalRead(6);

      if (buttonState6 == LOW)
      {
      Serial.println ("15");
      delay(100);
      }
      //Digital 7 (Touche Proton)
      int buttonState7 = digitalRead(7);

      if (buttonState7 == LOW)
      {
      Serial.println ("17");
      delay(100);
      }
      //Digital 8 (Home)
      int buttonState8 = digitalRead(8);

      if (buttonState8 == LOW)
      {
      Serial.println ("13");
      delay(100);
      }
      //Digital 9 (Num 9)
      int buttonState9 = digitalRead(9);

      if (buttonState9 == LOW)
      {
      Serial.println ("9");
      delay(100);
      }
      //Digital 10 (Num 1)
      int buttonState10 = digitalRead(10);

      if (buttonState10 == LOW)
      {
      Serial.println ("1");
      delay(100);
      }
      //Digital 11 (Num 6)
      int buttonState11 = digitalRead(11);

      if (buttonState11 == LOW)
      {
      Serial.println ("6");
      delay(100);
      }
      //Digital 12 (Num 3)
      int buttonState12 = digitalRead(12);

      if (buttonState12 == LOW)
      {
      Serial.println ("3");
      delay(100);
      }
      //Digital 13 (Touche STOP)
      int buttonState13 = digitalRead(13);

      if (buttonState13 == LOW)
      {
      Serial.println ("14");
      delay(100);
      }
      }

      Isadora "Serial In Watcher - Binary"


      "1"
      value : integer = 4 digits

      Voila si quelque peut m'aider.

      Merci.

      Woland m_theater 3 Replies Last reply Reply Quote 0
      • GertjanB
        GertjanB Beta Platinum last edited by

        Hi,

        Is it not working after 5,6 messages, or are buttons 5,6 and higher not working?

        If you open the monitor window, is there serial data coming in?

        www.gertjanbiasino.be

        1 Reply Last reply Reply Quote 1
        • Woland
          Woland Tech Staff @djoul123 last edited by

          @djoul123 said:

          Bonjours,

          J'aimerais utiliser un Arduino pour changer mes scenes sur Isadora, mais j'ai un soucis dans la communication entre Arduino et Isadora, les premières valeur des boutons fonctionne mais après 5, 6 cela ne va plus!

          Voila si quelque peut m'aider.

          Merci.

           Rough translation for my own benefit (and anyone else's): 

          Hello,

          I would like to use an Arduino to change my scenes on Isadora, but I have a problem in the communication between Arduino and Isadora, the first value of the buttons works but after 5, 6 it does not go anymore!

          Voila if any can help me.

          Thank you.

          TroikaTronix Technical Support
          New Support Ticket: https://support.troikatronix.com/support/tickets/new
          Support Policy: https://support.troikatronix.com/support/solutions/articles/13000064762
          Add-Ons: https://troikatronix.com/add-ons/ & https://troikatronix.com/add-ons/?u=woland
          Professional Services: https://support.troikatronix.com/support/solutions/articles/13000109444

          | Isadora Version: all of them | Mac Pro (Late 2013), macOS 10.14.6, 3.5GHz 6-core, 1TB SSD, 64GB RAM, Dual AMD FirePro D700s |

          1 Reply Last reply Reply Quote 0
          • Maxime
            Maxime last edited by Maxime

            Hey @djoul123 ,

            c'est mieux de poster en anglais sur le forum pour avoir plus de réponses et que ce soit plus facile pour tout le monde de comprendre ;)

            You're reassigning your ldrVal integer each time, maybe that could cause a problem, it would be better to create an array of integer to handle that.

            I haven't be using arduino for some time, so beware of syntax errors from my side :)

            int ldrVal[8];
            int buttonState[11]; // it was working how you did, but easier like that and you should declare everything all your variable at the beginning
            void loop(){
            for(int i = 0; i < 12; i++){
            if( ldrVal[i]> threshold){
            Serial.println(String(i)); //since you seem to want to send strings...
            delay(100);
            }

            You can do the same with buttonState to make the code easier to read

            MBP 15" end 2013 / i7 2,3Ghz /NVIDIA GT 750M 2048Mo / 16Go RAM / OS 10.10.3
            Razer Blade 15" 2018 /i7/ GTX1070/ 16Go RAM

            1 Reply Last reply Reply Quote 0
            • _grzegorz_
              _grzegorz_ last edited by

              Hi

              Do you use any pull up/down resistors for buttons, how are they wired? Which Arduino board are you using?

              1 Reply Last reply Reply Quote 0
              • m_theater
                m_theater @djoul123 last edited by

                @djoul123

                what specific arduino board do you use ? analog pins could be used as digital inputs, in your sketch you use 20 inputs.

                in isadora you use a filter inside of your serial in watcher // the 4 byte length message need to have a "1" to start with,

                i think it is better to use a text based serial in watcher since you send a carriage return with each println already.

                attached you will find an izzy file

                best clemens

                arduino_multi_buttons.izz

                avk4.net

                D 1 Reply Last reply Reply Quote 0
                • m_theater
                  m_theater @djoul123 last edited by

                  @djoul123

                  in your arduino code you cycle through your 20 pin readings always with a 0,1 s delay

                  that means you have to wait at least 2 seconds till the program will be again asking for the status of the button you just pushed.

                  I would recommend that you have a look how a keyboard matrix is setup, there should be plenty of infos on the arduino forum. That way you have a snappy arduino code to interact with isadora.

                  avk4.net

                  1 Reply Last reply Reply Quote 0
                  • D
                    djoul123 @m_theater last edited by

                    @m_theater How can I program a text?

                    1 Reply Last reply Reply Quote 0
                    • D
                      djoul123 last edited by

                      I use resistors on the buttons, and I use a card arduino uno!

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post