Arduino UNO stöder analoga ingångs- och utgångsoperationer, vilket gör att du kan interagera med sensorer och ställdon som kräver exakta värden. Analog operationer är viktiga för att styra enheter som lysdioder, motorer och läsingångar från sensorer som potentiometrar eller ljussensorer. Denna handledning kommer att guida dig genom installationen, analog läsning och skrivning och använda logikoperationer som if
Uttalanden med analoga data.
Vad du behöver
- Arduino Uno med USB -kabel
- Potentiometer (eller något variabelt motstånd) för analog ingång
- LED och ett 220-ohm-motstånd för analog utgång
- Breadboard och jumpertrådar
- En dator med Arduino Ide installerad
Steg 1: Förstå analoga stift på Arduino
Arduino UNO har sex analoga ingångsstift (A0-A5) som kan läsa en spänning mellan 0 och 5V och omvandla den till ett digitalt värde mellan 0 och 1023. För analog utgång använder Arduino PWM (pulsbreddmodulering) på vissa digitala stift markerad med ~
(t.ex. 3, 5, 6, 9, 10, 11).
Funktioner som används
-
Analog ingång:
analogRead(pin)
- Läser en spänning (0-5V) och returnerar ett värde mellan 0 och 1023.
-
Analog utgång:
analogWrite(pin, value)
- Matar ut en PWM -signal var
value
sträcker sig från 0 (0% arbetscykel) till 255 (100% arbetscykel).
- Matar ut en PWM -signal var
Steg 2: Kabling Analog ingång (potentiometer)
Anslut en potentiometer till en Arduino analog stift:
Potentiometernål | Arduinoförbindelse |
---|---|
1 (slutstift) | 5V |
2 (Middle/Output) | A0 |
3 (slutstift) | Gard |
Steg 3: Kabling analog utgång (LED)
Anslut en LED med ett 220-ohm-motstånd till en Arduino PWM-stift (t.ex. stift 9):
LED -stift | Arduinoförbindelse |
---|---|
Lång ben (+) | Digital stift 9 |
Kort ben (-) | Gard |
Steg 4: Läsa analog ingång
Använda analogRead()
Funktion för att läsa data från potentiometern:
Exempelkod: Läsning av analog ingång
#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
}
Kör koden och observera potentiometervärden (0-1023) i seriemonitorn.
Steg 5: Skriva analog utgång
Använda analogWrite()
Funktion för att kontrollera ljusstyrkan på en LED:
Exempelkod: analog utgång till LED
#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);
}
}
Steg 6: Kombinera analog ingång och utgång
Du kan använda analoga ingångsvärden för att styra utgången, till exempel justering av LED -ljusstyrka baserat på potentiometerläget.
Exempelkod: Potentiometerkontroller LED -ljusstyrka
#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);
}
Steg 7: Använda if
Uttalanden med analoga data
Du kan skapa villkor med hjälp av analog ingång för att utföra specifika åtgärder:
Exempelkod: Villkorlig kontroll
#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);
}
Tillämpningar av analog läsning/skrivning
- Läsning av miljösensorer (t.ex. ljus, temperatur, luftfuktighet)
- Justera motorhastigheter
- Kontrollerande LED -ljusstyrka
- Ljudsignalbehandling
- Skapa analoga baserade användargränssnitt
Felsökning
- Felaktiga avläsningar från sensorn: Säkerställa korrekt ledning och verifiera potentiometeranslutningarna.
- LED inte tänds: Bekräfta LED -orienteringen och använd ett motstånd för att begränsa strömmen.
- Utgång inte smidig: Lägg till en liten fördröjning eller i genomsnitt ingångsvärdena för stabilitet.
Slutsats
Du har lärt dig hur du utför analog läs- och skrivoperationer med Arduino UNO, MAP -sensorvärden till utgångar och användning if
Uttalanden för villkorad logik. Dessa färdigheter är avgörande för att skapa lyhörda, interaktiva projekt. Experimentera vidare genom att integrera andra analoga sensorer och ställdon för att utöka dina funktioner!