Contrôle de moteur DC via Arduino
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Contrôle de moteur DC via Arduino



  1. #1
    oniff

    Contrôle de moteur DC via Arduino


    ------

    bonsoir à tous,

    Je débute tout juste en Arduino,

    J'ai besoin de pouvoir contrôler deux moteurs DC de 12V en marhe AV/marhe AR en tout ou rien, je n'est pas besoin de controler leur vitesse. j'utiliserais le double pont en H 'L298" donc connectés au broches digitale de 22 à 25 par exemple. (pour une Arduino Méga)
    Pour le contrôle de es moteurs, j'utiliserais un joystick X;Y (deux potentiomètres). Le joystick sera connecter en entrée au broches analogique.
    Par contre, j'ai beau chercher sur le net, je ne trouve pas de tuto ou un bout de code que je pourrais modifier pour le contrôle que je souhaite réaliser.
    Si vous avez uune piste, je suis prenneur
    Cordialement.

    -----

  2. #2
    nornand

    Re : Contrôle de moteur DC via Arduino

    sur quelle partie du codage tu butes? la commande des moteurs ou la lecture du joystick ?

  3. #3
    freepicbasic

    Re : Contrôle de moteur DC via Arduino

    dans les exemples il y un "AnalogInput.ino"
    Code:
    /*
      Analog Input
     Demonstrates analog input by reading an analog sensor on analog pin 0 and
     turning on and off a light emitting diode(LED)  connected to digital pin 13. 
     The amount of time the LED will be on and off depends on
     the value obtained by analogRead(). 
     
     The circuit:
     * Potentiometer attached to analog input 0
     * center pin of the potentiometer to the analog pin
     * one side pin (either one) to ground
     * the other side pin to +5V
     * LED anode (long leg) attached to digital output 13
     * LED cathode (short leg) attached to ground
     
     * Note: because most Arduinos have a built-in LED attached 
     to pin 13 on the board, the LED is optional.
     
     
     Created by David Cuartielles
     modified 30 Aug 2011
     By Tom Igoe
     
     This example code is in the public domain.
     
     http://arduino.cc/en/Tutorial/AnalogInput
     
     */
    
    int sensorPin = A0;    // select the input pin for the potentiometer
    int ledPin = 13;      // select the pin for the LED
    int sensorValue = 0;  // variable to store the value coming from the sensor
    
    void setup() {
      // declare the ledPin as an OUTPUT:
      pinMode(ledPin, OUTPUT);  
    }
    
    void loop() {
      // read the value from the sensor:
      sensorValue = analogRead(sensorPin);    
      // turn the ledPin on
      digitalWrite(ledPin, HIGH);  
      // stop the program for <sensorValue> milliseconds:
      delay(sensorValue);          
      // turn the ledPin off:        
      digitalWrite(ledPin, LOW);   
      // stop the program for for <sensorValue> milliseconds:
      delay(sensorValue);                  
    }
    A+, pat

  4. #4
    oniff

    Re : Contrôle de moteur DC via Arduino

    Bin en fait un peu tout.

    Déjas pour la déclaration des variables.

    Je sais qu'une sortie digitale est: DigitalWrite, sa c'est pour déclarer les broches du L298
    et une entrée analogique est: AnalogRead pour déclarer les broches du joystick.

    Par exemple, j'ai trouver ce bout de code:

    #define motorPin1a 3 // Marche avant du premier moteur
    #define motorPin1b 4 // Marche arrière du premier moteur
    #define speedPin1 9 // L293D enable pin pour le premier moteur
    #define motorPin2a 5 // Marche avant du deuxième moteur
    #define motorPin2b 6 // Marche arrière du deuxième moteur
    #define speedPin2 10 // L293D enable pin pour le deuxième moteur
    #define JoyStickPin1 1 //analog 1
    #define JoyStickPin2 2 //analog 2

    Cela concernait un contrôle de deux moteurs via Arduino et l293D. Les vitesses étaient gérées et les sorties était de l'analogique.
    J'ai essayer de le modifier mais après vérification via le logiciel, ça ne voulais rien savoir.

    En gros, se que je veux (je ne sais pas si c'est bon) mais:

    #define motorPin1a 22 // corespond à la broche 22 digitale , moteur 1 marche AV
    #define motorPin1b 23 // corespond à la broche 23 digitale, moteur 1 marche AR
    #define motorPin1a 24 // corespond à la broche 24 digitale , moteur 2 marche AV
    #define motorPin1b 25 // corespond à la broche 25 digitale, moteur 2 marche AR

    int potpin1 = 0; // Joystick x entrée analog
    int potpin2 = 1; // Joystick y entrée analog

    Mais alors, je ne sais même pas par ou commencer,
    Dernière modification par oniff ; 21/02/2013 à 19h58.

  5. A voir en vidéo sur Futura
  6. #5
    freepicbasic

    Re : Contrôle de moteur DC via Arduino

    Code:
    While (1)
    {
    
    int sensorValue = 0;  // variable to store the value coming from the sensor
    
    sensorValue = analogRead(JoyStickPin1 );    
      
    if (sensorValue> 150)   {
    	digitalWrite(speedPin1  , HIGH);  
    	digitalWrite(motorPin1a , HIGH);  
    	} else
    		if (sensorValue< 100)   {
    			digitalWrite(speedPin1  , HIGH);  
    			digitalWrite(motorPin1b  , LOW);  
    			}
    		else {
    			digitalWrite(speedPin1  , LOW);  
    			}
    
    sensorValue = analogRead(JoyStickPin2 );    
      
    if (sensorValue> 150)   {
    	digitalWrite(speedPin2  , HIGH);  
    	digitalWrite(motorPin2a , HIGH);  
    	} else
    		if (sensorValue< 100)   {
    			digitalWrite(speedPin2  , HIGH);  
    			digitalWrite(motorPin2b  , LOW);  
    			}
    		else {
    			digitalWrite(speedPin1  , LOW);  
    		}
    
    	}
    A+, pat

  7. #6
    oniff

    Re : Contrôle de moteur DC via Arduino

    Wahooooo!!
    Merci beaucoup freepicbasic

    Par contre, quand je fait vérifier le code par le logiciel j'ai un message d'erreur, faut il que j'ouvre une bibliothèque appropriée?
    Dernière modification par oniff ; 21/02/2013 à 20h22.

  8. #7
    freepicbasic

    Re : Contrôle de moteur DC via Arduino

    Quelques erreurs...
    quand on met on 1 sens il faut mettre off le sens opposé
    position centrale on met tout off

    vérifie j ai pas testé

    Code:
    While (1)
    {
    
    int sensorValue = 0;  // variable to store the value coming from the sensor
    
    sensorValue = analogRead(JoyStickPin1 );    
      
    if (sensorValue> 150)   {
    	digitalWrite(speedPin1  , HIGH);  
    	digitalWrite(motorPin1b , LOW);  
    	digitalWrite(motorPin1a , HIGH);  
    	} else
    		if (sensorValue< 100)   {
    			digitalWrite(speedPin1  , HIGH);  
      	                digitalWrite(motorPin1a , LOW);  
    			digitalWrite(motorPin1b  , HIGH);  
    			}
    		else {
    			digitalWrite(speedPin1  , LOW);  
    			digitalWrite(motorPin1a , LOW);  
    			digitalWrite(motorPin1b  , LOW);  
    			}
    
    sensorValue = analogRead(JoyStickPin2 );    
      
    if (sensorValue> 150)   {
    	digitalWrite(speedPin2  , HIGH);  
    	digitalWrite(motorPin2b  , LOW);  
    	digitalWrite(motorPin2a , HIGH);  
    	} else
    		if (sensorValue< 100)   {
    			digitalWrite(speedPin2  , HIGH);  
    			digitalWrite(motorPin2a  , LOW);  
    			digitalWrite(motorPin2b  , HIGH);  
    			}
    		else {
    		digitalWrite(speedPin2  , LOW);  
    		digitalWrite(motorPin2a  , LOW);  
    		digitalWrite(motorPin2b  , LOW);  
    		}
    A+, pat

  9. #8
    oniff

    Re : Contrôle de moteur DC via Arduino

    En fait c'est le "While (1)" qu'il n'aime pas

  10. #9
    freepicbasic

    Re : Contrôle de moteur DC via Arduino

    t 'as vu l exemple post3 !!!!!!!


    il faut mettre tout ça dans le loop
    et initialisé les pins dans le setup

    faudrait au moins voir le 2 ou 3 premiers tutorials pour commencer...
    A+, pat

  11. #10
    freepicbasic

    Re : Contrôle de moteur DC via Arduino

    Code:
    #define motorPin1a 22 // corespond à la broche 22 digitale , moteur 1 marche AV
    #define motorPin1b 23 // corespond à la broche 23 digitale, moteur 1 marche AR
    #define motorPin1a 24 // corespond à la broche 24 digitale , moteur 2 marche AV
    #define motorPin1b 25 // corespond à la broche 25 digitale, moteur 2 marche AR
    
    int potpin1 = 0; // Joystick x entrée analog
    int potpin2 = 1; // Joystick y entrée analog
    
    
    
    void setup() {
      // declare the ledPin as an OUTPUT:
      pinMode(motorPin1a , OUTPUT);  
      pinMode(motorPin1b , OUTPUT);  
      pinMode(motorPin2a , OUTPUT);  
      pinMode(motorPin1b , OUTPUT);  
    }
    
    
    loop 
    {
    while(1)
      {
        ....
      }
    }
    A+, pat

  12. #11
    oniff

    Re : Contrôle de moteur DC via Arduino

    Yes,

    Merci pour beaucoup ton aide

  13. #12
    nornand

    Re : Contrôle de moteur DC via Arduino

    le malheur c'est que tu n'as rien appris , mis a part copier ...
    c'est bête , ce n'est pas difficile ton projet.

  14. #13
    oniff

    Re : Contrôle de moteur DC via Arduino

    C'est pas faut,
    Mais j'essaie de comprendre en essayant de récupérer des codes ou bout de codes qui me permettront de réaliser mon projet.
    Je dois contrôler 7 moteurs, 3 servo, intensité de Led ect....
    Ce code va me permettre de visualiser et de comprendre "comment ça marche"

Discussions similaires

  1. Arduino : Moteur 3vcc
    Par invite48185d43 dans le forum Électronique
    Réponses: 1
    Dernier message: 27/01/2013, 20h21
  2. Réponses: 1
    Dernier message: 24/12/2012, 15h13
  3. controler un moteur avec arduino uno
    Par riffmaker dans le forum Électronique
    Réponses: 32
    Dernier message: 22/04/2012, 05h57
  4. Controle moteur DC arduino problème
    Par adrien4607 dans le forum Électronique
    Réponses: 1
    Dernier message: 22/02/2012, 17h04
  5. Moteur DC 42V + Arduino + PWM
    Par invite4064882a dans le forum Électronique
    Réponses: 6
    Dernier message: 23/05/2010, 20h35
Découvrez nos comparatifs produits sur l'informatique et les technologies.