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
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).
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
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
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 .
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.
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.
Void setup (){
Serial.begin(9600);
Serial.print(‘ cela sera affiché
une seul fois‘) ;
}
Void loop(){
Serial.print(‘ cela sera affiché
plusieurs fois‘) ;
}
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");
}
}
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 ?
// 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.
}
// 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);
/// 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);
}
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,