Analog läs och skriv med Arduino Uno

Analog Read and Write Using the Arduino Uno

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

  1. Arduino Uno med USB -kabel
  2. Potentiometer (eller något variabelt motstånd) för analog ingång
  3. LED och ett 220-ohm-motstånd för analog utgång
  4. Breadboard och jumpertrådar
  5. 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).

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

  1. Läsning av miljösensorer (t.ex. ljus, temperatur, luftfuktighet)
  2. Justera motorhastigheter
  3. Kontrollerande LED -ljusstyrka
  4. Ljudsignalbehandling
  5. 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!

Lämna en kommentar

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.