Az Arduino UNO támogatja az analóg bemeneti és kimeneti műveleteket, lehetővé téve a pontos értékeket igénylő érzékelőkkel és működtetőkkel való interakciót. Az analóg műveletek elengedhetetlenek az olyan eszközök, mint a LED -ek, a motorok és az érzékelők, például a potenciométerek vagy a fényérzékelők olvasásához. Ez az oktatóanyag végigvezeti a beállítást, az analóg olvasást és az írást, valamint a logikai műveleteket, mint például if
állítások analóg adatokkal.
Mire lesz szüksége
- Arduino UNO USB -kábelrel
- Potentiométer (vagy bármilyen változó ellenállás) analóg bemenethez
- LED és egy 220-OHM ellenállás az analóg kimenethez
- Kenyérlemez és jumper vezetékek
- Egy számítógép, amelyen az Arduino IDE telepített
1. lépés: Az analóg csapok megértése az Arduino -n
Az Arduino UNO-nak hat analóg bemeneti csapja (A0-A5) van, amelyek 0 és 5 V közötti feszültséget tudnak olvasni, és 0 és 1023 közötti digitális értékré alakíthatják. Az analóg kimenethez az Arduino PWM-t (impulzusszélesség-modulációt) használ bizonyos digitális csapokon. jelölve ~
(például 3, 5, 6, 9, 10, 11).
A használt funkciók
-
Analóg bemenet:
analogRead(pin)
- Olvas egy feszültséget (0-5 V), és értéket ad vissza 0 és 1023 között.
-
Analóg kimenet:
analogWrite(pin, value)
- PWM jelet ad ki, ahol
value
0 (0% -os szolgálatciklus) és 255 (100% -os üzemi ciklus) között van.
- PWM jelet ad ki, ahol
2. lépés: Huzalozási analóg bemenet (potenciométer)
Csatlakoztasson egy potenciométert egy Arduino analóg PIN -hez:
Potenciométeres csap | Arduino csatlakozás |
---|---|
1 (végcsap) | 5 V -os |
2 (középső/kimenet) | A0 |
3 (végcsap) | GND |
3. lépés: Huzalozási analóg kimenet (LED)
Csatlakoztasson egy LED-et egy 220 ohm-es ellenállással egy Arduino PWM csaphoz (például 9. érintkező):
LED -tű | Arduino csatlakozás |
---|---|
Hosszú láb (+) | Digitális PIN 9 |
Rövid láb (-) | GND |
4. lépés: Analóg bemenet olvasása
Használja a analogRead()
Funkció az adatok olvasásához a potenciométerről:
Példa kód: Analóg bemenet olvasása
#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
}
Futtassa a kódot, és figyelje meg a potenciométer értékeket (0-1023) a soros monitorban.
5. lépés: Analóg kimenet írása
Használja a analogWrite()
funkció a LED fényerejének szabályozására:
Példa kód: Analóg kimenet a LED -hez
#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);
}
}
6. lépés: Az analóg bemenet és kimenet kombinálása
Analóg bemeneti értékeket használhat a kimenet szabályozására, például a LED -es fényerő beállítására a potenciométer pozíciója alapján.
Példa kód: Potenciométer vezérlők LED fényereje
#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);
}
7. lépés: Használat if
Állítások analóg adatokkal
Készíthet feltételeket analóg bemenetekkel konkrét műveletek végrehajtásához:
Példa kód: Feltételes vezérlés
#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);
}
Analóg olvasás/írás alkalmazásai
- A környezeti érzékelők olvasása (például fény, hőmérséklet, páratartalom)
- A motor sebességének beállítása
- A LED -es fényerő vezérlése
- Audio jelfeldolgozás
- Analóg alapú felhasználói felületek létrehozása
Hibaelhárítás
- Helytelen leolvasások az érzékelőtől: Gondoskodjon a megfelelő vezetékekről és ellenőrizze a potenciométer csatlakozásait.
- LED nem világít: Erősítse meg a LED -orientációt, és használjon ellenállást az áram korlátozására.
- A kimenet nem sima: Adjon hozzá egy kis késleltetést, vagy átlagolja a stabilitás bemeneti értékeit.
Következtetés
Megtanulta, hogyan kell elvégezni az analóg olvasási és írási műveleteket az Arduino UNO segítségével, térképérzékelő értékeit a kimenetekhez, és használni if
A feltételes logika nyilatkozata. Ezek a készségek kulcsfontosságúak a reagáló, interaktív projektek létrehozásához. Kísérletezzen tovább azáltal, hogy integrálja más analóg érzékelőket és működtetőket, hogy bővítse képességeit!