/* * Computer Switchboard * * Because interfacing with computers should be fun * and a keyboard is not enough. * * Let's turn a computer into an airplane (interface wise). * */ /* DigitalReadSerial Reads a digital input on pin 2, prints the result to the serial monitor This example code is in the public domain. */ // digital pin 2 has a pushbutton attached to it. Give it a name: int pushButton = 9; // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // make the pushbutton's pin an input: // I was somewhat confused about this. I thought maybe it would be an output // to ground, through the resistor, and it would only conduct when grounded, but // using the input pullup works. I'm not sure if you can detect when an output grounds or is conducting... pinMode(pushButton, INPUT_PULLUP); //https://stackoverflow.com/questions/6160963/how-can-i-digitalread-a-pin-that-is-in-pinmode-output //https://forum.arduino.cc/index.php?topic=183977.0 //This approach doesn't work as you can't read a floating pin reliably //so don't do it. It always reads zero, or will read noise. //pinMode(pushButton, OUTPUT); //digitalWrite(3,HIGH); //interestingly, you could use a shunt resistor... but more complex //https://arduino.stackexchange.com/questions/14647/how-can-i-detect-a-disconnected-pin delay(100); } // the loop routine runs over and over again forever: void loop() { // easy way // read the input pin: // int buttonState = digitalRead(pushButton); // print out the state of the button: // Serial.println(buttonState); delay(10); // delay in between reads for stability int resultb = 0; resultb = PINB; Serial.println(resultb,BIN); //noisy, but reads 0 when low. // Serial.println(bitRead(PORTB,1));// PORTB is for high or low // PIN is for reading input. PORTB doesn't work here. // https://arduino.stackexchange.com/questions/14647/how-can-i-detect-a-disconnected-pin // not sure what that link is on about, regarding port usage. delay(100); }