#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 30 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.5 mL BLEU"); 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); lcd.clear(); //ETAPE 3 : DESCENTE ET LARGUAGE + REMONTEE 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("LARGUAGE BLEU"); lcd.setCursor(0,1); lcd.print("..."); myStepper.step(-stepsPerRevolution*8); // LARGUAGE 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 4 : ROTATION 90° lcd.setCursor(0,0); lcd.print("ROTATION"); lcd.setCursor(0,1); lcd.print("..."); motor1.step(100,FORWARD,SINGLE); //ROTATION 90° delay(2000); lcd.clear(); //ETAPE 5 : 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.5 mL JAUNE"); 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 6 : ROTATION 90° lcd.setCursor(0,0); lcd.print("ROTATION"); lcd.setCursor(0,1); lcd.print("..."); motor1.step(100,BACKWARD,SINGLE); //ROTATION 90° delay(2000); lcd.clear(); //ETAPE 7 : DESCENTE ET LARGUAGE + REMONTEE 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("LARGUAGE JAUNE"); lcd.setCursor(0,1); lcd.print("..."); myStepper.step(-stepsPerRevolution*8); // LARGUAGE 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(); lcd.setCursor(0,0); lcd.print("BLEU + JAUNE ="); lcd.setCursor(0,1); lcd.print("BLEULAUNE"); delay(200000); }