Programme pour étiqueteuse

Bonjour,

J’ai besoin de vos compétences pour vérifier, adapter ou corriger mon programme Arduino de mon système.

Mon projet : une étiqueteuse permettant la pose d’étiquette sur le sac. Le problème c’est que la programmation est pas si simple (pour mon niveau) et je dois avancer pour espérer la terminer.

Je vous explique un peu plus précisément le fonctionnement dans le lien suivant, avec explications et photos pour visualiser le système. Il y a ci-dessous mon programme Arduino que j’ai réalisé.

file:///E:/PROJET%20TER/projet%20futura.pdf

Merci du temps que vous consacriez à mon problème.

Programme Arduino:

int VMV=6; // vitesse moteur vertical
int SMV=5; // sens moteur vertical

int VMH=10; // vitesse moteur horizontal
int SMH=9; // sens moteur horizontal

int VME=11; // vitesse moteur etiquette
int SME=12; // sens moteur etiquette

int DCY=0; // bouton poussoir cycle
int BPC=2; // broche bouton poussoir cycle
int DCY2=0; // bouton poussoir position initiale
int BPPI=3; // broche bouton poussoir position initiale
int DCY3=0; // bouton derouleur (interrupteur)
int BD=; // broche bouton deroulement (interrupteur)

int sensorPin=A0; // broche capteur de courant
int CI=0; // capteur de courant

int CaptGauche=8; // broche capteur gauche
int EtatGauche=0; // capteur gauche
int CaptDroit=7; // broche capteur droit
int EtatDroit=0; // capteur droit
int CaptHaut=4; // broche capteur haut
int EtatHaut=0; // capteur haut

void setup()
{

pinMode(SMV,OUTPUT);
pinMode(SMH,OUTPUT);
pinMode(SME,OUTPUT);

pinMode(BPC,INPUT);
pinMode(BPPI,INPUT);

pinMode(CaptGauche,INPUT);
pinMode(CaptDroit,INPUT);
pinMode(CaptHaut,INPUT);

}

void loop()
{
DCY=digitalRead(BPC);// lire bouton poussoir cycle
if(DCY==HIGH)
{
analogWrite(VMV,220);// moteur verticale qui descend
digitalWrite(SMV,HIGH);
delay(500);
do
{
CI=analogRead(sensorPin); // tant que valeur du capteur <160
}while(CI<160);

do
{
analogWrite(VMH,220);// moteur horizontale etiquette
digitalWrite(SMH,HIGH);
analogWrite(VME,220);// moteur etiquette enroule
digitalWrite(SME,HIGH);
EtatGauche=digitalRead(CaptGauche);
}while(EtatGauche != HIGH); // tant que capteur pas atteind

do
{
analogWrite(VMV,220);// moteur verticale qui remonte
digitalWrite(SMV,LOW);
EtatHaut=digitalRead(CaptHaut);
}while(delay<3000 or EtatHaut != HIGH ); // tant que temps ou capteur pas atteind

do
{
analogWrite(VMH,220);// moteur horizontale position initiale
digitalWrite(SMH,LOW);
EtatDroit=digitalRead(CaptDroit);
}while(EtatDroit != HIGH); // tant que capteur pas atteind
}

else // si le bouton poussoir cycle n’est pas presse
{
DCY2 = digitalRead(BPPI);
if(DCY2 == HIGH) // appuie sur bouton poussoir position initiale
{

do
{
analogWrite(VMV,220);
digitalWrite(SMV,LOW); // moteur verticale monte
EtatHaut=digitalRead(CaptHaut);
}while(EtatHaut != HIGH); // tant que capteur pas atteind
}
else // si bouton poussoir cycle et position initiale pas presse
{
DCY3 = digitalRead(BD); // appuie sur bouton poussoir derouleur
if (DCY3 == HIGH)
{
do{
analogWrite(VME,220);
digitalWrite(SME,LOW);
DCY3 = digitalRead(BD);
} while(DCY3 != LOW);
}
else // si aucun bouton poussoir n’est presse
{
analogWrite(VMV,0);
digitalWrite(SMV,HIGH);
analogWrite(VMH,0);
digitalWrite(SMH,HIGH);
analogWrite(VME,0);
digitalWrite(SME,HIGH);
}
}
}
}

Tu ferais bien de lire ceci et cela