Lire et écrire analogique à l'aide de l'Arduino Uno

Analog Read and Write Using the Arduino Uno

L'Arduino Uno prend en charge les opérations de saisie et de sortie analogiques, vous permettant d'interagir avec des capteurs et des actionneurs nécessitant des valeurs précises. Les opérations analogiques sont essentielles pour contrôler les dispositifs tels que les LED, les moteurs et la lecture des entrées de capteurs tels que les potentiomètres ou les capteurs de lumière. Ce tutoriel vous guidera à travers la configuration, la lecture et l'écriture analogiques, et l'utilisation d'opérations logiques comme if instructions avec des données analogiques.


Ce dont vous aurez besoin

  1. Arduino Uno avec câble USB
  2. Potentiomètre (ou toute résistance variable) pour l'entrée analogique
  3. LED et une résistance de 220 ohms pour la sortie analogique
  4. Fils de planche à pain et de cavalier
  5. Un ordinateur avec l'ide Arduino installé

Étape 1: Comprendre les épingles analogiques sur Arduino

L'Arduino Uno a six broches d'entrée analogiques (A0-A5) qui peuvent lire une tension entre 0 et 5V et la convertir en valeur numérique entre 0 et 1023. Pour la sortie analogique, Arduino utilise PWM (modulation de largeur d'impulsion) sur certaines broches numériques marqué de ~ (par exemple, 3, 5, 6, 9, 10, 11).

Fonctions utilisées

  • Entrée analogique: analogRead(pin)
    • Lit une tension (0-5v) et renvoie une valeur entre 0 et 1023.
  • Sortie analogique: analogWrite(pin, value)
    • Sorte un signal PWM où value varie de 0 (cycle de service à 0%) à 255 (cycle de service à 100%).

Étape 2: Entrée analogique de câblage (potentiomètre)

Connectez un potentiomètre à une broche analogique Arduino:

Épingle du potentiomètre Connexion Arduino
1 (broche de fin) 5V
2 (milieu / sortie) A0
3 (Pin de fin) GND

Étape 3: Câblage Sortie analogique (LED)

Connectez une LED avec une résistance de 220 ohms à une broche PWM Arduino (par ex. PIN 9):

Broche Connexion Arduino
Jambe longue (+) PIN numérique 9
Jambe courte (-) GND

Étape 4: lecture de l'entrée analogique

Utiliser le analogRead() Fonction pour lire les données du potentiomètre:

Exemple de code: lecture d'entrée analogique

#define potPin A0 // Potentiometer connected to A0

void setup() {
  Serial.begin(9600);
  Serial.println("Analog Input Test");
}

void loop() {
  int sensorValue = analogRead(potPin); // Read analog value
  Serial.print("Sensor Value: ");
  Serial.println(sensorValue);
  delay(500); // Wait for half a second
}

Exécutez le code et observez les valeurs du potentiomètre (0-1023) dans le moniteur série.


Étape 5: Écriture de sortie analogique

Utiliser le analogWrite() fonction pour contrôler la luminosité d'une LED:

Exemple de code: sortie analogique à LED

#define ledPin 9 // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT); // Set LED pin as output
}

void loop() {
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledPin, brightness); // Increase brightness
    delay(10);
  }

  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledPin, brightness); // Decrease brightness
    delay(10);
  }
}

Étape 6: combinant l'entrée et la sortie analogiques

Vous pouvez utiliser des valeurs d'entrée analogiques pour contrôler la sortie, telles que le réglage de la luminosité LED en fonction de la position du potentiomètre.

Exemple de code: le potentiomètre contrôle la luminosité du LED

#define potPin A0 // Potentiometer connected to A0
#define ledPin 9  // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(potPin); // Read potentiometer value

  int brightness = map(sensorValue, 0, 1023, 0, 255); // Map to PWM range
  analogWrite(ledPin, brightness); // Set LED brightness

  Serial.print("Sensor Value: ");
  Serial.print(sensorValue);
  Serial.print(" -> Brightness: ");
  Serial.println(brightness);

  delay(100);
}

Étape 7: Utilisation if Déclarations avec des données analogiques

Vous pouvez créer des conditions en utilisant une entrée analogique pour effectuer des actions spécifiques:

Exemple de code: contrôle conditionnel

#define potPin A0 // Potentiometer connected to A0
#define ledPin 9  // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(potPin);

  if (sensorValue > 512) {
    analogWrite(ledPin, 255); // Full brightness if sensor value > 512
    Serial.println("Bright!");
  } else {
    analogWrite(ledPin, 0); // Turn off LED otherwise
    Serial.println("Off");
  }

  delay(500);
}

Applications de la lecture / écriture analogique

  1. Lecture des capteurs environnementaux (par exemple, lumière, température, humidité)
  2. Réglage des vitesses du moteur
  3. Contrôler la luminosité LED
  4. Traitement du signal audio
  5. Création d'interfaces utilisateur analogiques

Dépannage

  • Lectures incorrectes du capteur: Assurez-vous un câblage approprié et vérifiez les connexions du potentiomètre.
  • LED ne pas éclairer: Confirmez l'orientation LED et utilisez une résistance pour limiter le courant.
  • Sortie non lisse: Ajoutez un petit retard ou en moyenne les valeurs d'entrée pour la stabilité.

Conclusion

Vous avez appris à effectuer des opérations de lecture et d'écriture analogiques à l'aide d'Arduino Uno, de valeurs de capteur de carte sur les sorties et d'utiliser if déclarations pour la logique conditionnelle. Ces compétences sont cruciales pour créer des projets réactifs et interactifs. Expérimentez plus loin en intégrant d'autres capteurs et actionneurs analogiques pour étendre vos capacités!

Laissez un commentaire

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.