0% ont trouvé ce document utile (0 vote)
9 vues21 pages

Arduino

Le document décrit plusieurs essais pratiques sur la commande de micromoteurs et de capteurs, incluant des programmes pour contrôler un servo moteur avec un capteur ultrason, un moteur pas à pas, et des capteurs comme une photorésistance et un détecteur de mouvement. Chaque essai comprend des instructions de câblage, de programmation et de tests, ainsi que des schémas de câblage. Les programmes sont fournis en langage Arduino pour réaliser des tâches spécifiques comme la détection de distance et le contrôle de LED.

Transféré par

Balayira Bakary
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues21 pages

Arduino

Le document décrit plusieurs essais pratiques sur la commande de micromoteurs et de capteurs, incluant des programmes pour contrôler un servo moteur avec un capteur ultrason, un moteur pas à pas, et des capteurs comme une photorésistance et un détecteur de mouvement. Chaque essai comprend des instructions de câblage, de programmation et de tests, ainsi que des schémas de câblage. Les programmes sont fournis en langage Arduino pour réaliser des tâches spécifiques comme la détection de distance et le contrôle de LED.

Transféré par

Balayira Bakary
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP 1: Micromoteurs

Essaie 1 : Commander un Servo moteur avec un capteur ultrason


(barrière levante)
Travail à faire :
1. Commander le matériel
2. Réaliser le câblage
3. Saisir le programme
4. Tester le programme (Vérifier)
5. Mise en route
➢ Connectez la carte à un port USB
➢ TOOLS > Board (Choix de la carte)
➢ TOOLS > Port (Choisissez le port)
6. Télé verser le programme (Upload)

PROGRAMME:
#include <Servo.h>
const int trig = 11;
const int echo = 10;
const int ledVert = 3;
const int ledRouge = 2;
Servo barriere;
long duration, distance;

void setup() {
[Link](9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(ledVert, OUTPUT);
pinMode(ledRouge, OUTPUT);
[Link](5);
}
void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(2);

1
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);

// Mesure de la durée du signal ultrasonique


duration = pulseIn(echo, HIGH);
// Conversion de la durée en distance
distance = (duration * 0.034) / 2;

[Link]("Distance : ");
[Link](distance);
[Link](" cm");

if (distance < 10) {


[Link](90);
digitalWrite(ledVert, HIGH);
digitalWrite(ledRouge, LOW);
[Link]("Barriere LEVER ");
delay(5000);
} else {
[Link](0);
digitalWrite(ledVert, LOW);
digitalWrite(ledRouge, HIGH);
}
delay(150);
}

2
Schémas de câblage :

Servomoteur

Led verte Led Rouge

S + - + - + -

GND
5V

3
Essaie 2 : MOTEUR PAS A PAS (sens horaire et antihoraire)
PROGRAMME:
#include <Stepper.h>
const int stepsPerRevolution = 200;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
[Link](9600);
[Link](60);
}

void loop() {
// Faire tourner le moteur dans le sens horaire
for (int angle = 0; angle <= 360; angle += 10) {
int steps = angle * stepsPerRevolution / 360;
[Link](steps);

[Link]("Angle: ");
[Link](angle);
[Link](" deg");
delay(500);
}
}

4
Schémas de câblage :

IN1
IN2
IN3
IN4
IN5
IN6
IN7
- +

<

5
TP 2: Capteurs
Essaie 1 : Contrôler une LED avec une photorésistance
Travail à faire :
1. Commander le matériel
2. Réaliser le câblage
3. Saisir le programme
4. Tester le programme (Vérifier)
5. Mise en route
➢ Connectez la carte à un port USB
➢ TOOLS > Board (Choix de la carte)
➢ TOOLS > Port (Choisissez le port)
6. Télé verser le programme (Upload)

PROGRAMME:
int PhotoResistance = A0;
int LED = 3;
void setup() {
pinMode(PhotoResistance, INPUT);
pinMode(LED, OUTPUT);
[Link](9600);
}
void loop() {
int valeur = analogRead(PhotoResistance);
[Link]("Valeur : ");
[Link](valeur);
if (valeur < 200) {
digitalWrite(LED, HIGH);
}
else {
digitalWrite(LED, LOW);
}
delay(500);
}

6
Schémas de câblage :

5V GND S

7
Essaie 2 : Détecteur de mouvements
PROGRAMME:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int Mouve = 2;
int LED = 4;
int buzzer = 5;
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
[Link](9600);
pinMode(Mouve, INPUT);
pinMode(LED, OUTPUT);
pinMode(buzzer, OUTPUT);
[Link]();
[Link]();
[Link]();
}

void loop() {
int EtatMouve = digitalRead(Mouve);
if (EtatMouve == HIGH) {
// Afficher le message de détection de mouvement sur l'écran LCD
[Link]();
[Link](0, 0);
[Link]("Mouvement");
[Link](0, 1);
[Link]("detecte !");
// Afficher le message dans le moniteur série
[Link]("Mouvement detecte !");

8
digitalWrite(LED,HIGH);
tone(buzzer, 1000);

} else {
// Afficher le message d'absence de mouvement sur l'écran LCD
[Link]();
[Link](0, 0);
[Link]("Pas de");
[Link](0, 1);
[Link]("mouvement");
// Afficher le message dans le moniteur série
[Link]("Pas de mouvement");
digitalWrite(LED,LOW);
noTone(buzzer);
}
delay(500);
}

