Analógico Leer y escribir usando el Arduino Uno

Analog Read and Write Using the Arduino Uno

El Arduino Uno admite operaciones de entrada y salida analógica, lo que le permite interactuar con sensores y actuadores que requieren valores precisos. Las operaciones analógicas son esenciales para controlar dispositivos como LED, motores y leer entradas de sensores como potenciómetros o sensores de luz. Este tutorial lo guiará a través de la configuración, lectura y escritura analógica, y utilizando operaciones lógicas como if declaraciones con datos analógicos.


Lo que necesitarás

  1. Arduino Uno con cable USB
  2. Potenciómetro (o cualquier resistencia variable) para la entrada analógica
  3. LED y una resistencia de 220 ohmios para salida analógica
  4. Cables de placa y jersey
  5. Una computadora con el Arduino IDE instalado

Paso 1: Comprensión de los pasadores analógicos en Arduino

El Arduino Uno tiene seis pines de entrada analógica (A0-A5) que pueden leer un voltaje entre 0 y 5V y convertirlo en un valor digital entre 0 y 1023. Para la salida analógica, Arduino usa PWM (modulación de ancho de pulso) en ciertos pines digitales marcado con ~ (por ejemplo, 3, 5, 6, 9, 10, 11).

Funciones utilizadas

  • Entrada analógica: analogRead(pin)
    • Lee un voltaje (0-5V) y devuelve un valor entre 0 y 1023.
  • Salida analógica: analogWrite(pin, value)
    • Emite una señal PWM donde value varía de 0 (0% de ciclo de trabajo) a 255 (ciclo de trabajo 100%).

Paso 2: Entrada analógica de cableado (potenciómetro)

Conecte un potenciómetro a un pasador analógico Arduino:

Pasador de potenciómetro Conexión arduino
1 (Pin final) 5V
2 (medio/salida) A0
3 (Pin final) Gnd

Paso 3: Salida analógica de cableado (LED)

Conecte un LED con una resistencia de 220 ohmios a un pasador PWM Arduino (por ejemplo, pin 9):

Alfiler Conexión arduino
Pierna larga (+) Pin digital 9
Pierna corta (-) Gnd

Paso 4: Lectura de entrada analógica

Usar el analogRead() función para leer datos del potenciómetro:

Código de ejemplo: lectura de entrada analógica

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

Ejecute el código y observe los valores de potenciómetro (0-1023) en el monitor en serie.


Paso 5: Escribir salida analógica

Usar el analogWrite() función para controlar el brillo de un LED:

Código de ejemplo: salida analógica a 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);
  }
}

Paso 6: Combinar entrada analógica y salida

Puede usar valores de entrada analógica para controlar la salida, como ajustar el brillo del LED en función de la posición del potenciómetro.

Código de ejemplo: el potenciómetro controla el brillo del LED

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

Paso 7: Usando if Declaraciones con datos analógicos

Puede crear condiciones utilizando la entrada analógica para realizar acciones específicas:

Código de ejemplo: control condicional

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

Aplicaciones de lectura/escritura analógica

  1. Lectura de sensores ambientales (por ejemplo, luz, temperatura, humedad)
  2. Ajustar las velocidades del motor
  3. Controlar el brillo del LED
  4. Procesamiento de señal de audio
  5. Creación de interfaces de usuario basadas en analógicas

Solución de problemas

  • Lecturas incorrectas del sensor: Asegure el cableado adecuado y verifique las conexiones de potenciómetro.
  • LED no se ilumina: Confirme la orientación LED y use una resistencia para limitar la corriente.
  • Salida no suave: Agregue un pequeño retraso o promedio los valores de entrada para la estabilidad.

Conclusión

Ha aprendido cómo realizar operaciones analógicas de lectura y escritura utilizando Arduino Uno, valores del sensor de mapas a salidas y usar if declaraciones para la lógica condicional. Estas habilidades son cruciales para crear proyectos receptivos e interactivos. ¡Experimente aún más integrando otros sensores y actuadores analógicos para expandir sus capacidades!

Escribir un comentario

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.