[Programmation] probleme de programmation pour arduino
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

probleme de programmation pour arduino



  1. #1
    Ahmed22

    probleme de programmation pour arduino


    ------

    bonjour; j'ai telecharger un programme pour kit voiture sur internet, il y a des chose que je ne peux pas comprendre, et j'aimerais bien que vous m'aider pour passer cette difficulte.
    question 1 : ``void Drive(int speed){`` ... c est quoi speed? pourquoi est elle en marron? est ce que c'est une fonction predefinit?.... elle n'est pas indiquer dans tout le programme.
    question 2 : voir cette partie du programme

    Code:
    public:
     
    //Method to define the motor pins
    Motor(int ENPin,int dPin1,int dPin2){
    enablePin = ENPin;
    directionPin1 = dPin1;
    directionPin2 = dPin2;
    };
     
    //Method to drive the motor 0~255 driving forward. -1~-255 driving backward
    void Drive(int speed){
    if(speed>=0){
    digitalWrite(directionPin1, LOW);
    digitalWrite(directionPin2, HIGH);
    }
    else{
    digitalWrite(directionPin1, HIGH);
    digitalWrite(directionPin2, LOW);
    speed = - speed;
    }
    analogWrite(enablePin, speed);
    }
    };
    je comprend pas class? public?
    'directionPin1 , directionPin2 , enablePin sur quels pin de l arduino? comment s est fait puisau il n y a aucune indication sur les ports.

    -----
    Images attachées Images attachées
    Dernière modification par gienas ; 08/02/2021 à 15h37. Motif: Ajouté les balises code obligatoires pour les programmes

  2. #2
    Biname

    Re : probleme de programmation pour arduino

    Salut,

    Tu dois étudier 'class' en C++, c'est un gros morceau, une connaissance de base peut suffire dans ton cas.

    https://fr.wikibooks.org/wiki/Progra...2B/Les_classes mais c'est lourd pour débuter
    https://www.fresnel.fr/perso/stout/l...es_Classes.pdf plus simple
    https://openclassrooms.com/fr/course...ses-partie-2-2 ????

    Il 'faudrait' trouver des exemples simples utilisant une classe.

    Biname

  3. #3
    umfred

    Re : probleme de programmation pour arduino

    speed c'est un paramètre de ta fonction Drive pour définir la vitesse (entre 0 et 255); pourquoi en marron ? parce que le logiciel arduino doit le reconnaitre comme un mot clé ou une fonction existante (bien que ce ne soit pas le cas ici) mais ce n'est que de l'affichage.
    Drive est appelé dans la fonction drive() (dernière colonne de l'image 111.jpg) où on lui passe 255, -255(=-1) ou 0 (pour chacun des 2 moteurs) selon que l'on aller devant (forward), à gauche (turnleft), à droite (turnright) ou en arrière (backward) ou encore faire demi-tour (turnaround)

    directionPin1 , directionPin2 , enablePin c'est toi qui les indiquent à l'appel quand tu appelleras Motor (le commentaire indique bien que cette méthode sert à définir les pins du moteur).
    Dans le code ils sont définis sur les lignes Motor leftMotor=Motor(enA,in1,in2); et Motor rightMotor=Moter(enB,in3,in4); (en haut de la 2nde colonne de ton image 1.jpg); et ena, enB, in1 à in4 sont définis au début du programme (et correspondent donc aux pins)

    Et pour la notion de class, on pourrait dire pour simplifier que l'on définit un objet (ici un moteur) et ses fonctionnalités (ses fonctions) de manière générique pour simplifier l'utilisation de plusieurs moteurs par la suite (car tous les moteurs auront le même fonctionnement)
    Dernière modification par umfred ; 08/02/2021 à 13h24.

  4. #4
    Biname

    Re : probleme de programmation pour arduino

    Salut,
    Je t'ai écrit un exemple simple qui utilise/montre tout ce que tu dois comprendre pour lire ton code Arduino.

    Copier le code ici et tester :
    https://www.programiz.com/cpp-progra...line-compiler/
    Code:
    // Online C++ compiler to run C++ program online
    #include <iostream>
    // Module de Classe
    class NomdeClasse{
        public:
            int myInt=7;    // propriété publique
            int getMyPrivateInt(){
                return myIntPrivate;
            }               // methode interne à la classe peut lire private
        private:
            int myIntPrivate=8; // proprièté privée
    }
    ;
    
    int main() {
        NomdeClasse MaClasse; // instanciation d'un Objet NomDeClasse
        // utilisation des propriétés et methodes de la Classe
        std::cout << "Avant 666, MaClasse.myInt = " << MaClasse.myInt;
        MaClasse.myInt = 666;
        std::cout << "\nApres 666, MaClasse.myInt = " << MaClasse.myInt;
        // std::cout << "\nApres 666, MaClasse.myInt = " << MaClasse.myIntPrivate // acces interdit en dehors de la classe car Private
        std::cout << "\ngetMyPrivateInt = " << MaClasse.getMyPrivateInt();
     
        return 0;
    }
    Pas si lourd que ça ?

    Biname

  5. A voir en vidéo sur Futura

Discussions similaires

  1. programmation assembleur pour carte arduino
    Par stephganne dans le forum Électronique
    Réponses: 5
    Dernier message: 02/03/2018, 00h01
  2. programmation arduino de moteurs pour bateau
    Par tpegc dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 12/04/2017, 15h27
  3. Probleme arduino programmation capteur
    Par n2ico dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 28/03/2016, 13h50
  4. problème programmation arduino leonardo
    Par Sisi85-18 dans le forum Électronique
    Réponses: 20
    Dernier message: 01/04/2015, 12h39
  5. Programmation d'un ATtiny 85 avec Arduino probleme !
    Par urtechnic dans le forum Électronique
    Réponses: 5
    Dernier message: 21/12/2014, 12h01
Découvrez nos comparatifs produits sur l'informatique et les technologies.