Ligne 1 : |
Ligne 1 : |
| {{ARDX-NAV}} | | {{ARDX-NAV}} |
| | | |
− | {{traduction}}
| + | == Ce que nous faisons == |
| + | '''.: Mesure de tension analogique :.''' |
| | | |
− | == Ce que faisons nous ==
| + | {{bloc-etroit|text=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). |
− | {{bloc-etroit|text=xxx | + | |
− | }} | + | 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 montage == |
Ligne 55 : |
Ligne 56 : |
| | | |
| {{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 === |
Ligne 63 : |
Ligne 65 : |
| | | |
| == Le code == | | == Le code == |
− | xxx
| + | 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 |
| + | |
| + | <nowiki>/* 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): |
| + | } |
| | | |
− | <nowiki>/* code */</nowiki> | + | 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 |
| + | }</nowiki> |
| | | |
| == Cela ne fonctionne pas? == | | == Cela ne fonctionne pas? == |
| Voici 3 choses à essayer. | | Voici 3 choses à essayer. |
− | === xxx 1 === | + | === Fonctionne sporadiquement === |
− | yyyy
| + | 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. |
| | | |
− | === xxx 2 === | + | === Cela ne fonctionne pas! === |
− | yyyy
| + | Assurez-vous de ne pas avoir accidentellement connecté le fil du potentiomètre sur la pin 2 {{underline|digitale}} au lieu de la pin 2 {{underline|analogique}} (la série de pins/broches près des broches d'alimentation) |
| | | |
− | === xxx 3 === | + | === Toujours en panne? === |
− | yyyy
| + | Essayez de démonter et remonter le circuit, parfois cela fonctionne mieux. |
| | | |
| == Faire encore mieux == | | == Faire encore mieux == |
− | === zzz 1 === | + | === Seuil d'allumage (threshold) === |
− | zzzz
| + | 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 {{fname|loop()}} comme suit : |
| + | |
| + | <nowiki>void loop() { |
| + | int threshold = 512; // seuil = 512 |
| + | if(analogRead(sensorPin) > threshold){ |
| + | digitalWrite(ledPin, HIGH); |
| + | } |
| + | else{ |
| + | digitalWrite(ledPin, LOW); |
| + | } |
| + | }</nowiki> |
| + | |
| + | 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 {{fname|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: |
| + | |
| + | <nowiki>int ledPin = 13;</nowiki> |
| + | |
| + | vers |
| + | |
| + | <nowiki>int ledPin = 9;</nowiki> |
| + | |
| + | Modifiez ensuite le code de {{fname|loop()}} comme suit : |
| + | |
| + | <nowiki>void loop() { |
| + | int value = analogRead(potPin) / 4; |
| + | analogWrite(ledPin, value); |
| + | }</nowiki> |
| + | |
| + | 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. |
| + | |
| + | <nowiki>int potpin = 0;</nowiki> |
| + | |
| + | vers |
| + | |
| + | <nowiki>int potpin = 2;</nowiki> |
| + | |
| + | Chargez sur votre Arduino et regardez l'axe du Servo tourner lorsque vous tournez le potentiomètre. |
| | | |
| == Plus, plus et encore plus == | | == Plus, plus et encore plus == |