J'ai un arduino uno qui affiche le compte de piece à usiner et un autre arduino uno qui lui envoie le nombre de piece a faire.
La maniere dont je voudrait que ca marche : si mon bouton pour incrémenter mon nombre de pièces est à high et que celui pour décrémenter est à low alors mon nombre de piece +1 .... je suis pas sure comment relier deux arduino ensemble ... par exemple si mon nombre de piece est de 20 et que on programme dit que analogWrite(A0 , nombre de piece) est-ce que l'autre arduino lirait 20 si j'y dit analogRead(A4) ?
Arduino 1 :
boolean start, Start, OK, MG, MD,jog_up,aucune_piece_restant_a_usiner, jog_down, haut, down, up, bas, monte, descend, piece_plus,piece_moins, man_auto;
boolean reset = 0;
int nombre_de_piece_a_usiner;
int piece_usiner;
int piece_restant_a_usiner;
void setup(){
pinMode(0, INPUT); // MAN /AUTO
pinMode(1, INPUT); // JOG monte
pinMode(2, INPUT); // JOG descend
pinMode(3, INPUT); // start
pinMode(4, INPUT); // bouton main gauche
pinMode(5, INPUT); // bouton main droit
pinMode(6, INPUT); // limit switch haut
pinMode(7, INPUT); // limit switch BAS
pinMode(8, INPUT); // OK pour le nbre de piece
pinMode(9, INPUT); // nbre de piece a usiner ++
pinMode(10, INPUT); // nbre de piece a usiner --
pinMode(11, OUTPUT); // PL pu de piece a faire
pinMode(12, OUTPUT); // Monte
pinMode(13, OUTPUT); // Descend
pinMode(A4, OUTPUT); // indique le nbre de piece a faire a lautre arduino
}
void loop(){
man_auto = digitalRead(0);
jog_up = digitalRead(1);
jog_down = digitalRead(2);
start = digitalRead(3);
MG = digitalRead(4);
MD = digitalRead(5);
haut = digitalRead(6);
bas = digitalRead(7);
OK = digitalRead(8);
piece_plus = digitalRead(9);
piece_moins = digitalRead(10);
piece_restant_a_usiner = nombre_de_piece_a_usiner - piece_usiner;
monte =! descend;
if(haut == 1 && MG==0 && MD == 0 && Start == 0){
if(piece_plus == 1 && piece_moins == 0){
nombre_de_piece_a_usiner = nombre_de_piece_a_usiner + 1 ;
}
if(piece_plus == 0 && piece_moins == 1 && nombre_de_piece_a_usiner >= 1 ){
nombre_de_piece_a_usiner = nombre_de_piece_a_usiner - 1 ;
}
} // on sait maintenant comment de piece on veut usiner
if(man_auto == 1){
if(jog_up == 1 && jog_down == 0){
monte = 1;
}
if(jog_up == 0 && jog_down == 1){
descend = 1;
}
if(jog_up == 1 && jog_down == 1){
reset = 1;
}
}// mode manuel
if(start == 1){
Start = 1;
}
if(Start == 1 && MG==1 && MD == 1 && man_auto == 0 ){
if(piece_restant_a_usiner > 0){
if(haut == 1) {
down = 1; // memoire que ca descend
}
if(down == 1 && bas == 0){
descend = 1;
up = 0;
}
if(bas == 1){
descend = 0;
piece_usiner = piece_usiner + 1;
up = 1; // memoire que ca monte
}
if(up ==1 && haut == 0){
monte = 1;
down = 0;
}
}//nombre_de_piece_a_usiner > piece_usiner
if(piece_restant_a_usiner == 0){
aucune_piece_restant_a_usiner = 1;
reset = 1;
}
}// MG et MD == 1
if(reset == 1){
Start = 0;
piece_restant_a_usiner = 0;
nombre_de_piece_a_usiner = 0;
piece_usiner = 0;
up = 0;
down =0;
}
digitalWrite(11, aucune_piece_restant_a_usiner); // PL pu de piece a faire
digitalWrite(12, monte); // Monte
digitalWrite(13, descend); // Descend
analogWrite(A4, piece_restant_a_usiner);
}
Arduino 2 :
boolean A,B,C,D,E,F,G,a2,B2,C2,D2,E2,F2,G2;
float chiffre;
int dix_exp_un;
int dix_exp_zero;
void setup(){
pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(A2, INPUT); // lautre arduino indique le nbre de piece qui reste a usiner
}
void loop(){
chiffre = analogRead(A2/10.24);
dix_exp_un = int(chiffre/10); // si on avait 79 comme chiffre alors base_dix = 7
dix_exp_zero = chiffre-(dix_exp_un)*10;
if (dix_exp_zero==9 ){
// 9
G = 1;
F = 1;
E = 0;
D = 1;
C = 1;
B = 1;
A = 1;
}
if (dix_exp_un==9 ){
// 9
G2 = 1;
F2 = 1;
E2 = 0;
D2 = 1;
C2 = 1;
B2 = 1;
a2 = 1;
}
if (dix_exp_zero==8 ){
// 8
G = 1;
F = 1;
E = 1;
D = 1;
C = 1;
B = 1;
A = 1;
}
if (dix_exp_un==8 ){
// 8
G2 = 1;
F2 = 1;
E2 = 1;
D2 = 1;
C2 = 1;
B2 = 1;
a2 = 1;
}
if (dix_exp_zero==7 ){
// 7
G = 0;
F = 0;
E = 0;
D = 0;
C = 1;
B = 1;
A = 1;
}
if (dix_exp_un==7 ){
// 7
G2 = 0;
F2 = 0;
E2 = 0;
D2 = 0;
C2 = 1;
B2 = 1;
a2 = 1;
}
if (dix_exp_zero==6 ){
// 6
G = 1;
F = 1;
E = 1;
D = 1;
C = 1;
B = 0;
A = 1;
}
if (dix_exp_un==6 ){
// 6
G2 = 1;
F2 = 1;
E2 = 1;
D2 = 1;
C2 = 1;
B2 = 0;
a2 = 1;
}
if (dix_exp_zero==5 ){
// 5
G = 1;
F = 1;
E = 0;
D = 1;
C = 1;
B = 0;
A = 1;
}
if (dix_exp_un==5 ){
// 5
G2 = 1;
F2 = 1;
E2 = 0;
D2 = 1;
C2 = 1;
B2 = 0;
a2 = 1;
}
if (dix_exp_zero==4 ){
// 4
G = 1;
F = 1;
E = 0;
D = 0;
C = 1;
B = 1;
A = 0;
}
if (dix_exp_un==4 ){
// 4
G2 = 1;
F2 = 1;
E2 = 0;
D2 = 0;
C2 = 1;
B2 = 1;
a2 = 0;
}
if (dix_exp_zero==3 ){
// 3
G = 1;
F = 0;
E = 0;
D = 1;
C = 1;
B = 1;
A = 1;
}
if (dix_exp_un==3 ){
// 3
G2 = 1;
F2 = 0;
E2 = 0;
D2 = 1;
C2 = 1;
B2 = 1;
a2 = 1;
}
if (dix_exp_zero==2 ){
// 2
G = 1;
F = 0;
E = 1;
D = 1;
C = 0;
B = 1;
A = 1;
}
if (dix_exp_un==2 ){
// 2
G2 = 1;
F2 = 0;
E2 = 1;
D2 = 1;
C2 = 0;
B2 = 1;
a2 = 1;
}
if (dix_exp_zero==1 ){
// 1
G = 0;
F = 0;
E = 0;
D = 0;
C = 1;
B = 1;
A = 0;
}
if (dix_exp_un==1 ){
// 1
G2 = 0;
F2 = 0;
E2 = 0;
D2 = 0;
C2 = 1;
B2 = 1;
a2 = 0;
}
if (dix_exp_zero==0 ){
// 0
G = 0;
F = 1;
E = 1;
D = 1;
C = 1;
B = 1;
A = 1;
}
if (dix_exp_un==0 ){
// 0
G2 = 0;
F2 = 1;
E2 = 1;
D2 = 1;
C2 = 1;
B2 = 1;
a2 = 1;
}
// Fin du scan
digitalWrite(0,G);
digitalWrite(1,F );
digitalWrite(2,A);
digitalWrite(4,C );
digitalWrite(5,D);
digitalWrite(6,E);
digitalWrite(3,B);
digitalWrite(7,C2 );
digitalWrite(8,D2 );
digitalWrite(9,E2);
digitalWrite(10,G2);
digitalWrite(11,F2);
digitalWrite(12,B2);
digitalWrite(13,a2);
}
lab_12_prog.ino (2.83 KB)
lab_12_chiffre.ino (3.49 KB)