Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ADKeyboard Module
- //Developed by DFRobot.com
- //Last modified 30/11/2011
- //Version 1.0
- //Modifié par Ollivier JULLIEN
- //Modifié le 06/08/20
- //==========================
- // Anti moustique
- //==========================
- const int valBout[5] = { 600, 650, 700, 800, 900 };
- unsigned int frequence[7] = { 22000, 23500, 27500, 31000, 39500, 50000, 65000 };
- int jour[7] = { 4, 5, 6, 7, 8, 9, 10 };
- int numFrequ = 0;
- int nombreCle = 5;
- int boutPress;
- int cle = -1;
- int ancienneCle = -1;
- int pinBuzzer = 3;
- int pinRouge = 2;
- void setup()
- {
- pinMode(13, OUTPUT); //we'll use the debug LED to output a heartbeat
- pinMode(pinBuzzer, OUTPUT);
- pinMode(pinRouge, OUTPUT);
- for (int i = 4 ; i <= 10 ; i++) {
- pinMode(i, OUTPUT);
- }
- Serial.begin(9600); // 9600 bps
- digitalWrite (jour[numFrequ], true);
- digitalWrite (pinRouge, true);
- }
- void loop()
- {
- boutPress = analogRead(0); // read the value from the sensor
- digitalWrite(13, LOW);
- cle = recupCle(boutPress); // convert into key press
- if (cle != ancienneCle) // if keypress is detected
- {
- delay(50); // wait for debounce time
- boutPress = analogRead(0); // read the value from the sensor
- cle = recupCle(boutPress); // convert into key press
- if (cle != ancienneCle)
- {
- ancienneCle = cle;
- if (cle >= 0) {
- digitalWrite(13, HIGH);
- switch (cle)
- {
- case 0://Serial.println("S1 OK");
- tone(pinBuzzer, frequence[numFrequ]);
- digitalWrite (pinRouge, false);
- for (int i = 4; i <= 10; i++) {
- digitalWrite (i, false);
- }
- break;
- case 1://Serial.println("S2 OK");
- noTone(pinBuzzer);
- digitalWrite (jour[numFrequ], true);
- digitalWrite (pinRouge, true);
- break;
- case 2: Serial.println("S3 OK");
- break;
- case 3: Serial.println("S4 OK");
- break;
- case 4://Serial.println("S5 OK");
- if (numFrequ < 6) {
- numFrequ += 1;
- noTone(pinBuzzer);
- digitalWrite (pinRouge, true);
- for (int i = 4; i <= 10; i++) {
- digitalWrite (i, false);
- }
- digitalWrite (jour[numFrequ], true);
- } else {
- numFrequ = 0;
- noTone(pinBuzzer);
- digitalWrite (pinRouge, true);
- for (int i = 4; i <= 10; i++) {
- digitalWrite (i, false);
- }
- digitalWrite (jour[numFrequ], true);
- }
- break;
- }
- }
- }
- }
- delay(100);
- }
- // Convert ADC value to key number
- int recupCle(unsigned int input)
- {
- int k;
- for (k = 0; k < nombreCle; k++)
- {
- if (input < valBout[k])
- {
- return k;
- }
- }
- if (k >= nombreCle)k = -1; // No valid key pressed
- return k;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement