1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
| #include <Wire.h>
#define Slave 0x01
#include <LiquidCrystal.h>
int rs = 13;
int en = 12;
int d4 = 7;
int d5 = 6;
int d6 = 5;
int d7 = 4;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#define ligne_0 0
#define ligne_1 1
#define ligne_2 2
#define ligne_3 3
#define colonne_0 8
#define colonne_1 9
#define colonne_2 10
#define colonne_3 11
int Na;
int Nb;
int Nc;
void setup() {
lcd.begin(16, 2);
lcd.cursor();
pinMode(ligne_0, OUTPUT);
pinMode(ligne_1, OUTPUT);
pinMode(ligne_2, OUTPUT);
pinMode(ligne_3, OUTPUT);
pinMode(colonne_0, INPUT_PULLUP);
pinMode(colonne_1, INPUT_PULLUP);
pinMode(colonne_2, INPUT_PULLUP);
pinMode(colonne_3, INPUT_PULLUP);
Wire.begin();
}
void loop() {
lcd.print("Que voulez vous");
lcd.setCursor(0 ,1);
lcd.print("faire ?");
int menu = oui_non();
if(menu == 'A') {
lcd.clear();
lcd.print("every things OK");
Wire.beginTransmission(Slave);
Wire.write(1);
Wire.endTransmission();
Wire.requestFrom(Slave, 1);
while(1 < Wire.available()) {
Na = Wire.read();
}
Na = Wire.read();
Wire.requestFrom(Slave, 1);
while(1 < Wire.available()) {
Nb = Wire.read();
}
Nb = Wire.read();
Wire.requestFrom(Slave, 1);
while(1 < Wire.available()) {
Nc = Wire.read();
}
Nc = Wire.read();
Wire.beginTransmission(Slave);
Wire.write(5);
Wire.endTransmission();
lcd.clear();
lcd.print(Na);
delay(2000);
lcd.setCursor(0,1);
lcd.print(Nb);
delay(2000);
lcd.setCursor(0,1);
lcd.print(Nc);
delay(2000);
lcd.clear();
}
}
char oui_non() {
char bouton = NULL;
do {
bouton = bouton_presse();
} while(bouton == NULL);
delay(100);
while(bouton_presse() != NULL);
delay(100);
return bouton;
lcd.clear();
}
char bouton_presse() {
const char boutons[4][4] = {
'A','B','C','D',
'3','6','9','#',
'2','5','8','0',
'1','4','7','*',
};
for(int ligne=0;ligne<4;ligne++) {
digitalWrite(ligne_0, ligne == 0 ? LOW : HIGH);
digitalWrite(ligne_1, ligne == 1 ? LOW : HIGH);
digitalWrite(ligne_2, ligne == 2 ? LOW : HIGH);
digitalWrite(ligne_3, ligne == 3 ? LOW : HIGH);
int etat_colonne_0 = digitalRead(colonne_0);
int etat_colonne_1 = digitalRead(colonne_1);
int etat_colonne_2 = digitalRead(colonne_2);
int etat_colonne_3 = digitalRead(colonne_3);
if(etat_colonne_0 == LOW) {
return boutons[ligne][0];
}
if(etat_colonne_1 == LOW) {
return boutons[ligne][1];
}
if(etat_colonne_2 == LOW) {
return boutons[ligne][2];
}
if(etat_colonne_3 == LOW) {
return boutons[ligne][3];
}
}
return NULL;
} |
Partager