PROGRAMMER AVEC ARDUINO
EXEMPLE1 MODULE LED
Retour à la liste
But : Allumer ou éteindre une LED selon le schéma électrique suivant :
Pour réaliser ce montage, nous aurons besoin de :
• Un Arduino
• Une plaque d’essai
• Une résistance de 170Ω
• Une LED de votre couleur préférée connecté à la pin D13 de l’Arduino
• Quelques fils de prototypage
La LED est connectée à D13
Remarque : Les montages ont été réalisé avec Fritzing
Code source
int pinLed=13; //variable pour le numéro du pin utilisé
void setup()
{
pinMode(pinLed,OUTPUT); //le pin 13 en mode sortie de
courant
}
void loop()
{
digitalWrite(pinLed,HIGH); // on passe le pin à +5V
delay (1000); // attendre 1 seconde
digitalWrite(pinLed,LOW); // on passe le pin à 0V
delay(1000);
}
EXEMPLE 2 : FEU DE CAREFOUR
Retour à la liste
But : Maintenant, , on va ajouter deux autres Leds.
Pour cela, on utilise les résistances suivantes :
LedR >>R = ( 5 - 1,6 ) / 0,02 = 170 Ohms
LedG >>R = ( 5 –2,1 ) / 0,02 = 145 Ohms
LedO >>R = ( 5 –2,1 ) / 0,02 = 145 Ohms
On va essayer de réaliser un chenillard avec ces trois leds
Code source
int ledR = 3;
int ledG = 4;
int ledO = 5;
void setup()
{
// initialize the digital pin as an output.
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledO, OUTPUT);
}
void loop()
{
digitalWrite(ledR, HIGH); // allumer la led rouge
delay(1000); // attendre 1 seconde
digitalWrite(ledR, LOW); // eteindre la led rouge
delay(1000); // attendre 1 seconde
digitalWrite(ledG, HIGH); // allumer la led verte
delay(1000); // attendre 1 seconde
digitalWrite(ledG, LOW); // eteindre la led verte
delay(1000); // attendre 1 seconde
digitalWrite(ledO, HIGH); // allumer la led orange
delay(1000); // attendre 1 seconde
digitalWrite(ledO, LOW); // eteindre la led orange
delay(1000); // attendre 1 seconde
}
Retour à la liste
Exemple3 : Bouton poussoir
Retour à la liste
But : Allumer ou éteindre deux LEDs selon l’appui d’un bouton poussoir.
Le bouton poussoir est connecté a la pin 2 suivant ce circuit :
Retour à la liste
nn But : Lecture de la valeur d’un potentiomètre.
Le potentiomètre est connecté au pin A0 suivant ce circuit :
On pourra récupérer la valeur du potentiomètre et s'en servir comme temps
d'attente pour l'allumage et l'extinction d’une Led.
Code source
int pinPot=0; //variable pour le CAN utilisé
int valPot=0; //variable qui va stocker la tension lue. On l'initialise
à 0.
int pinLED=8; // pin de connexion de la LED
void setup()
{
pinMode(pinLED,OUTPUT); //Mode OUTPUT pour le pin de LED
digitalWrite(pinLED,HIGH);//On allume la LED
}
void loop()
{
valPot=analogRead(A0); //lit la valeur de tension, la transforme
et la stocke dans la variable
int attente=valPot; //le délai d'attente est la valeur du
potentiomètre
digitalWrite(pinLED,HIGH); //on allume la LED
delay(attente); //on attend en fonction de la variable attente
digitalWrite(pinLED,LOW); //on éteint la LED
delay(attente); //on attend
}
EXEMPLE 4 LECTURE D’UNE ENTREE ANALOGIQUE VIA UN BOUTON POUSSOIR
Retour à la liste
Code source
/*
le bouton poussoir est connecté au pin 2 avec une résistance pull-
down de 10KΩ
les LED sont connectées au pins 4 et 6 avec des résistances de
220Ω
*/
//déclaration des variables
int pinBouton;
int pinLed1, pinLed2;
void setup()
{
//initialisation des variables
pinBouton = 2;
pinLed1 = 4;
pinLed2 = 6;
//définition des modes
pinMode(pinBouton, INPUT); //mode lecture pour le bouton
pinMode(pinLed1, OUTPUT); //mode écriture pour led1
pinMode(pinLed2, OUTPUT); //mode écriture pour led2
}
void loop()
{
//lecture de l'état du bouton et stockage dans etatBouton
boolean etatBouton = digitalRead(pinBouton);
//test des conditions
if (etatBouton==HIGH)//test si bouton appuyé
{
digitalWrite(pinLed1,LOW); //led1 éteinte
digitalWrite(pinLed2,HIGH); //led2 allumée
}
if (etatBouton==LOW)//test si bouton levé
{
digitalWrite(pinLed1,HIGH); //Led1 allumée
digitalWrite(pinLed2,LOW); //led2 éteinte
}
delay(100); //petite attente
}
Retour à la liste
Exemple5 : Commande d'un servomoteur
Retour à la liste
But: On va maintenant utiliser la carte Arduino pour piloter la rotation d’un
servomoteur Un servomoteur est un moteur dont on peut commander la
position angulaire, de 0° à 180° avec précision.
Schéma électrique du montage :
Code source
#include <Servo.h> //on importe la bibliothèque Servo
Servo myservo; // on définit un objet Servo nommé myServo
int pos = 0; // variable pour stocker la position du servo
void setup()
{
myservo.attach(8); // on relie l'objet au pin de commande
}
void loop()
{
for (pos = 0; pos<= 180; pos += 1) { // //on fait varier l'angle de 0 à
180° par tranche de 1°
myservo.write(pos); // on dit à l'objet de mettre
le servo à 'pos'
delay(15); // attendre 15ms pour laisser le temps
au servo d'aller à sa position
}
}
Retour à la liste
Exemple6 : Photorésistance LDR
Retour à la liste
But: On va maintenant utiliser la carte Arduino pour affficher la valeur d’une
LDR en pourcentage.
La photorésistance est une résistance qui varie en fonction de la luminosité. La
carte renvoie
un nombre compris entre 0 (absence de lumière) et 1023 (luminosité
maximum). Le principe est assez simple : plus il y a de lumière, plus la
résistance est basse. L'obscurité provoque une résistance importante.
Schéma électrique du montage :
Code source
int pinPR=A0; //pin de connexion pour la photorésistance
int valMin=1024; // on initialise la valeur minimale au plus haut
int valMax=0; // et la valeur maximale au plus bas
void setup()
{
Serial.begin(9600);
}
void loop()
{
int valeur=analogRead(pinPR); // on lit la valeur transmise par
la photorésistance
if (valeur>valMax) //on compare avec valMax
valMax=valeur; // on modifie valMax
if (valeur<valMin) // on compare avec valMin
valMin=valeur; // on modifie valMin
int pourcentage=map(valeur,valMin,valMax,0,100);
//pourcentage entre les bornes
//Séquence d'affichage
Serial.print("Valeur : ");
Serial.print(valMin);
Serial.print(" < ");
Serial.print(valeur);
Serial.print(" < ");
Serial.print(valMax);
Serial.print(" soit : ");
Serial.print(pourcentage);
Serial.println(" %");
}
Retour à la liste