Outils pour utilisateurs

Outils du site


exercices:arduino

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
exercices:arduino [2026/10/08 09:11] – [code C++] adminexercices:arduino [2026/10/08 15:33] (Version actuelle) – [Code Block] admin
Ligne 243: Ligne 243:
 {{ :exercices:capture_d_ecran_du_2026-10-08_08-37-30.png?direct&800 |}} {{ :exercices:capture_d_ecran_du_2026-10-08_08-37-30.png?direct&800 |}}
  
 +{{ :exercices:arduinomoteurcc1sen.png.png?direct&800 |}}
 +
 +== Code C++ ==
 +
 +<code c ArduinoMoteurViaMosfet.ino>
 +
 +/*
 +Faire varier la vitesse du moteur en fonction de la position et donc de la valeur  du potentiometre 
 +*/
 +
 +  int motorPin = 3;     // Controle de vitesse PWM vers la gate du Mofset
 +  int potarPin=0;       // on branche un potentiomètre sur la PIn A0
 +  int sensorValue=0;    // la valeur entre 0 et 1023 déduite de la position du potentiomètre
 +  int outputValue=0;    // la valeur entre 0 et 255 que l'on va utiliser pour régler la vitesse du moteur
 +  
 +  // Executee une seule fois
 +  
 +  void setup() {
 +     // initialiser la communication serie
 +     Serial.begin(19200);
 +     pinMode(motorPin, OUTPUT); // motorPin est utilisee en sortie
 +  }
 +   
 +  // executee en boucle
 +  void loop() {
 +     // lire la valeur en entrée de la Pin A0
 +     sensorValue = analogRead(potarPin);
 +     // afficher sur le moniteur série la valeur lue, pas obligatoire mais toujours intéressant
 +     Serial.println(sensorValue);
 +     // conversion de la valeur sensorvalue (qui va de 0 à 1023) en une valeur entre 0 et 255, outputvalue
 +     outputValue = map(sensorValue, 0, 1023, 0, 255);
 +     // outputvalue permet de controler la vitesse du moteur
 +     analogWrite(motorPin,outputValue );  //  valeur de 0 à 255
 +     delay(100);
 +  }
 +</code>
 +
 +====== Arduino moteur 2 sens Via L293D ======
 +
 +== Doc L293D ==
 +
 +{{ :exercices:ds_l293d.pdf |Notice technique L293D EN}}
 +
 +[[https://lastminuteengineers.com/l293d-dc-motor-arduino-tutorial/|Tuto l293D et Arduino ]]
 +
 +[[start:arduino:l293d|l293d]]
 +
 +{{ :exercices:h-bridge-working-motor-direction-control-animation.gif?direct&400 |}}
 +
 +{{ :exercices:l293d-dual-h-bridge-motor-driver-ic-pinout.png?direct&600 |}}
 +
 +== Plans ==
 +
 +{{ :exercices:arduinomoteurccl293d.png?direct&800 |}}
 +
 +{{ :exercices:capture_d_ecran_du_2026-10-08_12-20-02.png?direct&800 |}}
 +
 +== Code Block ==
 +
 +**Tinkercad**
 +{{ :exercices:capture_d_ecran_du_2026-10-08_14-12-27.png?direct&800 |}}
 +
 +**Vittascience**
 +{{ :exercices:capture_d_ecran_du_2026-10-08_15-30-38.png?direct&900 |}}
 +
 +== Code C++ ==
 +
 +<code c arduinomoteurL293D.ino>
 +// Motor A connections
 +int enA = 9;
 +int in1 = 8;
 +int in2 = 7;
 +
 +void setup() {
 +  // Set all the motor control pins to outputs
 +  pinMode(enA, OUTPUT);
 +  pinMode(in1, OUTPUT);
 +  pinMode(in2, OUTPUT);
 +  
 +
 +  // Turn off motors - Initial state
 +  digitalWrite(in1, LOW);
 +  digitalWrite(in2, LOW);
 + 
 +}
 +
 +void loop() {
 +  directionControl();
 +  delay(1000);
 +  speedControl();
 +  delay(1000);
 +}
 +
 +// This function lets you control spinning direction of motors
 +void directionControl() {
 +  // Set motors to maximum speed
 +  digitalWrite(enA, HIGH);
 +  
 +
 +  // Turn on motor A 
 +  digitalWrite(in1, HIGH);
 +  digitalWrite(in2, LOW);
 +  delay(2000);
 +
 +  // Now change motor directions
 +  digitalWrite(in1, LOW);
 +  digitalWrite(in2, HIGH);
 +  delay(2000);
 +
 +  // Turn off motors
 +  digitalWrite(in1, LOW);
 +  digitalWrite(in2, LOW);
 + }
 +
 +// This function lets you control speed of the motors
 +void speedControl() {
 +  // Turn on motors
 +  digitalWrite(in1, LOW);
 +  digitalWrite(in2, HIGH);
 +  
 +
 +  // Accelerate from zero to maximum speed
 +  for (int i = 0; i < 256; i++) {
 +    analogWrite(enA, i);
 +    delay(20);
 +  }
 +
 +  // Decelerate from maximum speed to zero
 +  for (int i = 255; i >= 0; --i) {
 +    analogWrite(enA, i);
 +    delay(20);
 +  }
 +
 +  // Now turn off motors
 +  digitalWrite(in1, LOW);
 +  digitalWrite(in2, LOW);
 +}
 +</code>
  
/home/chanteri/www/fablab37110/data/attic/exercices/arduino.1791443464.txt.gz · Dernière modification : de admin