Formation
Arduino
PLAN DE FORAMTION :
Présentation d'Arduino
Projets réalisés
Modèles de cartes
Programmation du
microcontrôleur
Présentation Environnement de
développement IDE
Capteurs
Actionneurs
Applications robotiques
QU’EST CE
QU’ARDUINO ?
UNE CARTE ARDUINO EST UNE PLATEFORME DE
PROTOTYPAGE ÉLECTRONIQUE BASÉE SUR DES
MICROCONTROLEURS. ELLE PERMET DE CRÉER ET DE
CONTROLER DES PROJETS ÉLECTRONIQUES EN
PROGRAMMANT LE MICROCONTROLEUR VIA UN
ENVIRONNEMENT DE DEVELOPPEMENT INTEGRÉ (IDE).
EXEMPLES DES
PROJETS ARDUINO
SMART HOUSE Des robots
Drone
INTÉGRER L’INTELLIGENCE ARTIFICIELLE
AVEC LA CARTE ARDUINO
POUR FAIRE DES PROJETS INNOVANTS
LES TYPES DE
CARTES
ARDUINO
LES CARTES VARIENT PRINCIPALEMENT EN TERMES DE
MICROCONTRÔLEUR, DE NOMBRE D’ENTRÉE/SORTIE, DE
MÉMOIRE (FLASH,SRAM,EEPROM) ET DE TENSION DE
FONCTIONNEMENT.
Arduino UNO Arduino Méga 2560
Microcontrôleur ATmega328P ATmega2560
Entrées/sorties
numériques
14 54(dont 15PWM)
Entrées analogiques 6 16
Mémoire flash 32KB 256KB
SRAM 2KB 8KB
EEROM 1KB 4KB
COMPOSITION D’UNE
CARTE ARDUINO UNO
Le microcontrôleur
C’est le cerveau de notre carte.
Il contient:
• Un processeur pour traiter les données et faire
les calculs
• Un espace de stockage des données
• Des ports pour communiquer (les broches)
Il va recevoir le programme que nous allons créer
et va le
L’alimentation
Pour fonctionner, une carte Arduino a besoin d'une
alimentation. Le microcontrôleur fonctionnant sous 5V
, la
carte peut être alimentée directement en 5V par le port
USB ou bien par une alimentation externe qui est
comprise entre 7V et 12V
. Un régulateur se charge ensuite
de réduire la tension à 5V pour le bon fonctionnement de
la carte.
• 0 à 13 Entrées/sorties numériques : pin avec ~
(pwm) : tension variable entre 0et 5 v
• A0 à A5 Entrées analogiques .
• GND : masse (0V).
• 5V Alimentation 5V : sortie de la carte
• 3.3V Alimentation +3.3V : sortie de la carte
• Pin AREF :analog reference.
• Vin : Alimentation
Bouton reset : Le programme commence dés le
debut. Broches ICSP : Utilisées pour programmer le
microcontrôleur directement via un programmateur
externe.
LED TX : Clignote lorsque des données sont
envoyées.
LED RX : Clignote lorsque les données sont reçues.
LED d’alimentation : indique que la carte Arduino
est alimentée correctement.
LED 13 : LED connectée a la broche 13. On l’utilise
pour tester rapidement des programmes ou des
configurations.
Il existe deux modèles d’Arduino Uno: l’un avec un microcontrôleur
de grande taille, et un autre avec un microcontrôleur dit SMD:
Surface Mounted Device, soit composants montés en surface, en
opposition aux composants qui traversent la carte électronique et
qui sont soudés du côté opposé. D’un point de vue utilisation, il
n’y a pas de différence entre les deux types de microcontrôleurs.
ARDUINO UNO
COMMENT PEUT-ON PROGRAMMER
UN MICROCONTRÔLEUR ?
ARDUINO IDE
QU’EST CE
QU’ARDUINO IDE ?
L’ARDUINO IDE EST UN ENVIRONNEMENT DE DÉVELOPPEMENT
INTÉGRÉ OPEN SOURCE ET GRATUIT DISPONIBLE POUR WINDOWS,
MACOS ET LINUX . IL PERMET D'ÉDITER LE CODE, DE LE
COMPILER( TESTER ) ET DE LE TRANSFÉRER ( TÉLÉVERSER) À LA
CARTE ARDUINO BIEN PRÉCISÉMENT VERS LE MICROCONTRÔLEUR .
L’INTERFACE DU
LOGICIEL
Bouton 1 : Ce bouton permet de
vérifier le programme, il actionne
un module qui cherche les
erreurs dans le programme.
Bouton 2 : Envoi du programme
sur
l’Arduino.
Bouton 3 : Créer un nouveau
fichier.
Bouton 4 : Ouvrir un fichier
existant.
STRUCTURE DU
PROGRAMME
COMMANDES
DE BASE
pinMode(pin,mode) : Configure un pin pour une entrée (INPUT) ou une
sortie(OUTPUT).
digitalWrite(pin,Value) : Ecrit une valeur numerique( HIGHT or LOW).
digitalRead(pin) : Lit la valeur d’un pin numerique(HIGH or LOW).
analogWrite(pin,value) : Ecrit une valeur analogique (PWM) sur un pin.
La valeur entre 0 et 255 car arduino utilise resolution de 8 bits pour
generer un signal PWM.
analogRead(analogpin):Lit un valeur analogique entre 0 et 1023.
1ere application : une LED rouge s allume une seul fois. puis on
allume une LED jaune et LED verte en alternance, avec un délai
de 1s entre chaque changement.
LED rouge est liée à la pin 7.
LED jaune est liée à la pin 6.
LED verte est liée à la pin 5.
#define ledy 5
#define ledr 6
#define ledg
7 void
setup() {
pinMode(ledy,OUTPUT);
pinMode(ledr,OUTPUT);
pinMode(ledg,OUTPUT)
;
digitalWrite(ledr,HIGH);
delay(1000);
digitalWrite(ledr,LOW);
}
void loop()
{ digitalWrite(ledg,HI
GH); delay(1000);
digitalWrite(ledg,LOW)
; delay(1000);
digitalWrite(ledy,HIGH
); delay(1000);
digitalWrite(ledy,LOW);
LES VARIABLES
Déclaration d’une variable : type_variable nom_variable =
variable;
SIGNAL PWM(PULSE
WIDTH
MODULATION)
SERIAL
MONITOR
Void setup (){
Serial.begin(9600) ;
Serial.print(‘ cela sera affiché
une seul fois‘) ;
}
Void loop(){
Serial.print(‘ cela sera affiché
plusieurs fois‘) ;
}
IF CONDITION
Void loop(){
If (condition ){
}
Else{
}
}
IF CONDITION AVEC
SERIAL MONITOR
int data=10;
void setup()
{
Serial.begin(9600)
;
}
void loop()
{ if(data<
5) {
Serial.println("data inférieur à
5"); data++;
delay(1000);
}
else if (data>5){
Serial.println("data supérieur à
5");
data--;
delay(1000);
}
else{
data=0 ;
Serial.println("data égale à 5
"); delay(1000);
}
}
2EME APPLICATION:
CHENILLARD
void setup() {
for(int i=2;i<9;i++){
pinMode(i,OUTPUT);
}
}
void loop() {
for(int i=2;i<9;i++)
{ digitalWrite(i,HIGH);
delay(1000);
}
}
Void loop(){
While (condition){
} //si la condition est vrai on entre dans la
boucle
}
void setup() {
Serial.begin(9600);
}
void loop() {
delay(2000);
Serial.println("el barra");
while(digitalRead(3)==HIGH)
{ delay(2000);
Serial.println("el da5l");
}
}
LES CAPTEURS
Un capteur est un
dispositif qui détecte ou
mesure une grandeur
physique et convertit
cette information en un
signal utilisable,
généralement électrique.
QU’EST CE QU’UN
CAPTEUR ?
3 ÈME APPLICATION :
RÉSISTANCES PULL-
DOWN ET PULL-UP
L'objectif est de comprendre la différence entre pull-up et pull-down.
LE CAPTEUR
ULTRASON
#define trig 11
#define echo 13 int t=0;
int d=0;
void setup()
{
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trig,0);
delayMicroseconds(5);
digitalWrite(trig,1);
delayMicroseconds(10);
digitalWrite(trig,0);
delayMicroseconds(5);
t=pulseIn(echo,HIGH); //t en micros
d=(0.0343*t)/2;//d en cm
Serial.println(d);
}
APPLICATION:
LED S’ALLUME ET S’ÉTENINT
AUTOMATIQUEMENT EN
UTILISANT LDR
float volt=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{ valeurnum=analogRead(A0);
volt=(5.0*valeurnum)/1023.5;
Serial.println(volt);
delay(1000);
if (volt>0.4)
{digitalWrite(7,LOW );}
else
{digitalWrite(7,HIGH); }
}
L’AFFICHEUR
LCD
// Inclusion de la bibliothèque LiquidCrystal pour contrôler l'afficheur LCD
#include <LiquidCrystal.h>
// Création d'un objet "lcd" basé sur la bibliothèque LiquidCrystal
// Les paramètres sont les broches de l'Arduino connectées aux broches de l'afficheur LCD
// (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// Initialisation de l'afficheur avec 16 colonnes et 2 lignes (afficheur 16x2)
lcd.begin(16, 2);
// Affichage du texte "Hello, world!" sur la première ligne de l'afficheur LCD
// Le curseur est automatiquement positionné sur la première ligne, première colonne
lcd.print("Hello, world!");
}
void loop() {
// La boucle loop() tourne continuellement, mais ici, aucune mise à jour n'est effectuée
// Le texte reste affiché tel quel.
//Vous pouvez utiliser cette section pour rafraîchir l'affichage ou ajouter des interactions.
}
// Inclusion de la bibliothèque LiquidCrystal pour contrôler l'afficheur LCD
#include <LiquidCrystal_I2C.h> // Bibliothèque pour l'afficheur LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C 0x27, écran 16x2
void setup() {
// Initialiser l'écran de l'afficheur LCD :
lcd.init(); // Initialisation de l'écran LCD
lcd.backlight(); // Activer le rétroéclairage
}
void loop() {
// La boucle loop() tourne continuellement, mais ici, aucune mise à jour n'est effectuée
// Le texte reste affiché tel quel.
//Vous pouvez utiliser cette section pour rafraîchir l'affichage ou ajouter des interactions.
}
2 ÈME
PARTIE
LES
ACTIONNEURS :
lamp
e
véri
n
moteu
r
LES MOTEURS :
LE SERVO
MOTEUR :
LE MOTEUR PAS À PAS :
Le moteur pas à pas 28BYJ-48 avec le driver
ULN2003
// Définition des broches
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
// Temps de retard entre les
étapes
int delayTime = 10;
void setup() {
// Initialisation des broches en
mode sortie
pinMode(IN1,
OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3,
OUTPUT);
void loop() {
// Faire tourner le moteur dans un sens
for (int i = 0; i < 512; i++) { // 512 étapes pour un tour
complet stepMotor(1);
}
delay(1000); // Pause de 1 seconde
// Faire tourner le moteur dans l'autre
sens
for (int i = 0; i < 512; i++) {
stepMotor(-1);
}
delay(1000); // Pause de 1 seconde
}
void stepMotor(int
direction) { if (direction >
0) {
// Séquence pour tourner dans
le sens horaire
digitalWrite(IN1,
HIGH);
digitalWrite(IN2,
LOW);
digitalWrite(IN3,
LOW);
digitalWrite(IN4,
LOW);
delay(delayTime);
digitalWrite(IN1,
LOW);
digitalWrite(IN2,
HIGH);
digitalWrite(IN3,
LOW);
digitalWrite(IN4,
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(delayTime);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(delayTime);
} else {
// Séquence pour tourner dans
le sens antihoraire
digitalWrite(IN1,
LOW); digitalWrite(IN2,
LOW); digitalWrite(IN3,
LOW); digitalWrite(IN4,
HIGH);
delay(delayTime);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3,
HIGH);
digitalWrite(IN4,
LOW);
delay(delayTime);
digitalWrite(IN1,
LOW);
digitalWrite(IN2,
HIGH);
digitalWrite(IN3,
LOW);
digitalWrite(IN4,
LOW);
delay(delayTime);
A4988 driver
LES MOTEURS
BRUSHLESS :
Carte
Mosfet
Relais
L298n
LE RELAIS :
LA CARTE
BTS7960 :
/// Définir les broches pour le BTS7960
#define RPWM 9 // Broche PWM pour le sens droit
#define LPWM 10 // Broche PWM pour le sens
gauche #define R_EN 8 // Activation du côté droit
du driver #define L_EN 7 // Activation du côté
gauche du driver
void setup() {
// Configurer les broches comme
sorties pinMode(RPWM, OUTPUT);
pinMode(LPWM, OUTPUT);
pinMode(R_EN, OUTPUT);
pinMode(L_EN, OUTPUT);
// Activer les deux côtés du
driver digitalWrite(R_EN,
HIGH); digitalWrite(L_EN,
HIGH);
}
int
relayPin=2;
void setup()
{
pinMode(rel
ayPin,OUTP
UT);
}
void loop()
{
//Turn ON
relay
digitalWrite(r
elayPin,HIGH
);
//Turn OFF
relay
void loop() {
// Faire tourner le moteur dans un sens
analogWrite(RPWM, 255); // Vitesse maximale dans un
sens analogWrite(LPWM, 0); // Arrêt du sens
opposé delay(2000); // Faire tourner pendant 2
secondes
// Arrêter le moteur
analogWrite(RPWM,
0);
analogWrite(LPWM,
0);
delay(1000); //
Pause de 1 seconde
// Faire tourner le moteur dans l'autre sens
analogWrite(RPWM, 0); // Arrêt du premier
sens
analogWrite(LPWM, 255); // Vitesse maximale dans l'autre
sens delay(2000); // Faire tourner pendant 2 secondes
// Arrêter le moteur
analogWrite(RPWM,
0);
analogWrite(LPWM,
LES ROBOTS :
Formation arduino avec WORKSHOP robot.pptx
Formation arduino avec WORKSHOP robot.pptx
Formation arduino avec WORKSHOP robot.pptx

Formation arduino avec WORKSHOP robot.pptx

  • 1.
  • 2.
    PLAN DE FORAMTION: Présentation d'Arduino Projets réalisés Modèles de cartes Programmation du microcontrôleur Présentation Environnement de développement IDE Capteurs Actionneurs Applications robotiques
  • 3.
  • 4.
    UNE CARTE ARDUINOEST UNE PLATEFORME DE PROTOTYPAGE ÉLECTRONIQUE BASÉE SUR DES MICROCONTROLEURS. ELLE PERMET DE CRÉER ET DE CONTROLER DES PROJETS ÉLECTRONIQUES EN PROGRAMMANT LE MICROCONTROLEUR VIA UN ENVIRONNEMENT DE DEVELOPPEMENT INTEGRÉ (IDE).
  • 5.
  • 6.
    SMART HOUSE Desrobots Drone
  • 7.
    INTÉGRER L’INTELLIGENCE ARTIFICIELLE AVECLA CARTE ARDUINO POUR FAIRE DES PROJETS INNOVANTS
  • 8.
  • 10.
    LES CARTES VARIENTPRINCIPALEMENT EN TERMES DE MICROCONTRÔLEUR, DE NOMBRE D’ENTRÉE/SORTIE, DE MÉMOIRE (FLASH,SRAM,EEPROM) ET DE TENSION DE FONCTIONNEMENT. Arduino UNO Arduino Méga 2560 Microcontrôleur ATmega328P ATmega2560 Entrées/sorties numériques 14 54(dont 15PWM) Entrées analogiques 6 16 Mémoire flash 32KB 256KB SRAM 2KB 8KB EEROM 1KB 4KB
  • 11.
  • 13.
    Le microcontrôleur C’est lecerveau de notre carte. Il contient: • Un processeur pour traiter les données et faire les calculs • Un espace de stockage des données • Des ports pour communiquer (les broches) Il va recevoir le programme que nous allons créer et va le
  • 14.
    L’alimentation Pour fonctionner, unecarte Arduino a besoin d'une alimentation. Le microcontrôleur fonctionnant sous 5V , la carte peut être alimentée directement en 5V par le port USB ou bien par une alimentation externe qui est comprise entre 7V et 12V . Un régulateur se charge ensuite de réduire la tension à 5V pour le bon fonctionnement de la carte.
  • 15.
    • 0 à13 Entrées/sorties numériques : pin avec ~ (pwm) : tension variable entre 0et 5 v • A0 à A5 Entrées analogiques . • GND : masse (0V). • 5V Alimentation 5V : sortie de la carte • 3.3V Alimentation +3.3V : sortie de la carte • Pin AREF :analog reference. • Vin : Alimentation
  • 16.
    Bouton reset :Le programme commence dés le debut. Broches ICSP : Utilisées pour programmer le microcontrôleur directement via un programmateur externe. LED TX : Clignote lorsque des données sont envoyées. LED RX : Clignote lorsque les données sont reçues. LED d’alimentation : indique que la carte Arduino est alimentée correctement. LED 13 : LED connectée a la broche 13. On l’utilise pour tester rapidement des programmes ou des configurations.
  • 17.
    Il existe deuxmodèles d’Arduino Uno: l’un avec un microcontrôleur de grande taille, et un autre avec un microcontrôleur dit SMD: Surface Mounted Device, soit composants montés en surface, en opposition aux composants qui traversent la carte électronique et qui sont soudés du côté opposé. D’un point de vue utilisation, il n’y a pas de différence entre les deux types de microcontrôleurs. ARDUINO UNO
  • 18.
  • 19.
  • 20.
  • 21.
    L’ARDUINO IDE ESTUN ENVIRONNEMENT DE DÉVELOPPEMENT INTÉGRÉ OPEN SOURCE ET GRATUIT DISPONIBLE POUR WINDOWS, MACOS ET LINUX . IL PERMET D'ÉDITER LE CODE, DE LE COMPILER( TESTER ) ET DE LE TRANSFÉRER ( TÉLÉVERSER) À LA CARTE ARDUINO BIEN PRÉCISÉMENT VERS LE MICROCONTRÔLEUR .
  • 22.
  • 23.
    Bouton 1 :Ce bouton permet de vérifier le programme, il actionne un module qui cherche les erreurs dans le programme. Bouton 2 : Envoi du programme sur l’Arduino. Bouton 3 : Créer un nouveau fichier. Bouton 4 : Ouvrir un fichier existant.
  • 24.
  • 26.
  • 27.
    pinMode(pin,mode) : Configureun pin pour une entrée (INPUT) ou une sortie(OUTPUT). digitalWrite(pin,Value) : Ecrit une valeur numerique( HIGHT or LOW). digitalRead(pin) : Lit la valeur d’un pin numerique(HIGH or LOW). analogWrite(pin,value) : Ecrit une valeur analogique (PWM) sur un pin. La valeur entre 0 et 255 car arduino utilise resolution de 8 bits pour generer un signal PWM. analogRead(analogpin):Lit un valeur analogique entre 0 et 1023.
  • 32.
    1ere application :une LED rouge s allume une seul fois. puis on allume une LED jaune et LED verte en alternance, avec un délai de 1s entre chaque changement. LED rouge est liée à la pin 7. LED jaune est liée à la pin 6. LED verte est liée à la pin 5.
  • 33.
    #define ledy 5 #defineledr 6 #define ledg 7 void setup() { pinMode(ledy,OUTPUT); pinMode(ledr,OUTPUT); pinMode(ledg,OUTPUT) ; digitalWrite(ledr,HIGH); delay(1000); digitalWrite(ledr,LOW); } void loop() { digitalWrite(ledg,HI GH); delay(1000); digitalWrite(ledg,LOW) ; delay(1000); digitalWrite(ledy,HIGH ); delay(1000); digitalWrite(ledy,LOW);
  • 34.
  • 35.
    Déclaration d’une variable: type_variable nom_variable = variable;
  • 36.
  • 38.
  • 39.
    Void setup (){ Serial.begin(9600); Serial.print(‘ cela sera affiché une seul fois‘) ; } Void loop(){ Serial.print(‘ cela sera affiché plusieurs fois‘) ; }
  • 40.
  • 41.
  • 42.
  • 43.
    int data=10; void setup() { Serial.begin(9600) ; } voidloop() { if(data< 5) { Serial.println("data inférieur à 5"); data++; delay(1000); } else if (data>5){ Serial.println("data supérieur à 5"); data--; delay(1000); } else{ data=0 ; Serial.println("data égale à 5 "); delay(1000); } }
  • 44.
  • 45.
    void setup() { for(inti=2;i<9;i++){ pinMode(i,OUTPUT); } } void loop() { for(int i=2;i<9;i++) { digitalWrite(i,HIGH); delay(1000); } }
  • 46.
    Void loop(){ While (condition){ }//si la condition est vrai on entre dans la boucle } void setup() { Serial.begin(9600); } void loop() { delay(2000); Serial.println("el barra"); while(digitalRead(3)==HIGH) { delay(2000); Serial.println("el da5l"); } }
  • 47.
  • 48.
    Un capteur estun dispositif qui détecte ou mesure une grandeur physique et convertit cette information en un signal utilisable, généralement électrique. QU’EST CE QU’UN CAPTEUR ?
  • 52.
    3 ÈME APPLICATION: RÉSISTANCES PULL- DOWN ET PULL-UP
  • 53.
    L'objectif est decomprendre la différence entre pull-up et pull-down.
  • 54.
  • 57.
    #define trig 11 #defineecho 13 int t=0; int d=0; void setup() { pinMode(trig,OUTPUT); pinMode(echo,INPUT); Serial.begin(9600); } void loop() { digitalWrite(trig,0); delayMicroseconds(5); digitalWrite(trig,1); delayMicroseconds(10); digitalWrite(trig,0); delayMicroseconds(5); t=pulseIn(echo,HIGH); //t en micros d=(0.0343*t)/2;//d en cm Serial.println(d); }
  • 58.
    APPLICATION: LED S’ALLUME ETS’ÉTENINT AUTOMATIQUEMENT EN UTILISANT LDR
  • 61.
    float volt=0; void setup() { Serial.begin(9600); } voidloop() { valeurnum=analogRead(A0); volt=(5.0*valeurnum)/1023.5; Serial.println(volt); delay(1000); if (volt>0.4) {digitalWrite(7,LOW );} else {digitalWrite(7,HIGH); } }
  • 62.
  • 64.
    // Inclusion dela bibliothèque LiquidCrystal pour contrôler l'afficheur LCD #include <LiquidCrystal.h> // Création d'un objet "lcd" basé sur la bibliothèque LiquidCrystal // Les paramètres sont les broches de l'Arduino connectées aux broches de l'afficheur LCD // (RS, E, D4, D5, D6, D7) LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // Initialisation de l'afficheur avec 16 colonnes et 2 lignes (afficheur 16x2) lcd.begin(16, 2); // Affichage du texte "Hello, world!" sur la première ligne de l'afficheur LCD // Le curseur est automatiquement positionné sur la première ligne, première colonne lcd.print("Hello, world!"); } void loop() { // La boucle loop() tourne continuellement, mais ici, aucune mise à jour n'est effectuée // Le texte reste affiché tel quel. //Vous pouvez utiliser cette section pour rafraîchir l'affichage ou ajouter des interactions. }
  • 67.
    // Inclusion dela bibliothèque LiquidCrystal pour contrôler l'afficheur LCD #include <LiquidCrystal_I2C.h> // Bibliothèque pour l'afficheur LCD I2C LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C 0x27, écran 16x2 void setup() { // Initialiser l'écran de l'afficheur LCD : lcd.init(); // Initialisation de l'écran LCD lcd.backlight(); // Activer le rétroéclairage } void loop() { // La boucle loop() tourne continuellement, mais ici, aucune mise à jour n'est effectuée // Le texte reste affiché tel quel. //Vous pouvez utiliser cette section pour rafraîchir l'affichage ou ajouter des interactions. }
  • 68.
  • 69.
  • 70.
  • 71.
  • 77.
  • 80.
    LE MOTEUR PASÀ PAS :
  • 85.
    Le moteur pasà pas 28BYJ-48 avec le driver ULN2003
  • 86.
    // Définition desbroches #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 // Temps de retard entre les étapes int delayTime = 10; void setup() { // Initialisation des broches en mode sortie pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); void loop() { // Faire tourner le moteur dans un sens for (int i = 0; i < 512; i++) { // 512 étapes pour un tour complet stepMotor(1); } delay(1000); // Pause de 1 seconde // Faire tourner le moteur dans l'autre sens for (int i = 0; i < 512; i++) { stepMotor(-1); } delay(1000); // Pause de 1 seconde }
  • 87.
    void stepMotor(int direction) {if (direction > 0) { // Séquence pour tourner dans le sens horaire digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); delay(delayTime); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); delay(delayTime); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); delay(delayTime); } else { // Séquence pour tourner dans le sens antihoraire digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); delay(delayTime); digitalWrite(IN1, LOW);
  • 88.
  • 90.
  • 94.
  • 96.
  • 101.
  • 105.
  • 107.
    /// Définir lesbroches pour le BTS7960 #define RPWM 9 // Broche PWM pour le sens droit #define LPWM 10 // Broche PWM pour le sens gauche #define R_EN 8 // Activation du côté droit du driver #define L_EN 7 // Activation du côté gauche du driver void setup() { // Configurer les broches comme sorties pinMode(RPWM, OUTPUT); pinMode(LPWM, OUTPUT); pinMode(R_EN, OUTPUT); pinMode(L_EN, OUTPUT); // Activer les deux côtés du driver digitalWrite(R_EN, HIGH); digitalWrite(L_EN, HIGH); }
  • 108.
    int relayPin=2; void setup() { pinMode(rel ayPin,OUTP UT); } void loop() { //TurnON relay digitalWrite(r elayPin,HIGH ); //Turn OFF relay
  • 109.
    void loop() { //Faire tourner le moteur dans un sens analogWrite(RPWM, 255); // Vitesse maximale dans un sens analogWrite(LPWM, 0); // Arrêt du sens opposé delay(2000); // Faire tourner pendant 2 secondes // Arrêter le moteur analogWrite(RPWM, 0); analogWrite(LPWM, 0); delay(1000); // Pause de 1 seconde // Faire tourner le moteur dans l'autre sens analogWrite(RPWM, 0); // Arrêt du premier sens analogWrite(LPWM, 255); // Vitesse maximale dans l'autre sens delay(2000); // Faire tourner pendant 2 secondes // Arrêter le moteur analogWrite(RPWM, 0); analogWrite(LPWM,
  • 110.