Modifications

Sauter à la navigation Sauter à la recherche
4 587 octets ajoutés ,  20 septembre 2015 à 10:56
aucun résumé de modification
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 ==
29 837

modifications

Menu de navigation