Cours:ArduinoPlaqueEssais
Sommaire
Quelques leds
Nous utiliserons lors de ce TP 2 leds (verte et rouge) qui resteront donc connectées jusqu'à la fin.
Calculer la valeur de la résistance avec les données suivantes :
- On prendra Vf = 2 V (tension directe (Forward) aux bornes de la led : lorsqu'elle s'éclaire)
- On souhaite If = 10 mA (intensité du courant dans la led)
- On rappelle que la tension d'alimentation arduino UNO est de 5V => cette tension représente donc un niveau logique '1'
Câbler alors ces leds sur la carte de la façon suivante :
| Couleur | Pin arduino |
|---|---|
| Rouge | 8 |
| Verte | 9 |
Écrire (et vérifier !) un programme tel que :
- les leds sont allumées en alternance
- chaque led reste allumée pendant 500ms
Grandeur analogique
Dans le premier tp, nous avons utilisé uniquement des entrées/sorties binaires. Nous allons découvrir ici les mesures analogiques.
Une explication du monde analogique peut se trouver sur wikipedia au besoin.
Affichage sur liaison série
Afin de pouvoir afficher les valeurs lues, mais également pour écrire des programmes plus complexes, nous allons utiliser la liaison série.
Vous allez découvrir le principe de la liaison série sur le site ladyada.
Lire/comprendre/exécuter les programmes jusqu'à la partie Pythagore.
Rque : Il convient de terminer la lecture de la page pour les prochains TPs
Mesure analogique, principe
La page dédiée du site arduino donne quelques détails sur l'utilisation et les caractéristiques du convertisseur analogique-numérique de la carte arduino UNO.
| Syntaxe | val = analogRead(arduinoPin) | ||||
|---|---|---|---|---|---|
| Paramètres |
|
Le code suivant donne la structure minimum permettant d'utiliser le Convertisseur Analogique Numérique
const char analogPin = A0;
unsigned int analogVal;
void setup()
{
}
void loop()
{
// lecture de la tension sur la patte "analogPin"
analogVal = analogRead(analogPin);
// utilisation de cette valeur
}
Mesure de luminosité
Vérification du fonctionnement
Connecter la photorésistance (LDR) tel qu'indiqué sur la figure. Vous utiliserez l'entrée analogique A5.
Écrire un programme qui lit la valeur de la tension aux bornes de la LDR et affiche la valeur convertie sur la liaison série
Extremums
Sachant que les capteurs ne peuvent être strictement identiques, ils donneront tous des valeurs (normalement légèrement) différentes pour un même éclairement.
Le programme doit donc être capable de s'adapter automatiquement au capteur. Pour se faire, il est nécessaire de trouver les valeurs maximum et minimum renvoyées.
Réaliser un programme permettant de trouver ces extrêmes, en vous appuyant sur l'algorithme suivant :
- initialiser maxi à la plus petite valeur possible (ici 0)
- initialiser mini à la plus grande valeur possible (ici 1023)
- répéter
- lire la valeur du capteur => val
- si val > maxi
- changer la valeur de maxi
- si val < mini
- changer la valeur de mini
Jour, nuit ?
Utilisons maintenant les leds à disposition de la façon suivant :
- s'il fait jour, allumer la led verte
- s'il fait nuit, allumer la led rouge
Écrire un programme répondant au cahier des charges, en utilisant les valeurs extrêmes.
Luminosité en %
L'objectif est d'afficher la valeur mesurée en pourcentage de la valeur maximum d'éclairement mesurée.
Si la valeur actuellement mesurée est
- la valeur min, on affichera 0%.
- la valeur max, on affichera 100%.
Une valeur en pourcentage ne dépend que des valeurs minimum, maximum et de la mesure. On peut donc écrire le prototype de la foncion comme suit :
// les paramètres sont des "int" car : 0 < val,min,max < 1024 (car conversion sur 10 bits)
// par contre on retourne unsigned char car entre 0 et 100
unsigned char valPourcent(int val, int min, int max);
Modifier votre programme pour utiliser la fonction valPourcent(), que vous implémenterez.
Mesure d'une résistance
Principe .... le pont diviseur !?
Soit le schéma ci contre, vous allez dans cette partie écrire un programme permettant de trouver la valeur de la résistance inconnue.
Vous constatez qu'il s'agit d'un simple montage appelé communément "pont diviseur".
On notera Vm la tension de mesure, soit la tension aux bornes de la résistance (Rm) à mesurer.
Donner l'expression de la tension Vm en fonction de R1, Vcc et Rm.
Donner ensuite l'expression de la valeur numérique donnée par le convertisseur (tension de référence 5v).
Mesure de la résistance
Présence de la résistance ?
- allumer led rouge si pas de résistance
- allumer led vert sinon