Bonjour a tous et toutes,
Je suis nouveau ici et je me permet de venir demander votre aide sur une programmation
je suis en train de modifier completement une scie automatique et j'y ai intégré une arduino UNO
mes connaissances en programmation sont très limitées sur ces produits et ce language
j'ai réussi a ecrire toue le partie qui gere la partie manuelle des mouvements, en revanche, je ne parviens absolument pas a coder la partie automatique, je cherche a faire un cycle de decoupe
pour ce, je tente d'utiliser, sans succès, un switch case, j'ai essayé foultitude de combinaisons, rien a faire
le mieux que j'ai, c'est le code que je vous poste, dans lequel il semble que je reste bloqué a l'étape 1 (mes cablages et signaux electriques sont bons)
si l'un d'entre vous pouvait m'aiguiller un peu, j'aprécierais beaucoup !
merci d'avance
/*Declaration variables systeme*/
const int BP_monte_lame = 13;
const int BP_baisse_lame = 12;
const int BP_rotation_0 = 11;
const int BP_rotation_90 = 10;
const int selecteur_mode_auto = 9;
const int moteur_lame = 8;
const int pompe_hydraulique = 7;
const int voyant_cycle = 6;
const int verin_montee_lame = 5;
const int verin_descente_lame = 4;
const int verin_rotation_0 = 3;
const int rotation_90 = 2;
const int mise_en_pression = 1;
const int selecteur_mode_manu = A0;
const int BP_depart_cycle = A1;
const int capteur_lame_basse = A2;
const int capteur_lame_haute = A3;
const int capteur_bol_90 = A4;
const int capteur_bol_0 = A5;
int etape;
int cycle_en_cours;
int mode_jog;
void setup()
/*Affectation des E/S ARDUINO*/
{
pinMode (BP_monte_lame, INPUT);
pinMode (BP_baisse_lame, INPUT);
pinMode (BP_rotation_0, INPUT);
pinMode (BP_rotation_90, INPUT);
pinMode (selecteur_mode_auto, INPUT);
pinMode (moteur_lame, OUTPUT);
pinMode (pompe_hydraulique, OUTPUT);
pinMode (mise_en_pression, OUTPUT);
pinMode (verin_montee_lame, OUTPUT);
pinMode (verin_descente_lame, OUTPUT);
pinMode (verin_rotation_0, OUTPUT);
pinMode (rotation_90, OUTPUT);
pinMode (voyant_cycle, OUTPUT);
pinMode (selecteur_mode_manu, INPUT);
pinMode (BP_depart_cycle, INPUT);
pinMode (capteur_lame_basse, INPUT);
pinMode (capteur_lame_haute, INPUT);
pinMode (capteur_bol_90, INPUT);
pinMode (capteur_bol_0, INPUT);
}
void loop()
{
/*selecteur en mode automatique*/
if ((digitalRead (selecteur_mode_auto) == HIGH)&&(digitalRead (BP_depart_cycle) == HIGH))
{
switch (etape)
{
/*-----------ETAPE 0-----------*/
case 0:
digitalWrite(mise_en_pression,HIGH);
digitalWrite(pompe_hydraulique,HIGH);
digitalWrite(verin_montee_lame,HIGH);
if (digitalRead ( capteur_lame_haute)==LOW)
{
etape=1;
}
break;
/*-----------ETAPE 1-----------*/
case 1:
digitalWrite(verin_montee_lame,LOW); /*stop montee lame*/
digitalWrite(verin_rotation_0,HIGH); /*rotation bol a 0*/
if (digitalRead ( capteur_bol_0)==HIGH)
{
etape=2;
}
break;
/*-----------ETAPE 2-----------*/
case 2:
digitalWrite(verin_rotation_0,HIGH); /*rotation 0 maintenue*/
digitalWrite(moteur_lame,HIGH); /*rotation bol a 0*/
digitalWrite (verin_descente_lame,HIGH); /*descente lame*/
if (digitalRead ( capteur_lame_basse)==HIGH)
{
etape=3;
}
break;
/*-----------ETAPE 3-----------*/
case 3:
digitalWrite(verin_rotation_0,HIGH); /*rotation 0 maintenue*/
digitalWrite(moteur_lame,LOW); /*arret lame*/
digitalWrite(verin_descente_lame,LOW); /*arret descente*/
digitalWrite (verin_montee_lame,HIGH); /*montée lame*/
if (digitalRead ( capteur_lame_haute)==HIGH)
{
etape=4;
}
break;
/*-----------ETAPE 4-----------*/
case 4:
digitalWrite(rotation_90,HIGH); /*rotation 90*/
digitalWrite(moteur_lame,LOW); /*arret lame maintenu*/
digitalWrite(verin_descente_lame,LOW); /*arret descente maintenu*/
if (digitalRead ( capteur_bol_90)==HIGH)
{
etape=5;
}
break;
/*-----------ETAPE 5-----------*/
case 5:
digitalWrite(rotation_90,HIGH); /*rotation 90 maintenue*/
digitalWrite(moteur_lame,HIGH); /*demarage lame*/
digitalWrite(verin_descente_lame,HIGH); /*demarage descente*/
if (digitalRead ( capteur_lame_basse)==HIGH) /*lame en bas*/
{
etape=6;
}
break;
/*-----------ETAPE 6-----------*/
case 6:
digitalWrite(rotation_90,HIGH); /*rotation 90 maintenue*/
digitalWrite(moteur_lame,LOW); /*arret lame*/
digitalWrite(verin_descente_lame,LOW); /*arret descente*/
digitalWrite (verin_montee_lame,HIGH); /*montée lame*/
if (digitalRead ( capteur_lame_haute)==HIGH)
{
etape=7;
}
break;
/*-----------ETAPE 7-----------*/
case 7:
digitalWrite(mise_en_pression,LOW);
digitalWrite(pompe_hydraulique,LOW);
etape=0;
break;
}
}
}