Lire et écrire numérique à l'aide de l'Arduino Uno

Digital Read and Write Using the Arduino Uno

L'Arduino Uno offre la capacité d'interagir avec le monde réel en utilisant ses épingles numériques. Vous pouvez utiliser ces épingles pour contrôler les appareils tels que les LED, les moteurs et les relais, ou lire les entrées de capteurs, de boutons et de commutateurs. Ce tutoriel expliquera comment configurer des épingles numériques, effectuer des opérations de lecture et d'écriture et d'utiliser if déclarations pour les décisions basées sur la logique dans vos projets.


Ce dont vous aurez besoin

  1. Arduino Uno avec câble USB
  2. LED et une résistance de 220 ohms (pour des exemples de sortie)
  3. Bouton-poussoir et une résistance de 10k-ohm (pour des exemples d'entrée)
  4. Fils de planche à pain et de cavalier
  5. Un ordinateur avec l'ide Arduino installé

Étape 1: Configuration des broches numériques

Modes Digital PIN

Arduino Uno a 14 broches numériques (D0-D13). Ces broches peuvent être configurées comme:

  • Saisir: Pour lire les signaux des capteurs ou des commutateurs.
  • Sortir: Pour contrôler les LED, les moteurs ou d'autres actionneurs.

Utiliser le pinMode() fonction pour définir le mode d'une broche dans le setup() fonction:

pinMode(pinNumber, mode);
  • pinNumber: La broche que vous souhaitez configurer (par exemple, 2, 3, etc.).
  • mode: Soit INPUT, INPUT_PULLUP, ou OUTPUT.

Étape 2: Écriture sur une épingle numérique

Vous pouvez contrôler les appareils en écrivant HIGH ou LOW à une broche de sortie en utilisant le digitalWrite() fonction:

digitalWrite(pinNumber, value);
  • value: Soit HIGH (5v) ou LOW (0v).

Exemple: clignoter une LED

Voici comment clignoter une LED connectée à la broche 13:

#define ledPin 13 // LED connected to pin 13

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

void loop() {
  digitalWrite(ledPin, HIGH); // Turn the LED on
  delay(1000);               // Wait for 1 second
  digitalWrite(ledPin, LOW);  // Turn the LED off
  delay(1000);               // Wait for 1 second
}

Étape 3: Lire à partir d'une épingle numérique

Pour lire l'état d'une épingle, utilisez le digitalRead() fonction:

int state = digitalRead(pinNumber);
  • state: Sera soit HIGH ou LOW basé sur le signal d'entrée.

Exemple: lire un bouton Appuyez sur

Connectez un bouton-poussoir à la broche 2 avec une résistance d'attraction (10k-ohm). Lorsque vous appuyez sur, le bouton enverra un HIGH signal.

#define buttonPin 2 // Button connected to pin 2
#define ledPin 13   // LED connected to pin 13

void setup() {
  pinMode(buttonPin, INPUT); // Set pin 2 as an input
  pinMode(ledPin, OUTPUT);   // Set pin 13 as an output
}

void loop() {
  int buttonState = digitalRead(buttonPin); // Read the button state

  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH); // Turn on the LED if the button is pressed
  } else {
    digitalWrite(ledPin, LOW); // Turn off the LED otherwise
  }
}

Étape 4: Utilisation if Déclarations avec des broches numériques

if Les déclarations vous permettent de créer une logique conditionnelle dans votre programme. Combinez les lectures numériques et les écritures pour effectuer des actions en fonction des entrées.

Exemple: Basculez une LED sur le bouton Appuyez sur

Ce croquis bascule l'état LED chaque fois que le bouton est enfoncé:

#define buttonPin 2 // Button connected to pin 2
#define ledPin 13   // LED connected to pin 13

bool ledState = false; // Current state of the LED
bool lastButtonState = LOW; // Previous state of the button

void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  bool currentButtonState = digitalRead(buttonPin);

  if (currentButtonState == HIGH && lastButtonState == LOW) {
    ledState = !ledState; // Toggle the LED state
    digitalWrite(ledPin, ledState ? HIGH : LOW);
  }

  lastButtonState = currentButtonState; // Update the button state
  delay(50); // Debounce delay
}

Étape 5: Utilisation avancée avec opérations logiques

Vous pouvez utiliser plusieurs if déclarations, else ifet opérateurs logiques (&&, ||, etc.) pour créer des comportements plus complexes.

Exemple: contrôle multi-entrée

Contrôlez une LED basée sur les états de deux boutons:

#define button1 2 // Button 1 connected to pin 2
#define button2 3 // Button 2 connected to pin 3
#define ledPin 13 // LED connected to pin 13

void setup() {
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  bool button1State = digitalRead(button1);
  bool button2State = digitalRead(button2);

  if (button1State == HIGH && button2State == HIGH) {
    digitalWrite(ledPin, HIGH); // Turn on LED if both buttons are pressed
  } else {
    digitalWrite(ledPin, LOW); // Turn off LED otherwise
  }
}

Dépannage

  • LED ne s'allume pas:

    • Assurez-vous que la LED est correctement connectée (longue jambe à la broche positive).
    • Utilisez une résistance de 220 ohms pour éviter les dommages.
  • Le bouton ne répond pas:

    • Vérifiez le câblage approprié avec une résistance de traction ou de traction.
    • Vérifiez que le Pinmode est défini sur INPUT ou INPUT_PULLUP.
  • Débouncer les problèmes:

    • Utilisez un petit retard ou implémentez un mécanisme de débouchement logiciel pour gérer le bruit du signal des boutons mécaniques.

Conclusion

Vous avez appris à effectuer des opérations de lecture et d'écriture numériques avec Arduino Uno, de configurer les modes PIN et d'utiliser if déclarations pour la logique conditionnelle. Ces compétences fondamentales vous permettent de contrôler une grande variété de composants matériels et de créer des projets interactifs et réactifs. Expérimentez plus loin en combinant plusieurs entrées et sorties pour un comportement plus complexe!

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.