Arduino UNO tarjoaa kyvyn olla vuorovaikutuksessa todellisen maailman kanssa sen digitaalisten nastajen avulla. Voit käyttää näitä nastat hallitsemaan laitteita, kuten LED -laitteita, moottoreita ja releitä, tai lukemaan tuloja antureista, painikkeista ja kytkimistä. Tämä opetusohjelma selittää, kuinka digitaaliset nastat asetetaan, suorittaa luku- ja kirjoitustoimenpiteitä ja hyödyntää if
Lausunnot logiikkapohjaisista päätöksistä projektissasi.
Mitä tarvitset
- Arduino Uno USB -kaapelilla
- LED ja 220 OHM -vastus (lähtöesimerkkejä varten)
- Paina painiketta ja 10 k-OHM-vastus (tuloesimerkkejä varten)
- Leipälevy- ja hyppyjohdot
- Tietokone, jossa Arduino IDE on asennettu
Vaihe 1: Digitaalisten tappien asettaminen
Digitaalitappitilat
Arduino UNO: lla on 14 digitaalista nasta (D0-D13). Nämä nastat voidaan määrittää seuraavasti:
- Tulo: Signaalien lukeminen antureista tai kytkimistä.
- Lähtö: LEDien, moottorien tai muiden toimilaitteiden hallitsemiseksi.
Käyttää pinMode()
toiminto asettaa nastatapa setup()
Toiminto:
pinMode(pinNumber, mode);
-
pinNumber
: Tappi, jonka haluat määrittää (esim. 2, 3 jne.). -
mode
: KumpaakinINPUT
,INPUT_PULLUP
taiOUTPUT
.
Vaihe 2: Kirjoittaminen digitaaliseen nastaan
Voit hallita laitteita kirjoittamalla HIGH
tai LOW
Lähtötappi digitalWrite()
Toiminto:
digitalWrite(pinNumber, value);
-
value
: KumpaakinHIGH
(5v) taiLOW
(0 V).
Esimerkki: LEDin vilkkuminen
Näin vilkkuu LED, joka on kytketty nastaan 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
}
Vaihe 3: Lukeminen digitaalisesta nastasta
Lue PIN -koodin tila käyttämällä digitalRead()
Toiminto:
int state = digitalRead(pinNumber);
-
state
: Tulee olemaan jokoHIGH
taiLOW
Tulosignaalin perusteella.
Esimerkki: Painikkeen lukeminen Paina
Kytke painatus painikkeeksi nastaan 2 vetävällä vastuksella (10k-OHM). Kun painike painetaan, painike lähettää a HIGH
signaali.
#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
}
}
Vaihe 4: Käyttäminen if
Lausunnot digitaalisilla nastailla
if
Lausuntot antavat sinun luoda ehdollisen logiikan ohjelmaan. Yhdistä digitaalinen lukee ja kirjoittaa suorittamaan toimintoja tulojen perusteella.
Esimerkki: Vaihda LED -painike Paina
Tämä luonnos vaihtaa LED -tilan joka kerta, kun painiketta painetaan:
#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
}
Vaihe 5: Lisäkäyttö logiikkaoperaatioilla
Voit käyttää useita if
lausunnot, else if
ja loogiset operaattorit (&&
, ||
jne.) Monimutkaisemman käyttäytymisen luominen.
Esimerkki: Multi-INPut-ohjaus
Hallitse LEDiä kahden painikkeen tilojen perusteella:
#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
}
}
Vianetsintä
-
LED ei syty:
- Varmista, että LED on kytketty oikein (pitkä jalka positiiviseen nastaan).
- Käytä 220-OHM-vastusta vaurioiden välttämiseksi.
-
Painike ei vastaa:
- Tarkista oikea johdotus vetävällä tai vetovastuksella.
- Varmista, että PinMode on asetettu
INPUT
taiINPUT_PULLUP
.
-
Debount -kysymykset:
- Käytä pientä viivettä tai toteuta ohjelmisto -disanssimekanismia, jotta voit käsitellä mekaanisten painikkeiden signaalin kohinaa.
Johtopäätös
Olet oppinut suorittamaan digitaalisia luku- ja kirjoitustoimintoja Arduino UNO: lla, määrittää PIN -tilat ja käyttää if
Lausunnot ehdollisen logiikan suhteen. Näiden perustaidon avulla voit hallita monenlaisia laitteistokomponentteja ja luoda interaktiivisia, reagoivia projekteja. Kokeile edelleen yhdistämällä useita tuloja ja lähtöjä monimutkaisempaan käyttäytymiseen!