Vous êtes sur la page 1sur 20

Programmation Arduino

Carte arduino
❑Présentation de la carte arduino

▪ Un microcontrôleur ATmega328P cadencée à 16Mhz.


▪ 32ko de mémoire flash destinée à recevoir le programme, 2ko de SRAM (mémoire vive) et 1 ko
d’EEPROM (mémoire morte destinée aux données).
▪ 14 pins (broches) d’entrée/sortie numérique (données acceptée 0 ou 1) [2] dont 6 pouvant générer des
PWM (Pulse Width Modulation, détaillé plus tard).
▪ 6 entrées analogiques [3].
▪ Chaque broche est capable de délivré un courant de 40mA pour une tension de 5V.
▪ Alimenter et communiquer avec un ordinateur grâce à son port USB [4].
▪ Alimenter avec unes alimentions comprise en 7V et 12V grâce à sa connecteur Power Jack [5].
❑Domaine d’application

•Un robot mobile capable d'éviter les obstacles ou de suivre une ligne au sol ;
•Une interface entre votre téléphone mobile et les éclairages de votre maison ;
•Des afficheurs d'informations à base de textes défilants sur des panneaux à LEDs ;
•Une station météorologique consultable sur le Web ;
•Un pilote de caméra de surveillance.
De plus en plus utilisé dans le monde de l'éducation,
Apprécié dans le cadre des technologies embarquées,
❑ Le langage arduino

le langage Arduino est inspiré de plusieurs langages. On retrouve notamment des


similarités avec le C, le C++. Le langage impose une structure particulière typique de l’informatique
embarquée.
❑ setup()
▪ Appelée une seule fois lorsque le programme commence.
▪ Dans cette fonction que l’on va écrire le code qui n’a besoin
d’être exécuté une seule fois.
▪ Cette fonction contiendra toutes les opérations nécessaires à
la configuration de la carte (directions des entrées sorties,
débits de communications série.).

On appelle cette fonction : fonction d’initialisation.

❑ loop()
▪ écrire le contenu du programme.
▪ cette fonction est appelée en permanence, c’est-à-dire
qu’elle est exécutée une fois, puis lorsque son
exécution est terminée, on la ré-exécute et encore et
encore.

On parle de boucle infinie


❑ Les entrées sorties

Fonction Rôle
pinMode(1,OUTPUT) Broche 1 en sortie
pinMode(2,INPUT) Broche 2 en entrée
digitalRead(pin) mesure une donnée numérique sur une
des broches
digitalWrite(pin, value) écrit une donnée numérique sur une
des broches
analogRead(pin) mesure une donnée analogique sur une
des broches
analogWrite(pin, value) écrit une donnée
❑ Exemple 1:

void setup()
{
pinMode(pinLed, OUTPUT); // Broche 13 en sortie
}
void loop()
{
delay(500); // Attente d'une demi seconde
digitalWrite(pinLed, HIGH); // Allumage de la LED
delay(500);
digitalWrite(pinLed, LOW); // Eteignage de la LED
}
Instruction conditionnelle

❖ Instructions conditionnelles
• Instruction if

