52 5 2MB
UNIVERSITE DE GAFSA FACULTE DES SCIENCES DE GAFSA
Compte rendu
TP INFORMATIQUE : Arduino
Elaboré par : Radhwen DALY HAMDOUNI Encadré par : Sami HIDOURI
Classe : 1er année mastère mécatronique Groupe 3
Année universitaire 2020 – 2021 1
Sommaire But ……………………………………………………………………………………………………………………………………………………………………………..3 I.
II.
C’est quoi l’arduino : ........................................................................................................................................... 3 A.
Description de la carte Arduino Uno ................................................................................................................ 3
B.
Principe de fonctionnement ............................................................................................................................ 6
C.
Structure d'un programme, langages utilisés ................................................................................................... 6 SOUS LE SIMILATEUR TINKERCARD : .................................................................................................................. 10 1.
Le circuit d’une Led clignotant :................................................................................................................. 10
2.
Le circuit de 4 Led clignotant :.................................................................................................................... 11
3.
Détecteur de gaz :...................................................................................................................................... 12
4.
Eclairage avec photorésistance : ................................................................................................................ 14
5.
Détecteur de Gaz avec afficheur Lcd : ........................................................................................................ 17
2
BUT : Dans ce travail pratique, nous maîtriserons le simulateur tinkercad et ferons la programmation et la création des schémas des circuits. Le simulateur Arduino est disponible à cette adresse: https://www.tinkercad.com. Il permet la réalisation des chémas d'implantation des composants sur les platines d'expérimentation, tout comme Fritzing ,mais aussi la réalisation des chémas et de circuits électroniques.
I.
C’est quoi l’arduino :
Arduino est la marque d'une plateforme de prototypage open source qui permet aux utilisateurs de créer des objets électroniques interactifs à partir de cartes électroniques matériellement libres sur lesquelles se trouve un microcontrôleur (d'architecture Atmel AVR commence l'Atmega328p, et d'architecture ARM commence le Cortex-M3 pour l'Arduino Due). Les schémas de ces cartes électroniques sont publiés en licence libre. Cependant, certaines composantes, comme le microcontrôleur par exemple, ne sont pas sous licence libre. Le microcontrôleur peut être programmé pour analyser et produire des signaux électriques, de manière à effectuer des tâches très diverses comme la domotique (le contrôle des appareils domestiques éclairage, chauffage…), le pilotage d'un robot, de l'informatique embarquée, etc. A.
Description de la carte Arduino Uno
Il existe de nombreux modèles de cartes Arduino, la plus populaire étant probablement la Uno. L’image ci-dessous vous donne un aperçu de l'organisation de la carte (dimensions : 65 x 52 mm) dans sa version Uno.
3
Elle emploi un microcontrôleur ATMEGA328P alimenté en 5V. Il y a 14 entrées/sorties numériques dont 6 sont utilisables en PWM (Pulse Width Modulation ou MLI pour modulateur de largeur d’impulsion). Il y a 6 entrées analogiques. Le microcontrôleur possède un CAN avec 10 bits de résolution.
Sur la carte, il y a un circuit qui permet de gérer facilement l’USB qui peut alimenter la carte. C'est une carte électronique open source, constituée essentiellement de :
un microcontrôleur fabriqué par Atmel, un port USB, des connecteurs d'entrés/sortie (plus ou moins nombreux selon les modèles).
L'open hardware, par analogie à l'open software, permet de partager les plans pour pouvoir répliquer, améliorer, comprendre un dispositif matériel. 4
Arduino, c'est aussi un IDE (disons plutôt un éditeur de code) qui permet d'envoyer les programmes sur la carte à travers un port USB.
Aussi on peut alimenter une arduino sans usb avec un Connecteur de Pile 9V Type de fiche: 2.1x5.5mm prise male DC vers 9V, Matériel (externe):plastique, Couleur: Noir, Rouge, Longueur de câble:12cm.
5
Aussi on peut alimenter une arduino sans usb avec un Bloc alimentation 12V Cette alimentation vous permet d'alimenter n'importe quel projet nécessitant 12V sous 1A maximum.
B.
Principe de fonctionnement
Le principe, rapidement évoqué dans la toute première phrase, est d'utiliser les pins (i.e. les connecteurs numérotés que l'on peut voir sur la photo) pour lire ou écrire des informations. Les informations sont de très bas niveau, vu que c'est un signal soit de 5 V, soit de 0 V. Un bit, quoi. Tout juste de quoi faire clignoter un LED (spoiler : c'est ce que nous allons faire tout de suite). Nous verrons plus tard que des protocoles de communication sont à notre disposition pour ne pas se taper l'écriture des bits un par un sur un pin. Mais vous l'aurez compris, globalement, on va être dans de la programmation de bas niveau. C.
Structure d'un programme, langages utilisés
nous allons écrire notre premier programme ! Le but ? Faire clignoter une LED sur la carte. Ben oui, il faut commencer petit pour bien saisir la structure d'un programme dans cet environnement. Le programme principal consiste en deux fonctions (ce sera toujours le cas), dont voici les signatures ultra simples :
void setup() void loop() 6
o setup() est appelée une seule fois, au moment de la mise sous tension de la carte. o loop() est appelée, comme son nom l'indique, en boucle. Elle est lancée après setup(), et tourne à fond à l'infini (tant que la carte est alimentée en tout cas). Le langage de programmation utilisé est au choix le C, mais pour sa relative simplicité par rapport au C pur. Donc pour reprendre sur notre programme de base, on a quelque chose comme ça : void main(){ setup(); while(true) loop(); }
En pratique, nous n'implémenterons que les deux fonctions setup() et loop(). Le main() est généré par le compilateur. Allez, assez discuté, passons à notre programme, le grand classique B link: int led = 13; void setup() { pinMode(led, OUTPUT); }
// Définit la pin 13 comme pin de sortie
// the loop routine runs over and over void loop() { digitalWrite(led, HIGH); // Allume delay(1000); // Attend digitalWrite(led, LOW); // Eteint delay(1000); // Attend }
again forever: la LED une seconde la LED une seconde
Dans ce programme, on fait usage de 3 fonctions de la librairie standard :
pinMode(pinNumber, mode) : définit le mode de fonctionnement d'une pin. À la louche, soit INPUT, soit
OUTPUT ;
digitalWrite(pinNumber, value) : si la pin est définie en OUTPUT, cette instruction permet d'écrire 1 ou 0.
Si on mesure avec un voltmètre la tension entre la pin et la masse, on aura +5 V ou 0 V. HIGH et LOW sont des constantes prédéfinies, mais 1 ou 0 fonctionneraient aussi ; delay(ms) : cette instruction bloque l'exécution du programme (de tout le programme) pendant une durée donnée en millisecondes.
La pin 13 est très pratique, car elle est reliée à une LED intégrée à la carte. Du coup, dès qu'on active ou désactive la 13, une petite LED orange s'allume ou s'éteint. Dans la partie précédente on a déjà vu c’est quoi l’arduino, leur language de programmation, comment créer un simple programme. Dans la partie suivante on va faire la simulation de plusieurs programmes sous le software Tinkercard.
7
Le matériel de ce travail : -
Circuit arduino uno.
Arduino UNO est la meilleure carte à utiliser avec l'électronique et les codecs. S'il s'agit de votre première expérience avec la plate-forme, UNO est le tableau le plus puissant avec lequel vous pouvez commencer à travailler. UNO est la carte la plus utilisée et la plus documentée pour toute la famille Arduino. -
Led.
La LED est un composant opto-électronique. Cela veut simplement dire qu’il s’agit d’un composant électronique capable d’émettre de la lumière lorsqu’il est parcouru par un courant électrique. Une diode électroluminescente ne laisse passer le courant électrique que dans un seul sens – de l’anode vers la cathode (le sens passant, comme une diode classique, l’inverse étant le sens bloquant) de plus elle produit un rayonnement monochromatique ou polychromatique incohérent à partir de la conversion d’énergie électrique lorsqu’un courant la traverse.
8
-
Buzzer.
Le buzzer est un composant constitué essentiellement d'une lamelle réagissant à l'effet piézoélectrique. La piézoélectricité est la propriété que possèdent certains minéraux de se déformer lorsqu'ils sont soumis à un champ électrique. Ce phénomène est réversible ; si nous déformons ce minéral, il produit de l'énergie électrique. Dans l'univers Arduino, le buzzer est principalement utilisé pour émettre un son. -
Capteur de Gaz.
Le MQ-2 est un capteur qui permet de détecteur du gaz ou de fumée à des concentrations de 300 ppm à 10000 ppm. Après calibration, le MQ-2 peut détecter différents gaz comme le GPL (LPG), l’ibutane, le propane, le méthane, l’alcool, l’hydrogène ainsi que les fumées. Il est conçu pour un usage intérieur à température ambiante. -
Capteur de luminosité.
9
Un capteur de luminosité (ou photorésistance) est un composant électronique, dont la résistivité varie suivant le niveau de luminosité.
Nous utilisons le Lux comme unité de mesure du flux lumineux.
Plus l’éclairement sera intense, plus la tension au borne de la photorésistance sera grande.
II.
SOUS LE SIMILATEUR TINKERCARD :
1.
Le circuit d’une Led clignotant :
Programme :
10
2.
Le circuit de 4 Led clignotant :
Les quatre LED sont allumés et s'atteints successivement chacun avant l'autre puis faire la répétition de cycle.
Programme :
11
3.
Détecteur de gaz :
1er cas : le capteur ne détecte pas la fumée.
2éme cas : le capteur détecte la fumée.
12
Programme :
13
4.
Eclairage avec photorésistance :
1er cas : le capteur détecté la lumière, Led ne s’allume pas.
2éme cas : le capteur ne pas détecté la lumière, Led allume.
14
Programme : // Initialisation des constantes : const int analogInPin = A0; // Numéro de la broche à laquelle est connecté le photorésistance const int analogOutPin = 8; // Numéro de la broche à laquelle est connectée le buzzer piezo-electrique int sensorValue = 0;
// Valeur lue sur le photorésistance
int outputValue = 0;
// Valeur envoyée au buzzer
void setup() { // Initialise la communication avec l'ordinateur, // pour afficher les valeurs sensorValue et outputValue // sur l'écran de l'ordinateur. Serial.begin(9600); // Indique que la broche analogOutPin est une sortie : pinMode(analogOutPin, OUTPUT); // Indique que la broche analogInPin est une entrée : pinMode(analogInPin, INPUT); } void loop() { // La commande suivante lit la valeur "analogique" du photorésistance // (une valeur entière comprise entre 0 et 1023) // et stocke le résultat dans sensorValue : sensorValue = analogRead(analogInPin); // La valeur lue (comprise entre 0 et 1023) // doit être interprétée et traduite en fréquence // (comprise entre 50 Hz à 30 000 Hz). // La commande suivante change sensorValue vers // un intervalle de 50 Hz à 30 000 Hz // et stocke le résultat dans outputValue : outputValue = map(sensorValue, 0, 1023, 0, 255); 15
outputValue = (outputValue - 255)*-1; // La commande suivante envoie de cette nouvelle // valeur sur le buzzer analogWrite(analogOutPin, outputValue); // Les commandes suivantes affichent les valeurs dans // le "serial monitor" de l'ordinateur Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); }
16
5.
Détecteur de Gaz avec afficheur Lcd :
1er cas : S'il n’y a pas de gaz, le programme affiché SAFE dans l’écran de Lcd avec l’allumage de La LED vert.
2éme cas : S'il y a de gaz, le programme affiché ALERT dans l’écran de Lcd et le buzzer sonne avec l’allumage de La LED rouge.
17
Programme :
18