Analoginen lukeminen ja kirjoita Arduino Unon avulla

Analog Read and Write Using the Arduino Uno

Arduino UNO tukee analogisia tulo- ja lähtötoimintoja, jolloin voit olla vuorovaikutuksessa anturien ja toimilaitteiden kanssa, jotka vaativat tarkkoja arvoja. Analogiset toiminnot ovat välttämättömiä laitteiden, kuten LEDien, moottorien ja anturien, kuten potentiometrien tai kevyen anturien, lukujen hallitsemiseksi. Tämä opetusohjelma opastaa sinua asennuksen, analogisen lukemisen ja kirjoittamisen kautta sekä käyttämällä logiikkaoperaatioita if Lausunnot analogisilla tiedoilla.


Mitä tarvitset

  1. Arduino Uno USB -kaapelilla
  2. Potentiometri (tai mikä tahansa muuttuva vastus) analogiselle sisääntulolle
  3. LED ja 220 OHM -vastus analogisen ulostulon kannalta
  4. Leipälevy- ja hyppyjohdot
  5. Tietokone, jossa Arduino IDE on asennettu

Vaihe 1: Analogisten nastajen ymmärtäminen Arduinossa

Arduino UNO: lla on kuusi analogista syöttötappia (A0-A5), joka voi lukea jännitteen välillä 0-5 V ja muuntaa sen digitaaliseksi arvoksi välillä 0–1023. Analogista lähtöä varten Arduino käyttää PWM: ää (pulssin leveyden modulaatio) tietyillä digitaalisilla napeilla merkitty ~ (esim. 3, 5, 6, 9, 10, 11).

Käytetyt toiminnot

  • Analoginen tulo: analogRead(pin)
    • Lukee jännitettä (0-5 V) ja palauttaa arvon välillä 0-1023.
  • Analoginen lähtö: analogWrite(pin, value)
    • Tulostaa PWM -signaalin missä value vaihtelee 0: sta (0%: n työsykli) 255: een (100%: n käyttöjakso).

Vaihe 2: Johdotusanaloginen tulo (potentiometri)

Kytke potentiometri Arduino -analogiseen nastaan:

Potentiometrin tappi Arduino -yhteys
1 (päätytappi) 5V
2 (keskimmäinen/lähtö) A0
3 (päätytappi) Hölynpöly

Vaihe 3: Johdotusanaloginen lähtö (LED)

Kytke LED 220 OHM -vastuksella Arduino PWM -tappiin (esim. Tappi 9):

LED -nasta Arduino -yhteys
Pitkä jalka (+) Digitaalinen tappi 9
Lyhyt jalka (-) Hölynpöly

Vaihe 4: Analogisen syötteen lukeminen

Käyttää analogRead() TOIMINTA LUE TIEDOT POTENTIOMETERI:

Esimerkki Koodi: Analogisen syötteen lukeminen

#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
}

Suorita koodi ja tarkkaile potentiometrin arvoja (0-1023) sarjamonitorissa.


Vaihe 5: Analogisen lähdön kirjoittaminen

Käyttää analogWrite() toiminto LEDin kirkkauden hallitsemiseksi:

Esimerkki Koodi: Analoginen lähtö LEDille

#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);
  }
}

Vaihe 6: Analogisen tulon ja lähdön yhdistäminen

Voit käyttää analogisia tuloarvoja lähtöä, kuten säätää LED -kirkkautta potentiometrin asennon perusteella.

Esimerkki koodi: potentiometrin ohjaimet LED -kirkkaus

#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);
}

Vaihe 7: Käyttäminen if Lausunnot analogisella tiedoilla

Voit luoda olosuhteita analogisen syötteen avulla tiettyjen toimintojen suorittamiseen:

Esimerkki Koodi: Ehdollinen ohjaus

#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);
}

Analogisen lukemisen/kirjoittamisen sovellukset

  1. Ympäristöanturit (esim. Valo, lämpötila, kosteus)
  2. Moottorin nopeuksien säätäminen
  3. LED -kirkkauden hallinta
  4. Äänisignaalinkäsittely
  5. Analogipohjaisten käyttöliittymien luominen

Vianetsintä

  • Anturin virheelliset lukemat: Varmista oikea johdotus ja tarkista potentiometrin liitännät.
  • LED ei valaistu: Vahvista LED -suunta ja käytä vastusta virran rajoittamiseen.
  • Lähtö ei sileä: Lisää pieni viive tai keskimäärin stabiilisuuden syöttöarvot.

Johtopäätös

Olet oppinut suorittamaan analogiset luku- ja kirjoitusoperaatiot Arduino UNO: n avulla, karttaanturin arvot tulosteisiin ja käyttämällä if Lausunnot ehdollisen logiikan suhteen. Nämä taidot ovat ratkaisevan tärkeitä reagoivien, interaktiivisten projektien luomiseen. Kokeile edelleen integroimalla muut analogiset anturit ja toimilaitteet laajentaaksesi kykyjäsi!

Jätä kommentti

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.