if (condition) { //statement(s) }

• Instruction else

if (condition1)
{ // do Thing A }
else if (condition2)
{ // do Thing B }
else
{ // do Thing C }
❑ Exemple 2 :
Le but est d’allumer une LED, si un bouton est enfoncé. Pour le câblage du bouton, il est
nécessaire d’y mettre en série une résistance relié à la masse. Cela à pour but d’éviter les
court circuits lorsque le bouton est enfoncé.

▪ description du programme

•Le LED est éteint.


• si on appuis sur le bouton le LED s'allument.
•Si on relâche le bouton le LED s’éteint,
Instruction conditionnelle

❖ Instructions conditionnelles
• Instruction if

if (condition) { //statement(s) }

• Instruction else

if (condition1)
{ // do Thing A }
else if (condition2)
{ // do Thing B }
else
{ // do Thing C }
Instruction conditionnelle
#include <Servo.h>
Servo Servo1;

Partie setup
// assignement de pin
Servo1.attach(numéro de pin choisie);
// Création d’un objet
Partie loop
//variation l’angle de rotation
Servo1.write(valeur de l’angle de rotation);
//lecture de la valeur de pin
PotVal=analogRead(PotPin);
//conversion de valeur de pot
angle=map(PotVal,0,1023,0,179);
// commander le cerveau moteur
myServo.write(angle);
▪ Mesure de la distance

o Les capteurs infrarouges:


• Ils Ont l’avantage d’être bon marché, relativement précis et disponibles à peu près partout.
• Ils sont très sensibles à la lumière ambiante et au coefficient de réflexion lumineuse de la surface en
face du capteur.
o Les capteurs laser
• Ils sont extrêmement précis, mais aussi extrêmement chers. Un capteur de distance laser (par mesure
de temps de parcours) coûte facilement plus de 200€, mais fait des mesures à plus de 30 mètres sans
problème pour certains modèles.
o Les Capteur de distance à ultrason
• utilise le même principe qu’un capteur laser,
• utilisant des ondes sonores (inaudible) au lieu d’un faisceau de lumière. Ils sont bien moins chers qu’un
capteur laser, mais aussi bien moins précis.
• la lumière ambiante et l’opacité de la surface en face du capteur ne jouent pas sur la mesure.
❑ Capteur Ultrason

▪ Un son est une vibration mécanique d'un fluide (tel que l'air) et qui se propage sous
forme d'onde. Seules une partie des fréquences sont perceptibles par l'oreille
humaine, le spectre sonore. Les sons à fréquence très basse sont appelés « infrasons »
alors que les sons à très haute fréquence sont appelés « ultrasons ».
▪ Les capteurs à ultrasons sont conçus pour détecter la proximité des objets en utilisant
la réflexion des ultrasons, tout comme les radars. Le principe consiste à calculer la
distance de l'obstacle à partir du temps mis par l'onde sonore pour faire le trajet aller
puis le retour jusqu'au capteur après réflexion de l'onde sur l'obstacle. Les ultrasons
sont principalement utilisés, car ils sont inaudibles à l'oreille humaine et sont
relativement précis sur de courtes distances.
▪ Branchement :
• une broche (Gnd), utilisée pour mettre le module à la masse (0 V) ;
• une broche de sortie (Echo), utilisée pour informer de la fin de l'émission du train d'ultrasons
et de son retour après réflexion sur l'obstacle ;
• une broche d'entrée (Trig pour Trigger), utilisée pour déclencher l'émission du train
d'ultrasons ;
• une broche (Vcc), utilisée pour alimenter le capteur en 5 V.
❑ Principe de fonctionnement

1.On envoie une impulsion HIGH de 10µs sur la broche TRIGGER du capteur.
2.Le capteur envoie alors une série d’impulsions ultrasoniques à 40KHz (inaudible pour
l'être humain).
3.Les ultrasons se propagent dans l'air jusqu'à toucher un obstacle et retourne dans l'autre
sens vers le capteur.
4.Le capteur détecte l'écho et clôture la prise de mesure.
Le signal sur la broche ECHO du capteur reste à HIGH durant les étapes 3 et 4, ce qui permet
de mesurer la durée de l'aller-retour des ultrasons et donc de déterminer la distance
/* Constantes pour le timeout */
const unsigned long timemax= 25000UL; // 25ms = ~8m
à 340m/s
/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000; Fonction Rôle
/* Initialise le port série */
pinMode(1,OUTPUT) Broche 1 en sortie
Serial.begin(9600);
/*Calcule de duré de l’implusion */ pinMode(2,INPUT) Broche 2 en entrée
pulseIn(PIN, etat, MEASURE_TIMEOUT); digitalRead(pin) mesure une donnée
/*afficher une chaine */ numérique sur une des
Serial.print(F()) broches
/*afficher une valeur*/
digitalWrite(pin, value) écrit une donnée numérique
Serial.print(val)
sur une des broches
analogRead(pin) mesure une donnée
analogique sur une des
broches
analogWrite(pin, value) écrit une donnée

Vous aimerez peut-être aussi