Analóg olvassa el és írjon az Arduino Uno használatával

Analog Read and Write Using the Arduino Uno

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

  1. Arduino UNO USB -kábelrel
  2. Potentiométer (vagy bármilyen változó ellenállás) analóg bemenethez
  3. LED és egy 220-OHM ellenállás az analóg kimenethez
  4. Kenyérlemez és jumper vezetékek
  5. 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.

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

  1. A környezeti érzékelők olvasása (például fény, hőmérséklet, páratartalom)
  2. A motor sebességének beállítása
  3. A LED -es fényerő vezérlése
  4. Audio jelfeldolgozás
  5. 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!

Hagyj egy megjegyzést

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.