• Post category:Nano
  • Post comments:0 commentaire
  • Post last modified:mars 15, 2022
  • Temps de lecture :4 min de lecture

Cycle Marche avant, Detection obstacle HC-SR04, Rotation, Marche avant – Moteur DC (TT Moteur 130) + L298N et Arduino Nano *

 

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino Nano
  • 1 x L298N
  • 2 x TT Moteur 130
  • 1 x HC-SR04 capteur à Ultrason
  • 1 x Alimentation 9v
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

 

 

Schéma de câblage :

 

Code :

#define borneIN1        7   // On branche "IN1" du L298N à la pin D7 de l'arduino
#define borneIN2        8   // On branche "IN2" du L298N à la pin D8 de l'arduino
#define borneIN3        9   // On branche "IN3" du L298N à la pin D9 de l'arduino
#define borneIN4        10  // On branche "IN4" du L298N à la pin D10 de l'arduino
const int trigPin = 2;
const int echoPin = 3;
float duration;
float distance;
int Tpsrotation = 800;  //Définit le temps de rotation


void setup() {
  Serial.begin(9600);
  // Déclaration des pins de l'Arduino en "sortie"
  pinMode(borneIN1, OUTPUT);
  pinMode(borneIN2, OUTPUT);
  pinMode(borneIN3, OUTPUT);
  pinMode(borneIN4, OUTPUT);
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 

}

void loop() {
  //Mesure de la distance
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW); 
  duration = pulseIn(echoPin, HIGH);
  distance= duration*0.034/2; 
  //Affiche la distance dans le Moniteur Série
  Serial.println(distance); 
  //Si la distance est plus petite que 10cm
  //On effectue une rotation
  //Sinon on fait une marche Avant
  if(distance < 10){
    Arret();  
    delay(1000);
    Rotation();
    delay(Tpsrotation);
    Arret();  
    delay(1000);
  }
  else{
    MarcheAV();
  } 
}

void MarcheAV() {
  // Configuration du L298N en "marche avant"
  digitalWrite(borneIN1, HIGH);
  digitalWrite(borneIN2, LOW);
  digitalWrite(borneIN3, HIGH);
  digitalWrite(borneIN4, LOW);
}


void Arret() {
  // Configuration du L298N en "Arret"
  digitalWrite(borneIN1, LOW);
  digitalWrite(borneIN2, LOW);
  digitalWrite(borneIN3, LOW);
  digitalWrite(borneIN4, LOW);
}

void Rotation() {
  // Configuration du L298N en "marche arrière"
  digitalWrite(borneIN1, LOW);
  digitalWrite(borneIN2, HIGH);
  digitalWrite(borneIN3, LOW);
  digitalWrite(borneIN4, LOW);
}

 


 

Laisser un commentaire