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
| /* COmmentaires
Le principe est d'envoyer par l'ordi un caractère selon
la commande (majuscule pour allumer)
Si le caractère est indicateur, la carte envoie la commande
au boitier pour retour du poids.
Serial est l'ordi, serial1 l'accessoire
*/
int indicateur = '?';
const int s1 =39;
const int s2 =41;
const int s3 =43;
const int s4 =45;
const int s5 =47;
const int s6 =49;
const int s7 =51;
const int s8 =53;
const int alim=37;
void setup() {
pinMode (20,OUTPUT);
pinMode (21,OUTPUT);
digitalWrite(21,HIGH);
digitalWrite(20, LOW);
Serial.begin(9600);
Serial1.begin(9600);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(s4, OUTPUT);
pinMode(s5, OUTPUT);
pinMode(s6, OUTPUT);
pinMode(s7, OUTPUT);
pinMode(s8, OUTPUT);
pinMode(alim, OUTPUT);
digitalWrite(alim, HIGH);
digitalWrite(s1, HIGH);
digitalWrite(s2, HIGH);
digitalWrite(s3, HIGH);
digitalWrite(s4, HIGH);
digitalWrite(s5, HIGH);
digitalWrite(s6, HIGH);
digitalWrite(s7, HIGH);
digitalWrite(s8, HIGH);
}
void loop() {
// lit 1 char de lordi :si egale indicateur, aller à pesee
if (Serial.available()) {
int inByte = Serial.read();
if (inByte == indicateur) {pesee();}
else {action(inByte);}
}
// lit du port 1, envoie du port 0
if (Serial1.available()) {
Serial.write(Serial1.read()); }
}//Fin void loop
void pesee(){
Serial1.print("READ\r");
}
void action (int code){
Serial.write (code);//débogage
switch (code) {
case 'A' :digitalWrite(s1, LOW); break;
case 'a' :digitalWrite(s1, HIGH); break;
case 'B' :digitalWrite(s2, LOW); break;
case 'b' :digitalWrite(s2, HIGH); break;
case 'C' :digitalWrite(s3, LOW); break;
case 'c' :digitalWrite(s3, HIGH); break;
case 'D' :digitalWrite(s4, LOW); break;
case 'd' :digitalWrite(s4, HIGH); break;
case 'E' :digitalWrite(s5, LOW); break;
case 'e' :digitalWrite(s5, HIGH); break;
case 'F' :digitalWrite(s6, LOW); break;
case 'f' :digitalWrite(s6, HIGH); break;
case 'G' :digitalWrite(s7, LOW); break;
case 'g' :digitalWrite(s7, HIGH); break;
case 'H' :digitalWrite(s8, LOW); break;
case 'h' :digitalWrite(s8, HIGH); break;
case 't' :digitalWrite(13, LOW); break;
case 'T' :digitalWrite(13, HIGH); break;
case 'Z' : Serial1.print("ZERO\r");
default : Serial.print("ERREUR");break;
}//fin switch
}//fin void action |
Partager