#include <Keypad.h>
// ustawienie klawiatury
const byte ROWS = 4; //cztery rzędy
const byte COLS = 4; //trzy kolumny
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
// podłączenie klawiatury do Arduino
byte rowPins[ROWS] = {8, 7, 6, 5}; //Piny, do których podłączamy wyprowadzenia od rzędów
byte colPins[COLS] = {4, 3, 2, 1}; //Piny, do których podłączamy wyprowadzenia od kolumn
Keypad keypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS );
void setup() {
pinMode(9, OUTPUT); //Dioda zielona
pinMode(10, OUTPUT); //Dioda pomarańczowa1
pinMode(11, OUTPUT); //Dioda czerwona
pinMode(12, OUTPUT); //Dioda pomarańczowa2
pinMode(13, OUTPUT); //Dioda biała
digitalWrite(9, LOW); //Wyłączenie diod
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
void loop()
{
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '1') { //Czekaj na wciśnięcie przycisku
//S1
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH); //czerwona
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '2') { //Czekaj na wciśnięcie przycisku
//S2
digitalWrite(9, HIGH); //zielona
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '3') { //Czekaj na wciśnięcie przycisku
//S3
digitalWrite(9, HIGH); //zielona on
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(500);
digitalWrite(9, LOW); //zielona off
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(500);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '4') { //Czekaj na wciśnięcie przycisku
//S4
digitalWrite(9, LOW);
digitalWrite(10, HIGH); //pomarańczowa1 on
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(500);
digitalWrite(9, LOW);
digitalWrite(10, LOW); //pomarańczowa1 off
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(500);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '5') { //Czekaj na wciśnięcie przycisku
//S5
digitalWrite(9, LOW);
digitalWrite(10, HIGH); //pomarańczowa1
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '6') { //Czekaj na wciśnięcie przycisku
//S10
digitalWrite(9, HIGH); //zielona
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH); //pomarańczowa2
digitalWrite(13, LOW);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '7') { //Czekaj na wciśnięcie przycisku
//S11
digitalWrite(9, HIGH); //zielona on
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH); //pomarańczowa2
digitalWrite(13, LOW);
delay(500);
digitalWrite(9, LOW); //zielona off
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH); //pomarańczowa2
digitalWrite(13, LOW);
delay(500);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '8') { //Czekaj na wciśnięcie przycisku
//S12
digitalWrite(9, LOW);
digitalWrite(10, HIGH); //pomarańczowa1 on
digitalWrite(11, LOW);
digitalWrite(12, HIGH); //pomarańczowa2
digitalWrite(13, LOW);
delay(500);
digitalWrite(9, LOW);
digitalWrite(10, LOW); //pomarańczowa1 off
digitalWrite(11, LOW);
digitalWrite(12, HIGH); //pomarańczowa2
digitalWrite(13, LOW);
delay(500);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '9') { //Czekaj na wciśnięcie przycisku
//S13
digitalWrite(9, LOW);
digitalWrite(10, HIGH); //pomarańczowa1
digitalWrite(11, LOW);
digitalWrite(12, HIGH); //pomarańczowa2
digitalWrite(13, LOW);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (keypad.getKey() != '0') { //Czekaj na wciśnięcie przycisku
//Sz
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH); //czerwona
digitalWrite(12, LOW);
digitalWrite(13, HIGH); //biała on
delay(500);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH); //czerwona
digitalWrite(12, LOW);
digitalWrite(13, LOW); //biała off
delay(500);
}
delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde
while (digitalRead(7) == HIGH) {} //Czekaj na wciśnięcie przycisku
delay(1000);
}