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
- Arduino Uno avec câble USB
- LED et une résistance de 220 ohms (pour des exemples de sortie)
- Bouton-poussoir et une résistance de 10k-ohm (pour des exemples d'entrée)
- Fils de planche à pain et de cavalier
- 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
: SoitINPUT
,INPUT_PULLUP
, ouOUTPUT
.
É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
: SoitHIGH
(5v) ouLOW
(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 soitHIGH
ouLOW
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 if
et 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
ouINPUT_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!