9
Schémas de câblage :

Buzzer
LED
+ -

10
Essaie 3 : Capteur de température et d’humidité
PROGRAMME :
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTTYPE DHT11
#define DHTPIN 2

DHT dht(DHTPIN, DHTTYPE);


LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
[Link](9600);
[Link]();
[Link]();
[Link]();

// Afficher un message de demarage


[Link](0, 0);
[Link]("DHT11 Sensor");
[Link](0, 1);
[Link]("Initializing...");
delay(2000);
}
void loop() {
float h = [Link]();
float t = [Link]();
// Afficher les valeurs sur le moniteur série
[Link]("Humidite: ");

11
[Link](h);
[Link](" %\t");
[Link]("Temperature: ");
[Link](t);
[Link](" *C ");
// Afficher les valeurs sur l'écran LCD
[Link]();
[Link](0, 0);
[Link]("Humid: ");
[Link](h);
[Link](" %");

[Link](0, 1);
[Link]("Temp: ");
[Link](t);
[Link](" C");

delay(2000);
}

12
Schémas de câblage :

13
TP 3: Electronique embarqué
Essaie1
Travail à faire :
1. Commander le matériel
2. Réaliser le câblage
3. Saisir le programme
4. Tester le programme (Vérifier)
5. Mise en route
➢ Connectez la carte à un port USB
➢ TOOLS > Board (Choix de la carte)
➢ TOOLS > Port (Choisissez le port)
6. Télé verser le programme (Upload)

PROGRAMME:
int IN1 = 8;
int IN2 = 9;
int IN3 = 10;
int IN4 = 11;
int LedVerte = 4;
int LedRouge = 5;
int LedBlanche = 6;

void setup() {
[Link](9600);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(LedVerte,OUTPUT);
pinMode(LedBlanche,OUTPUT);
pinMode(LedRouge,OUTPUT);
}

14
void loop() {
// MOTEUR Avancer
digitalWrite(IN1,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(LedVerte,HIGH);
digitalWrite(LedRouge,LOW);
digitalWrite(LedBlanche,LOW);
delay(5000);
// Arret des moteurs
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
digitalWrite(LedRouge,HIGH);
digitalWrite(LedVerte,LOW);
digitalWrite(LedBlanche,LOW);
delay(3000);
// MOTEUR Réculer
digitalWrite(IN4,HIGH);
digitalWrite(IN2,HIGH);
digitalWrite(LedBlanche,HIGH);
digitalWrite(LedVerte,LOW);
digitalWrite(LedRouge,LOW);
delay(5000);
// Arret des moteurs
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
digitalWrite(LedRouge,HIGH);

15
digitalWrite(LedVerte,LOW);
digitalWrite(LedBlanche,LOW);
delay(3000);
}

Schémas de câblage :

LedRouge

LedBlanche LedVerte

-
+

-
+

+ -
Source
d’allimentation 12V

16
Essaie2 : Robot
#include <Servo.h>

// Définir les broches des moteurs


const int motor1Pin1 = 8;
const int motor1Pin2 = 9;
const int motor2Pin1 = 10;
const int motor2Pin2 = 11;

// Définir les broches du capteur à ultrasons


const int trigPin = 7;
const int echoPin = 6;

// Servo-moteur pour le capteur à ultrasons


Servo ultrasonicServo;
const int servoPin = 2;

// Variables pour la distance


long duration;
int distance;

// Seuil de distance pour éviter les obstacles (en cm)


const int distanceThreshold = 20;

void setup() {
// Configurer les broches des moteurs en sortie
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);

17
// Configurer les broches du capteur à ultrasons
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

// Attacher le servo
[Link](servoPin);

// Initialiser la position du servo au centre


[Link](90);

// Initialiser la communication série


[Link](9600);
}

void loop() {
// Lire la distance devant
[Link](90);
delay(500);
distance = readUltrasonicDistance();
[Link]("Distance avant: ");
[Link](distance);

if (distance > distanceThreshold) {


// Avancer
moveForward();
} else {
// Arrêter
stopCar();

18
// Regarder à gauche
[Link](0);
delay(500);
int distanceLeft = readUltrasonicDistance();
[Link]("Distance gauche: ");
[Link](distanceLeft);

// Regarder à droite
[Link](180);
delay(500);
int distanceRight = readUltrasonicDistance();
[Link]("Distance droite: ");
[Link](distanceRight);

// Choisir la direction avec plus d'espace


if (distanceLeft > distanceRight) {
turnLeft();
} else {
turnRight();
}
}

delay(100);
}

// Fonction pour lire la distance du capteur à ultrasons


int readUltrasonicDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);

19
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
return distance;
}

// Fonctions pour contrôler les moteurs


void moveForward() {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}

void stopCar() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}

void turnLeft() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
delay(500);
stopCar();
}

20
void turnRight() {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
delay(500);
stopCar();
}

21

Vous aimerez peut-être aussi