Search code examples
arduinoserial-portarduino-c++

How to read switches via serial port C++?


I have an arduino nano. I want to connect MX Cherry switches and detect pressing throught the serial port. What pins should i use on arduino and what code should be uploaded to the plate?

I understand that i have to power the switches so there has to be 5v pin and input pin. But i'm new to electronics so i didn't manage to figure it out.

//that's just basic code for sending a number every second via 13 pin
int i=0;
void setup() {
  Serial.begin(57600);
  pinMode(13, OUTPUT);
}
void loop() {
  i = i + 1;
  Serial.println(i);
  delay(1000);
}

Basically, i need a way of sending '1' if button is pressed and '0' if it's not.


Solution

  • Perhaps I've misunderstood your question. Why not just read the button and send a '1' if pressed and '0' if not?

    void loop(){
      int buttonState = digitalRead(buttonPin);
    
      // Assumes active low button
      if (buttonState == LOW){
         Serial.print('1');
      } 
      else {
         Serial.print('0');
      }
      delay(500);
    }
    

    Of course you probably want to add some sort of timing to that so it doesn't send thousands of 0's and 1's per second. I added a delay, but that might not be the best answer for the application you have (and chose not to share). I've also assumed that your button is wired active-LOW with a pull-up since you didn't share that either.