Différences entre versions de « ARDX-Montages-CIRC08 »
Ligne 54 : | Ligne 54 : | ||
{{ARDX-composant-end}} | {{ARDX-composant-end}} | ||
+ | Tous ces éléments sont disponibles dans [http://shop.mchobby.be/product.php?id_product=11 le Kit Ardx proposé sur shop.mchobby.be]. | ||
=== Schéma === | === Schéma === |
Version du 20 septembre 2015 à 10:26
Ce que faisons nous
En plus de ses broches digitales, Arduino dispose aussi de 6 broches qui peuvent être utilisées comme entrées analogiques. Ces entrées acceptent une tension (de 0 à 5 volts) et la converti en un nombre entier allant de 0 (0 volts) à 1024 (5 volts) avec une résolution de 10 bits. Un dispositif très utile qui exploite ces entrées est le potentiomètre (aussi appelé résistance variable).
Lorsque les broches extérieures du potentiomètre sont alimentées avec 5 volts, la broche du milieu permet de lire une valeur entre 0 et 5 volts, valeur dépendant de l'angle avec lequel le potentiomètre est tourné (ex : 2.5 volts à mi-course). Nous pouvons alors utiliser la valeur retournée comme une variable de notre programme.
Le montage
Le matériel nécessaire
2 Pin header
x4
Résistance de 560 Ohms (vert-bleu-brun)
x1
LED (ou DEL)
x1
Potentiomètre 10K Ohms
x1
Tous ces éléments sont disponibles dans le Kit Ardx proposé sur shop.mchobby.be.
Schéma
Montage
Le code
Pas besoin de taper tout le code, il est disponible via le menu
Fichier > Exemples > 3. Analog > AnalogInput
Un exemple du formidable site Arduino.cc
/* Analog Input (entrée analogique) * Démonstration d'une entrée analogique en lisant un senseur analogique sur la broche analogique 0 * et allume/éteind une diode électro-luminescente (LED) connectée à la broche digitale 13. * Le temps durant lequel la LED reste allumée/éteinte dépend de la valeur obtenue à l'aide de * analogRead(). * Créé par David Cuartielles , Modifié 16 Jun 2009 par Tom Igoe * http://arduino.cc/en/Tutorial/AnalogInput */ int sensorPin = 0; // Broche pour le potentiomètre int ledPin = 13; // Broche pour la LED int sensorValue = 0; // variable pour stocker la valeur provenant du senseur void setup() { pinMode(ledPin, OUTPUT); //déclarer la broche ledPin comme OUTPUT (sortie): } void loop() { sensorValue = analogRead(sensorPin); // lecture de la valeur provenant du senseur digitalWrite(ledPin, HIGH); // Allumer la LED (broche ledPin) delay(sensorValue); //arrêter le programme durant <sensorValue> millisecondes digitalWrite(ledPin, LOW); // éteindre la LED (broche ledPin) delay(sensorValue); //arrêter le programme durant <sensorValue> millisecondes }
Cela ne fonctionne pas?
Voici 3 choses à essayer.
Fonctionne sporadiquement
Cela est souvent dû à une connexion imparfaite des broches du potentiomètre.
Cela peut généralement être résolu en tapotant un peu sur le potentiomètre.
Cela ne fonctionne pas!
Assurez-vous de ne pas avoir accidentellement connecté le fil du potentiomètre sur la pin 2 digitale au lieu de la pin 2 analogique (la série de pins/broches près des broches d'alimentation)
Toujours en panne?
Essayez de démonter et remonter le circuit, parfois cela fonctionne mieux.
Faire encore mieux
Seuil d'allumage (threshold)
Vous voulez parfois activer une sortie lorsqu'une valeur a atteint un certain seuil. Pour faire cela avec un potentiomètre, changez le code de loop() comme suit :
void loop() { int threshold = 512; // seuil = 512 if(analogRead(sensorPin) > threshold){ digitalWrite(ledPin, HIGH); } else{ digitalWrite(ledPin, LOW); } }
Cela allumera la LED lorsque la valeur sera supérieure à 512 (mi-course), vous pouvez adapter la sensibilité en modifiant la valeur du seuil (la variable threshold ).
Faire un Dimmer (fading)
Contrôlons maintenant la luminosité de la LED directement à partir du potentiomètre.
Pour y arriver, nous devons d'abord changer la broche sur laquelle la LED est connectée.
Déplacez le fil de la pin 13 à la pin 9 et changez la ligne de code:
int ledPin = 13;
vers
int ledPin = 9;
Modifiez ensuite le code de loop() comme suit :
void loop() { int value = analogRead(potPin) / 4; analogWrite(ledPin, value); }
Chargez le code et regardez la luminosité de la LED varier en fonction de la position du potentiomètre. (Note: la raison pour laquelle nous avons divisé la valeur par 4 est que la fonction analogRead() retourne une valeur entre 0 et 1024 (10 bits), et que analogWrite() accepte une valeur entre 0 et 255 (8 bits).
Contrôler un servo
C'est vraiment un bel exemple qui regroupe ensemble une série de montages ensembles.
Raccordez le Servo moteur comme nous l'avons fait au CIRC-04, ouvrez le programme d'exemple nommé Knob (Fichier > Exemples > Servo > Knob ), changez ensuite une ligne de code.
int potpin = 0;
vers
int potpin = 2;
Chargez sur votre Arduino et regardez l'axe du Servo tourner lorsque vous tournez le potentiomètre.
Plus, plus et encore plus
Plus d'information, où poser vos autres questions:
ardx.org/CIRC08 (anglais)
Internet
.:téléchargement:.
LA fiche de montage est disponible sur ardx.org/BBLS08
.: Vidéo :.
La vidéo du montage est disponible sur ardx.org/VIDE08 (anglais)
Tutoriel/Manuel traduit par Meurisse D. pour MCHobby.be licence Creative Commons BY-SA.
Crédit de traduction
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant :
« Traduction par MCHobby (shop.MCHobby.be) - Vente de kit et composants » et ce quelque soit le média utilisé.
Utilisation commerciale
L'utilisation commercial de cette traduction (y compris sur site produisant des revenus par l'intermédiaire de publicité), même partielle, est soumise à redevance (license fee).
Le présent manuel a été traduit et autorisé à la vente avec l'aimable autorisation conjointe de Oomlout (www.oomlout.com) et d'AdaFruit (www.adafruit.com).
Produit sous licence Creative Commons BY-SA License and available for download: ardx.org/src/