Ang Arduino Uno ay nagbibigay ng kakayahang makipag -ugnay sa totoong mundo gamit ang mga digital na pin. Maaari mong gamitin ang mga pin na ito upang makontrol ang mga aparato tulad ng mga LED, motor, at relay, o basahin ang mga input mula sa mga sensor, pindutan, at switch. Ipapaliwanag ng tutorial na ito kung paano mag -set up ng mga digital na pin, magsagawa ng basahin at isulat ang mga operasyon, at magamit if
Mga pahayag para sa mga desisyon na batay sa lohika sa iyong mga proyekto.
Ano ang kakailanganin mo
- Arduino uno na may USB cable
- LED at isang 220-ohm risistor (para sa mga halimbawa ng output)
- Pindutan ng push at isang 10k-ohm risistor (para sa mga halimbawa ng input)
- Mga wire ng tinapay at jumper
- Isang computer na may naka -install na Arduino IDE
Hakbang 1: Pag -set up ng mga digital na pin
Mga mode ng digital pin
Ang Arduino Uno ay may 14 digital pin (D0-D13). Ang mga pin na ito ay maaaring mai -configure bilang:
- Input: Upang mabasa ang mga signal mula sa mga sensor o switch.
- Output: Upang makontrol ang mga LED, motor, o iba pang mga actuators.
Gamitin ang pinMode()
function upang itakda ang mode ng isang pin sa setup()
Function:
pinMode(pinNumber, mode);
-
pinNumber
: Ang pin na nais mong i -configure (hal., 2, 3, atbp.). -
mode
: AlinmanINPUT
,INPUT_PULLUP
, oOUTPUT
.
Hakbang 2: Pagsulat sa isang Digital Pin
Maaari mong kontrolin ang mga aparato sa pamamagitan ng pagsulat HIGH
o LOW
sa isang output pin gamit ang digitalWrite()
Function:
digitalWrite(pinNumber, value);
-
value
: AlinmanHIGH
(5v) oLOW
(0v).
Halimbawa: kumikislap ng isang LED
Narito kung paano kumurap ng isang LED na konektado sa pin 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
}
Hakbang 3: Pagbasa mula sa isang digital pin
Upang mabasa ang estado ng isang pin, gamitin ang digitalRead()
Function:
int state = digitalRead(pinNumber);
-
state
: Ay magiging alinmanHIGH
oLOW
batay sa signal ng pag -input.
Halimbawa: Pagbasa ng isang pindutan ng pindutan
Ikonekta ang isang pindutan ng push upang i-pin 2 gamit ang isang pull-down risistor (10k-ohm). Kapag pinindot, ang pindutan ay magpapadala ng isang 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
}
}
Hakbang 4: Paggamit if
Mga pahayag na may mga digital na pin
if
Pinapayagan ka ng mga pahayag na lumikha ng kondisyong lohika sa iyong programa. Pagsamahin ang mga digital na nagbabasa at nagsusulat upang magsagawa ng mga aksyon batay sa mga input.
Halimbawa: I -toggle ang isang LED sa pindutan ng pindutan
Ang sketch na ito ay toggles ang estado ng LED sa bawat oras na ang pindutan ay pinindot:
#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
}
Hakbang 5: Advanced na paggamit sa mga operasyon ng lohika
Maaari kang gumamit ng maramihang if
mga pahayag, else if
, at mga lohikal na operator (&&
, ||
, atbp.) Upang lumikha ng mas kumplikadong pag -uugali.
Halimbawa: Multi-input control
Kontrolin ang isang LED batay sa mga estado ng dalawang pindutan:
#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
}
}
Pag -aayos
-
Ang LED ay hindi magaan:
- Tiyakin na ang LED ay konektado nang tama (mahabang binti sa positibong pin).
- Gumamit ng isang 220-OHM risistor upang maiwasan ang pinsala.
-
Hindi tumugon ang pindutan:
- Suriin para sa tamang mga kable na may isang pull-down o pull-up risistor.
- Patunayan ang pinmode ay nakatakda sa
INPUT
oINPUT_PULLUP
.
-
Mga isyu sa debounce:
- Gumamit ng isang maliit na pagkaantala o ipatupad ang isang mekanismo ng debounce ng software upang mahawakan ang ingay ng signal mula sa mga mekanikal na pindutan.
Konklusyon
Nalaman mo kung paano magsagawa ng digital na basahin at isulat ang mga operasyon kasama ang Arduino Uno, i -configure ang mga mode ng pin, at gamitin if
Mga pahayag para sa kondisyon na lohika. Ang mga pangunahing kasanayan ay nagbibigay -daan sa iyo upang makontrol ang isang iba't ibang mga sangkap ng hardware at lumikha ng mga interactive, tumutugon na mga proyekto. Eksperimento karagdagang sa pamamagitan ng pagsasama ng maraming mga input at output para sa mas kumplikadong pag -uugali!