Fonctions analogRead et digitalRead Arduino IDE

Examinons l’utilisation des commandes digitalRead() et analogRead() dans le langage Arduino, qui sont utilisées pour interroger les capteurs numériques et analogiques respectivement. Ces fonctions sont utilisées dans l’exemple de la connexion d’un capteur de mouvement numérique à l’entrée numérique du microcontrôleur et d’un capteur d’eau à l’entrée analogique. D’autres capteurs peuvent être utilisés à la place de ces capteurs.


Pour cette activité, nous aurons besoin:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • LED et résistance
  • breadboard
  • fils de connexion

Matériel supplémentaire sur ce sujet:

  1. Fonctions analogWrite et digitalWrite Arduino
  2. Jeu Arduino avec LEDs «Répétez la séquence»
  3. Jeu de réaction avec LEDs et Arduino Uno

Pour connecter des capteurs numériques à l’aide de la commande digitalRead(), vous pouvez utiliser n’importe quelle entrée, y compris les broches analogiques A0-A5, marquées comme Analog In. Pour connecter des capteurs analogiques à l’Arduino (par exemple, un capteur de niveau d’eau ou un capteur de température LM35) avec la commande analogRead(), seules des entrées analogiques utilisant le CAN du microcontrôleur doivent être utilisées.

Description de la fonction digitalRead() Arduino

Comment connecter le capteur de mouvement à l'Arduino
Comment connecter le capteur de mouvement à l’Arduino

La fonction digitalRead lit une valeur HIGH ou LOW à partir de l’entrée. Si aucun capteur n’est connecté à l’entrée, la commande digitalRead peut renvoyer des valeurs HIGH ou LOW de manière aléatoire. Les entrées analogiques du microcontrôleur peuvent également être utilisées comme entrées/sorties numériques. Dans cet exemple, le capteur de mouvement est connecté à la broche 2, mais n’importe quelle broche Arduino peut être utilisée.

Syntaxe function digitalRead() Arduino, exemple

digitalRead(pin);
  • pin – numéro de l’entrée à partir de laquelle la lecture est effectuée

Comme le capteur de mouvement HC-SR501 est numérique, lorsqu’un mouvement est détecté, sa sortie sera un 1 logique (signal de 5 volts), et lorsqu’aucun mouvement n’est détecté, sa sortie sera un 0 logique (signal de 0 volt). Dans le programme suivant, en fonction du signal émis par le capteur de mouvement, la valeur de la variable prendra la valeur 1 (HIGH) ou 0 (LOW). En fonction de cela, la LED sur la broche 12 sera allumée ou éteinte.

Programme Arduino pour utilise digitalRead() fonction

#define PIR 2
#define LED 13

byte value;

void setup() {
  pinMode(PIR, INPUT);
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  value = digitalRead(PIR);
  Serial.print("PIR sensor - ");
  Serial.println(value);

  if (value == HIGH) { digitalWrite(LED, HIGH); }
  else { digitalWrite(LED, LOW); }

  delay(1000);
}

Description de la fonction analogRead() Arduino

Programme Arduino pour le capteur d'eau et LED
Programme Arduino pour le capteur d’eau et LED

La fonction analogRead lit une valeur à partir de l’entrée analogique du microcontrôleur. La plupart des cartes Arduino ont 6 entrées analogiques (16 entrées analogiques sur la carte Arduino Mega 2560) avec un ADC de 10 bits. La tension appliquée par le capteur à l’entrée analogique du microcontrôleur avec ADC (généralement de 0 à 5 Volts) sera convertie en une valeur de 0 à 1023, soit 1024 pas avec une résolution de 0,0049 Volts.

Syntaxe function analogRead() Arduino, exemple

analogRead(pin);
  • pin – numéro de l’entrée à partir de laquelle la lecture est effectuée

Si aucun capteur n’est connecté à l’entrée analogique, les valeurs renvoyées par analogRead() seront des valeurs aléatoires. Dans l’exemple suivant, un capteur d’eau analogique sera connecté à la broche A1 (voir le schéma de câblage du capteur ci-dessus), dont le signal variera de 0 à 5 volts. Le microcontrôleur Arduino convertira la tension en volts dans la plage de valeurs de 0 à 1023 à l’aide de l’ADC intégré et les stockera dans la valeur value.

Programme Arduino pour utilise analogRead() fonction

#define LED 13
#define WTR A1

int value;

void setup() {
  pinMode(LED, OUTPUT);
  pinMode(WTR, INPUT);
  Serial.begin(9600);
}

void loop() {
  value = analogRead(WTR);
  Serial.print("Water sensor - ");
  Serial.println(value);
 
  if (value > 100) { digitalWrite(LED, HIGH); }
  if (value < 100) { digitalWrite(LED, LOW); }
 
  delay(1000);
}

Conclusion. Nous avons examiné la syntaxe des fonctions analogRead() et digitalRead() dans le langage Arduino IDE, et nous avons également donné un exemple de programme utilisant ces commandes. Nous vous recommandons de lire d’autres articles – Broches numériques et analogiques d’Arduino et Comment connecter une photorésistance à Arduino.





Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.