Programmation

Fonctionnement à programmer

SAISIR le programme ci-dessous.

 

Analyse du programme

L'ensemble des blocs sont regroupés dans une « Boucle » pour que l'exécution soit infinie.

  • « Teste » si le bouton-poussoir sur la broche « D2 » est actif ET pas le bouton-poussoir sur la broche « D3 »

    • « Alors » le moteur gauche tourne en sens avant à 25% de sa vitesse maxi (64 = 255 / 4)

    • L'adresse I2C par défaut de la carte est « 15 » pour la carte « Commande I2C de 2 moteurs CC basée sur un driver L298P »

    • « Sinon »

      • « Teste » si le bouton-poussoir sur la broche « D3 » est actif ET pas le bouton-poussoir sur la broche « D2 »

        • « Alors » le moteur gauche tourne en sens arrière à 25% de sa vitesse maxi (64 = 255 / 4)

        • L'adresse I2C par défaut de la carte est « 15 » pour la carte « Commande I2C de 2 moteurs CC basée sur un driver L298P »

        • « Sinon » le moteur gauche est à l'arrêt (vitesse = 0)

ENREGISTRER le programme

TRANSFÉRER le programme dans la carte « Arduino » en cliquant sur l'icône

FAIRE VALIDER le fonctionnement.

1
#include "Grove_I2C_Motor_Driver.h"
2
3
// Adresse I2C par défaut est 0x0f
4
#define I2C_ADDRESS 0x0f
5
int BP1 = 0;
6
int BP2 = 0;
7
void setup() {
8
    Serial.begin(9600);
9
    pinMode(2, INPUT);
10
    pinMode(3,INPUT);
11
    Motor.begin(I2C_ADDRESS);
12
}
13
14
void loop() {
15
  BP1 = digitalRead(2);
16
  BP2 = digitalRead(3);
17
    if (BP1 == HIGH && BP2 == LOW){
18
      // Configuration MOTEUR1, sens, vitesse: -100 à 100
19
      Motor.speed(MOTOR1, 50); //SENS AVANT à 50% de la vitesse max
20
    }
21
    else{
22
      if (BP2 == HIGH && BP1 == LOW)
23
      {
24
        // Configuration MOTEUR1, sens, vitesse: -100 à 100
25
         Motor.speed(MOTOR1, -50); //SENS ARRIERE à 50% de la vitesse max
26
      }
27
      else{
28
        Motor.stop(MOTOR1);
29
      }
30
    }   
31
}