Last Updated or created 2023-01-17
See also
Potmeter needs some tweaking
New code
#include <Keypad.h> int buzzer=9; int lastsensorread; int prevkey; int push=450; int pull=550; const byte ROWS = 8; //four rows const byte COLS = 3; //three columns char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'#','0','*'}, {'A','B','C'}, {'D','E','F'}, {'G','H','I'}, {'J','K','L'} }; byte rowPins[ROWS] = {5, 6, 7, 8, 10, 11, 12, 13}; //connect to the row pinouts of the keypad byte colPins[COLS] = {2, 3, 4 }; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup(){ Serial.begin(9600); pinMode(buzzer,OUTPUT); } void loop(){ char key = keypad.getKey(); // if (key == NO_KEY){ // key = prevkey; // } // if (key != NO_KEY){ int freq = 0; int sensorValue = analogRead(A0); //sensorValue = ((sensorValue+4)/5)*5; if (sensorValue > push && sensorValue < pull ) { // Serial.println("No pull or push"); noTone(buzzer); } else if (key == NO_KEY){ switch (keypad.getState()){ case RELEASED: noTone(buzzer); } } else { if (key == '1' && sensorValue < push ) { tone(buzzer,415); }; // G push if (key == '1' && sensorValue > pull ) { tone(buzzer,466); }; // A pull if (key == '2' && sensorValue < push ) { tone(buzzer,392); }; // G push if (key == '2' && sensorValue > pull ) { tone(buzzer,440); }; // A pull if (key == '3' && sensorValue < push ) { tone(buzzer,587); }; // G push if (key == '3' && sensorValue > pull ) { tone(buzzer,659); }; // A pull if (key == '4' && sensorValue < push ) { tone(buzzer,440); }; if (key == '4' && sensorValue > pull ) { tone(buzzer,392); }; if (key == '5' && sensorValue < push ) { tone(buzzer,329); }; if (key == '5' && sensorValue > pull ) { tone(buzzer,349); }; if (key == '6' && sensorValue < push ) { tone(buzzer,493); }; if (key == '6' && sensorValue > pull ) { tone(buzzer,523); }; //8l f/e if (key == '8' && sensorValue < push ) { tone(buzzer,261); }; if (key == '8' && sensorValue > pull ) { tone(buzzer,587); }; if (key == 'A' && sensorValue < push ) { tone(buzzer,783); }; if (key == 'A' && sensorValue > pull ) { tone(buzzer,739); }; if (key == 'B' && sensorValue < push ) { tone(buzzer,523); }; if (key == 'B' && sensorValue > pull ) { tone(buzzer,493); }; if (key == 'D' && sensorValue < push ) { tone(buzzer,987); }; if (key == 'D' && sensorValue > pull ) { tone(buzzer,880); }; if (key == 'E' && sensorValue < push ) { tone(buzzer,659); }; if (key == 'E' && sensorValue > pull ) { tone(buzzer,587); }; if (key == 'H' && sensorValue < push ) { tone(buzzer,783); }; if (key == 'H' && sensorValue > pull ) { tone(buzzer,698); }; //tone(buzzer,freq); } Serial.println(sensorValue); Serial.println(key); Serial.println(freq); // lastsensorread = sensorValue; prevkey = key; // } }