Резистивная клавиатура или о том, как подключить кучу кнопок на один аналоговый вход ардуины. Код из этого видео.
плата в формате .lay
номиналы резисторов можно подсмотреть на схеме LCD шилда.
код
byte key(){ int val = analogRead(0); if (val < 50) return 1; else if (val < 150) return 2; else if (val < 350) return 5; else if (val < 500) return 4; else if (val < 800) return 3; else return 0; } // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.print(key()); Serial.print(" "); Serial.println(sensorValue); delay(1); // delay in between reads for stability }