#include <Stepper.h>
#include <AFMotor.h>
#include <Wire.h> /
#include "rgb_lcd.h" 
 
rgb_lcd lcd; 
 
 
int enA  = 3;  
int enB  = 11;  
int dirA = 12;  
int dirB = 13;  
 
 
const int stepsPerRevolution = 400;  
 
Stepper myStepper(stepsPerRevolution, dirA, dirB);            
AF_Stepper motor1(400,1);
AF_Stepper motor2(400,2);
 
 
void forwardstep1()
{
    motor1.onestep(FORWARD,SINGLE);
}
void backwardstep1()
 
{
    motor1.onestep(BACKWARD,SINGLE);
}
 
void forwardstep2()
{
    motor2.onestep(FORWARD,SINGLE);
}
void backwardstep2()
{
    motor2.onestep(BACKWARD,SINGLE);
}
 
 
 
void setup() {
 
 
 
 lcd.begin(16, 2);
 
  myStepper.setSpeed(60);  //  vitesse 60 tours par minute
 
 
  pinMode(enA, OUTPUT);
  digitalWrite (enA, HIGH);
 
  pinMode(enB, OUTPUT);
  digitalWrite (enB, HIGH);  
 
  motor1.setSpeed(10);  //  vitesse 10 tours par minute
  motor2.setSpeed(30);  //  vitesse 60 tours par minute
 
}
 
void loop() {
 
//ETAPE 1 : DESCENTE ET PRELEVEMENT + MONTEE
 
lcd.setCursor(0,0); 
lcd.print("DESCENTE"); 
lcd.setCursor(0,1); 
lcd.print("..."); 
motor2.step(4000,FORWARD,SINGLE);            // DESCENTE
delay(2000);
lcd.clear();
 
lcd.setCursor(0,0); 
lcd.print("PRELEVEMENT"); 
lcd.setCursor(0,1); 
lcd.print("1.1 mL"); 
myStepper.step(stepsPerRevolution*8);        // PRELEVEMENT 1.5 mL
delay(2000);
lcd.clear();
 
lcd.setCursor(0,0); 
lcd.print("MONTEE"); 
lcd.setCursor(0,1); 
lcd.print("..."); 
motor2.step(4000,BACKWARD,SINGLE);            // MONTEE
delay(2000);
lcd.clear();
 
//ETAPE 2 : ROTATION 90° 
 
lcd.setCursor(0,0); 
lcd.print("ROTATION"); 
lcd.setCursor(0,1); 
lcd.print("..."); 
motor1.step(100,FORWARD,SINGLE);             // ROTATAION 90°
delay(2000);
 
//ETAPE 3 : DESCENTE ET LARGUAGE + REMONTEE
 
motor2.step(4000,FORWARD,SINGLE);           // DESCENTE 
delay(2000);
myStepper.step(-stepsPerRevolution*8);       // LARGUAGE 1.1 mL
delay(2000); 
motor2.step(4000,BACKWARD,SINGLE);            // MONTEE
delay(2000);
 
//ETAPE 4 : ROTATION 90°
 
motor1.step(100,FORWARD,SINGLE);             //ROTATION 90°
delay(2000);
 
}