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
- Arduino Uno USB -kaapelilla
- Potentiometri (tai mikä tahansa muuttuva vastus) analogiselle sisääntulolle
- LED ja 220 OHM -vastus analogisen ulostulon kannalta
- Leipälevy- ja hyppyjohdot
- 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).
- Tulostaa PWM -signaalin missä
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
- Ympäristöanturit (esim. Valo, lämpötila, kosteus)
- Moottorin nopeuksien säätäminen
- LED -kirkkauden hallinta
- Äänisignaalinkäsittely
- 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!