Ligne 1 : |
Ligne 1 : |
| {{MicroPython-Hack-Prepare-NAV}} | | {{MicroPython-Hack-Prepare-NAV}} |
| | | |
− | == Ce que nous faisons ==
| + | {{MicroPython-Hack-Analogique-core}} |
− | '''.: Mesure de tension analogique :.'''
| |
− | | |
− | {{bloc-etroit|text=En plus de ses broches digitales, PyBoard dispose aussi de 16 broches qui peuvent être utilisées comme entrées analogiques. Ces entrées acceptent une tension (de 0 à 3.3 volts) et la converti en un nombre entier allant de 0 (0 volts) à 4095 (3.3 volts) avec une résolution de 12 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 3.3volts, la broche du milieu permet de lire une valeur entre 0 et 3.3 volts, valeur dépendant de l'angle avec lequel le potentiomètre est tourné (ex : 1.65 volts à mi-course). Nous pouvons alors utiliser la valeur retournée comme une variable de notre programme.
| |
− | | |
− | Vous pouvez facilement identifier les broches analogiques sur le diagramme car elles sont marquées comme '''ADC'''.
| |
− | | |
− | }}
| |
− | | |
− | | |
− | == Le montage ==
| |
− | === Le matériel nécessaire ===
| |
− | | |
− | === Schéma ===
| |
− | | |
− | === Montage ===
| |
− | | |
− | == Le code ==
| |
− | | |
− | == Cela ne fonctionne pas? ==
| |
− | Il y a 3 choses à essayer.
| |
− | | |
− | {{traduction}}
| |
− | === 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 {{underline|digitale}} au lieu de la pin 2 {{underline|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 {{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.
| |
− | | |
− | == Internet ==
| |
− | Voici quelques ressources utiles.
| |
− | * [http://forum.micropython.org/viewtopic.php?t=399#p2321 Améliorer la stabilité de la lecture analogique] (''Anglais, MicroPython Forum'')
| |
| | | |
| {{MicroPython-Hack-MCH-TRAILER}} | | {{MicroPython-Hack-MCH-TRAILER}} |