Advertisement
Guest User

Untitled

a guest
Dec 8th, 2024
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | Source Code | 0 0
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. #include <AccelStepper.h>
  4.  
  5. #define ENA_PIN Q0_2
  6. #define DIR_PIN Q0_1
  7. #define PUL_PIN Q0_0
  8.  
  9. #define ArretRotation I0_6   //Sortie sécurité en cas d'arrêt de rotation arbre
  10. #define Signal I0_5          //Entrée signal depart
  11. #define CtrlRotation I0_4    //Entrée contrôle de rotation d'arbre
  12. #define VitMoins I0_3        //Entrée diminution de la vitesse de rotation
  13. #define VitPlus I0_2         //Entrée augmentation de la vitesse de rotation
  14.  
  15. AccelStepper stepper(AccelStepper::DRIVER, PUL_PIN, DIR_PIN);
  16. LiquidCrystal_I2C lcd(0x27, 20, 4);   //Set the LCD Adress to 0x27 for a 16 chars and 2 line display
  17.  
  18. int Vitesse = 0;
  19.  
  20. void setup() {
  21.   Wire.begin();
  22.   Serial.begin(9600);
  23.  
  24.   lcd.begin(20, 4);
  25.   lcd.backlight();
  26.  
  27.   pinMode(ENA_PIN, OUTPUT);
  28.   pinMode(Signal, INPUT);
  29.   pinMode(VitPlus, INPUT);
  30.   pinMode(VitMoins, INPUT);
  31.   pinMode(CtrlRotation, INPUT);
  32.   pinMode(ArretRotation, OUTPUT);
  33.  
  34.   digitalWrite(ENA_PIN, LOW);  //Active le driver
  35.  
  36.   stepper.setAcceleration(500);
  37. }
  38.  
  39. void loop() {
  40.  
  41.   if(digitalRead(VitPlus) == HIGH){
  42.     Vitesse = Vitesse + 5;
  43.     delay(15);
  44.   }
  45.  
  46.   if(digitalRead(VitMoins) == HIGH){
  47.     Vitesse = Vitesse - 5;
  48.     delay(15);
  49.   }
  50.  
  51.   stepper.setMaxSpeed(Vitesse);
  52.  
  53.   Serial.println(Vitesse);
  54.  
  55.   displayValues(Vitesse);
  56.  
  57.   if(digitalRead(Signal) == HIGH){
  58.     Moteur();
  59.   }
  60. }
  61.  
  62. void Moteur(){
  63.  
  64.   stepper.move(5000);
  65.   stepper.run();
  66.  
  67.   if(stepper.distanceToGo() == 0){
  68.     digitalWrite(ENA_PIN, HIGH);
  69.   }
  70.   else {
  71.     digitalWrite(ENA_PIN, LOW);
  72.   }
  73. }
  74.  
  75. void displayValues(int Vitesse) {
  76.   lcd.clear();
  77.  
  78.   lcd.setCursor(7, 0);
  79.   lcd.print("TEST");
  80.  
  81.   lcd.setCursor(1, 1);
  82.   lcd.print("Reglage vitesse");
  83.  
  84.   lcd.setCursor(3, 3);
  85.   lcd.print("Vitesse : ");
  86.   lcd.print(Vitesse);
  87.  
  88.   delay(50);
  89. }
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement