Analog lesen und schreiben mit dem Arduino Uno

Analog Read and Write Using the Arduino Uno

Der Arduino Uno unterstützt analoge Eingangs- und Ausgangsvorgänge, sodass Sie mit Sensoren und Aktuatoren interagieren können, die präzise Werte benötigen. Analogische Operationen sind für die Steuerung von Geräten wie LEDs, Motoren und Lesen von Eingaben von Sensoren wie Potentiometern oder Lichtsensoren unerlässlich. Dieses Tutorial führt Sie durch das Setup, das analoge Lesen und Schreiben und die Verwendung von Logikoperationen wie if Aussagen mit analogen Daten.


Was Sie brauchen werden

  1. Arduino uno mit USB -Kabel
  2. Potentiometer (oder einen variablen Widerstand) für einen analogen Eingang
  3. LED und ein 220-Ohm-Widerstand für den analogen Ausgang
  4. Breadboard- und Jumper -Drähte
  5. Ein Computer mit der Arduino -IDE installiert

Schritt 1: Verständnis analogen Pins auf Arduino

Der Arduino Uno verfügt über sechs analoge Eingangsnadeln (A0-A5), die eine Spannung zwischen 0 und 5 V lesen und in einen digitalen Wert zwischen 0 und 1023 umwandeln können. Für analoge Ausgang verwendet Arduino PWM (Pulsbreitenmodulation) auf bestimmten digitalen Pins markiert mit ~ (z. B. 3, 5, 6, 9, 10, 11).

Funktionen verwendet

  • Analogeingabe: analogRead(pin)
    • Liest eine Spannung (0-5 V) und gibt einen Wert zwischen 0 und 1023 zurück.
  • Analogausgang: analogWrite(pin, value)
    • Gibt ein PWM -Signal aus, wo value reicht von 0 (0% Dienstzyklus) und 255 (100% Dienstzyklus).

Schritt 2: Analogeingabe verkabeln (Potentiometer)

Schließen Sie ein Potentiometer an einen Arduino -Analogstift an:

Potentiometerstift Arduino -Verbindung
1 (Endstift) 5v
2 (Mittel-/Ausgang) A0
3 (Endstift) GND

Schritt 3: Analogausgang verkabeln (LED)

Schließen Sie eine LED mit einem 220-Ohm-Widerstand an einen Arduino-PWM-Stift an (z. B. Pin 9):

LED -Stift Arduino -Verbindung
Langes Bein (+) Digital Pin 9
Kurzes Bein (-) GND

Schritt 4: Analogeingabe lesen

Benutze die analogRead() Funktion zum Lesen von Daten aus dem Potentiometer:

Beispielcode: Analogeingabe lesen

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

Führen Sie den Code aus und beobachten Sie die Potentiometerwerte (0-1023) im Seriennachmonitor.


Schritt 5: Analogausgang schreiben

Benutze die analogWrite() Funktionieren Sie die Helligkeit einer LED:

Beispielcode: Analoge Ausgabe zu 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);
  }
}

Schritt 6: Kombinieren Sie den analogen Eingang und die Ausgabe

Sie können analoge Eingangswerte verwenden, um den Ausgang zu steuern, z. B. die Anpassung der LED -Helligkeit basierend auf der Potentiometerposition.

Beispielcode: Potentiometer steuert die LED -Helligkeit

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

Schritt 7: Verwenden if Aussagen mit analogen Daten

Sie können Bedingungen mit analogen Eingaben erstellen, um bestimmte Aktionen auszuführen:

Beispielcode: Bedingte Kontrolle

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

Anwendungen von analogen Lesen/Schreiben

  1. Lesen von Umgebungssensoren (z. B. Licht, Temperatur, Luftfeuchtigkeit)
  2. Motordrehzahl einstellen
  3. Kontrolle der LED -Helligkeit
  4. Audiosignalverarbeitung
  5. Erstellen analogbasierter Benutzeroberflächen

Fehlerbehebung

  • Falsche Messwerte aus dem Sensor: Stellen Sie die ordnungsgemäße Verkabelung sicher und überprüfen Sie die Potentiometer -Verbindungen.
  • Led nicht aufleuchten: Bestätigen Sie die LED -Ausrichtung und verwenden Sie einen Widerstand, um den Strom zu begrenzen.
  • Ausgabe nicht glatt: Fügen Sie eine kleine Verzögerung hinzu oder haben die Eingangswerte für die Stabilität.

Abschluss

Sie haben gelernt, wie man analog -Lese- und Schreibvorgänge mit Arduino Uno durchführt, Kartensensorwerte für Ausgänge und Verwendung if Aussagen für die bedingte Logik. Diese Fähigkeiten sind entscheidend für die Schaffung reaktionsschneller, interaktiver Projekte. Experimentieren Sie weiter, indem Sie andere analoge Sensoren und Aktuatoren integrieren, um Ihre Fähigkeiten zu erweitern!

Hinterlasse einen 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.