Z
zygo4619
Apprenti
Bonjour a tous,
Je me tourne vers vous pour peut etre trouver de l'aide
je me suis lancé dans un projet d'automatisation d'une scie a ruban automatique pour découper un modele de pièce bien particulier,
j'ai eu la possibilité de récupérer une vieille scie automatique, que j'ai modifié, tout fonctionne
j'ai mis dans l'armoire une carte arduino pour piloter la machine
j'ai réussi a programmer le mode manuel (appui sur bp monte, la lame monte, appui bp descend, ca descend, etc...)
En revanche, impossible de faire fonctionner le cycle automatique...... c'est un probleme d'écriture du programme et j'ai beau recommencer sans cesse, ça ne veut pas marcher
bref, si une bonne âme du site pouvait m'aiguiller sur mon programme, voir ce qui cloche, je lui en serait éternellement reconnaissant (ouais, rien que ca
)
je joins mon programme (que la partie automatique, j'ai soigneusement mis a l'ombre la partie jog qui fonctionne), si quelqu'un peut y jeter un oeil et me donner quelques pistes.....
n'hésitez pas si vous avez des questions sur le fonctionnement voulu
voilà, en vous remerciant tous par avance, ci dessous, mon code :
/*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 1-----------*/
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 2-----------*/
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 3-----------*/
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 4-----------*/
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 5-----------*/
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 6-----------*/
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 7-----------*/
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;
case 7:
{
digitalWrite(mise_en_pression,LOW);
digitalWrite(pompe_hydraulique,LOW);
etape=0;
}
break;
}
}
Je me tourne vers vous pour peut etre trouver de l'aide
je me suis lancé dans un projet d'automatisation d'une scie a ruban automatique pour découper un modele de pièce bien particulier,
j'ai eu la possibilité de récupérer une vieille scie automatique, que j'ai modifié, tout fonctionne
j'ai mis dans l'armoire une carte arduino pour piloter la machine
j'ai réussi a programmer le mode manuel (appui sur bp monte, la lame monte, appui bp descend, ca descend, etc...)
En revanche, impossible de faire fonctionner le cycle automatique...... c'est un probleme d'écriture du programme et j'ai beau recommencer sans cesse, ça ne veut pas marcher
bref, si une bonne âme du site pouvait m'aiguiller sur mon programme, voir ce qui cloche, je lui en serait éternellement reconnaissant (ouais, rien que ca
je joins mon programme (que la partie automatique, j'ai soigneusement mis a l'ombre la partie jog qui fonctionne), si quelqu'un peut y jeter un oeil et me donner quelques pistes.....
n'hésitez pas si vous avez des questions sur le fonctionnement voulu
voilà, en vous remerciant tous par avance, ci dessous, mon code :
/*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 1-----------*/
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 2-----------*/
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 3-----------*/
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 4-----------*/
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 5-----------*/
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 6-----------*/
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 7-----------*/
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;
case 7:
{
digitalWrite(mise_en_pression,LOW);
digitalWrite(pompe_hydraulique,LOW);
etape=0;
}
break;
}
}