TP : Introduction au circuit Arduino
C'est quoi Arduino ?
Notions d'électroniques (Courant électrique, Led, résistance..)
Programmation d'arduino
Les sorties digitales (Leds ..)
Les entrées digitales ( boutons ..)
Les entrées analogiques ( capteurs, résistances..)
La PWM ( commande d'un moteur)
La liaison série
Comment commander les sorties ?
Exemple allumer une LED
LED = Light Emitting Diode
DEL = Diode ElectroLuminescente
5+V
GND = Masse = 0 V
Le courant passe de A vers K ( Anode vers Cathode)
Pas de courant qui circule
5V
Le courant nécessaire pour allumer une LED est d'environ 20mA, il
faut donc ajouter une résistance en série avec la LED pour limiter le
courant et éviter de griller la LED ou la carte électronique
1,2 V
5V 5 – 1,2
=
3,8 V
Au bornes de R on I = V/R = 3,8 / R
Si on veut I = 20 mA par exemple, il faut R = 3,8 / 20 ( Kilo ohms)
R = 0,19 Kilo ohms (190 ohms)
Pour allumer la LED il faut envoyer le bit "0" sur la sortie D2
c à d " volts"
5V
void setup() //fonction d'initialisation de la carte
{
//contenu de l'initialisation
}
void loop() //fonction principale, elle se répète (s’exécute) à 'infini
//contenu de votre programme
}
const int led_rouge = 2; //définition de la broche 2 en tant que variable
void setup() //fonction d'initialisation de la carte
{
pinMode(led_rouge, OUTPUT); //initialisation de la broche 2 comme étant une sortie
}
void loop() //fonction principale, elle se répète (s’exécute) à l'infini
{
digitalWrite(led_rouge, LOW); // écriture en sortie (broche 2) d'un état BAS
}
Exercice : Faites un programme qui fait clignoter la LED
LOW : état bas 0 Volts
HIGH état haut 5 volts
Delay (x) : pour attendre x millisecondes
Exercice :
Faites un programme qui fait
clignoter la LED
LOW : état bas 0 Volts
HIGH état haut 5 volts
Delay (x) : pour attendre x
millisecondes
const int led_rouge = 2;
void setup()
{
pinMode(led_rouge, OUTPUT);
}
void loop()
{
digitalWrite(led_rouge, LOW);
delay(1000);
digitalWrite(led_rouge, HIGH);
delay(1000);
}
Exercice : On permute les fils du circuit entre +5 V et la masse,
Faites un programme qui allume la lampe en continu
Faire clignoter plusieurs LEDs, on prendra 3 LEDS
L'organigramme du programme
Réaliser un chenillard
// on garde le même début que le programme
précédent
const int L1 = 2; //broche 2 du micro-
contrôleur se nomme
maintenant : L1
const int L2 = 3; //broche 3 du micro-
contrôleur se nomme
maintenant : L2
const int L3 = 4; // ...
const int L4 = 5;
const int L5 = 6;
const int L6 = 7;
void setup()
{
pinMode(L1, OUTPUT); //L1 est une broche de
sortie
pinMode(L2, OUTPUT); //L2 est une broche de
sortie
pinMode(L3, OUTPUT); // ...
pinMode(L4, OUTPUT);
pinMode(L5, OUTPUT);
pinMode(L6, OUTPUT);
}
Réaliser un système de gestion des feux d'un carrefour
Vers une entrée d'ARDUINO
Problème de Rebondissement
On ajoute un condensateur en
// avec le bouton
Pour filtrer les perturbations
Exercice : Réaliser un barregraphe
On aligne les LEDs sous forme d'une barre
On appuie sur le bouton 1 la barre allumée augmente
On appuie sur le bouton 2 la barre allumée diminue
Programmes utiles
Inverser l'état d'une diode
int led = 13;
int etat = LOW;
void setup()
{
pinMode(led,OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(led,etat);
delay(3000);
etat = !etat;
Serial.println(etat);
}
Lire un potentiometre
int capteur_Pin = A0;
int capteur_valeur = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
Capteut_valeur = analogRead(capteur_Pin);
Serial.print("capteur= ");
Serial.println(capteutr_valeur, DEC);
delay(10);
}
Pour envoyer depuis Arduino vers le PC
via le port série
void setup() // cette fonction
s'exécute une seule
{
Serial.begin(9600); // set up Serial
library at 9600 bps
Serial.println("Bonjour, c'est mon premier
message envoye par mon arduino"); // affiche
le texte avec un retour à la ligne à la fin
void loop() // la boucle qui
s'éxécute indéfiniment
{
// Ici le programme ne fait
rien
}
Lecture et écriture sur port série
byte byteRead;
void setup() {
// Turn the Serial Protocol ON
Serial.begin(9600);
}
void loop() {
/* check if data has been sent from the
computer: */
if (Serial.available()) {
/* read the most recent byte */
byteRead = Serial.read();
/*ECHO the value that was read, back to the
serial port. */
Serial.println(byteRead);
Serial.write(byteRead);
}
}