Bonsoir tous le monde.
Je viens vers vous car je bloque dans mon codage.
Le problème est que mon moteur PAP marque une pose a chaque cycle comme si un Delay était présent hors ce n'est pas le cas. J'ai essayé de nombreuse chose sans trouver de solution.
En gros je veut faire un mode manuel sur ma machine pour pouvoir déplacer mon moteur PAP avec mon joystick.
Voici une partie du codage que j'ai simplifier pour pouvoir vous montrer. (le beug est toujours présent)
//Moteurs chariot
#include <Stepper.h>
int stepDelay = 2;
const int NbPasParTour = 200;
Stepper moteur1(NbPasParTour, 9, 8, 7, 6); //Moteur1 doseur
//Fin Moteurs chariot
//Bouton joystick
int xPin = A1;
int yPin = A0;
int buttonPin = 53;
int xPosition = 0;
int yPosition = 0;
int buttonSelect = 0;
//Fin Bouton joystick
//LCD
#include <Wire.h> // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
//Fin LCD
int Chariot; //Menu dans chariot selectionner deplacement
void setup() {Serial.begin(9600);
//LCD
lcd.begin(20,4);
lcd.home ();
//Fin LCD
//Bouton joystick
pinMode(xPin, INPUT);
pinMode(yPin, INPUT);
//activate pull-up resistor on the push-button pin
pinMode(buttonPin, INPUT_PULLUP);
//Fin Bouton joystick
//Moteurs chariot
moteur1.setSpeed(100);
//Fin Moteurs chariot
// put your setup code here, to run once:
}
void Chariot1() //Position navigation dans parametres chariot
{
switch (Chariot)
{
case 0:
lcd.setCursor ( 0, 1 );
lcd.print (" Av !");
lcd.setCursor ( 0, 2 );
lcd.print (" G (Retour) D !");
lcd.setCursor ( 0, 3 );
lcd.print (" Ar !");
break;
case 1:
lcd.setCursor ( 0, 1 );
lcd.print (" Av !");
lcd.setCursor ( 0, 2 );
lcd.print (" (G) Retour D !");
lcd.setCursor ( 0, 3 );
lcd.print (" Ar !");
moteur1.step(-10);
break;
case 2:
lcd.setCursor ( 0, 1 );
lcd.print (" Av !");
lcd.setCursor ( 0, 2 );
lcd.print (" G Retour (D) !");
lcd.setCursor ( 0, 3 );
lcd.print (" Ar !");
moteur1.step(10);
break;
}
//Navigation dans navigation dans parametres chariot
if((xPosition > 950)&&(Chariot == 0))
{
Chariot = 2;
}
else if((xPosition < 21)&&(Chariot == 0))
{
Chariot = 1;
}
else if((yPosition > 480)&&(yPosition < 530)&&(xPosition > 480)&&(xPosition < 530))
{ Chariot = 0;
}
//Fin Selection dans navigation dans parametres chariot
}
void loop() {
xPosition = analogRead(xPin);
yPosition = analogRead(yPin);
buttonSelect = digitalRead(buttonPin);
Chariot1();
}