INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
DIGITALES
● Menos susceptibles al ruido
ANALOGICAS
ENTRADAS Y
● Más sensibles a las interferencias SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
● Lectura de Sensores Ambientales:
○ Sensores de Temperatura
○ Sensores de Luz
○ Sensores de Humedad
● Interfaz de Usuario INTRODUCCIÓN
○ Potenciómetros
○ Joysticks Analogicos
A LAS
Monitoreo y Registro de Datos
ENTRADAS Y
SALIDAS
●
○ Sensores de Presión y Fuerza
○ Sensores de Nivel de Agua
ANALOGICAS
● Control de Dispositivos Activos
○ Control de Motores DC
○ Control de Brillo de Leds
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
● Resolución:
○ 10 bits (1024 niveles distintos)
Voltaje de Referencia:
INTRODUCCIÓN
●
○ Vref: Puede ser 5V o 3.3V
○ El valor de referencia puede configurarse mediante la función:
analogReference(type) A LAS
type puede ser
DEFAULT 5V o 3.3V
ENTRADAS Y
INTERNAL 1.1V O 2.56V
EXTERNAL voltaje aplicado al pin AREF
SALIDAS
ANALOGICAS
● La frecuencia de muestreo depende del tiempo de conversión y de la
frecuencia del reloj.
● En general se busca linealidad, pero puede existir alguna desviación
Automatización y Control - Programación
Ing. Martín. Pedro M.
● Resolución:
○ 10 bits (1024 niveles distintos)
Voltaje de Referencia:
INTRODUCCIÓN
●
○ Vref: Puede ser 5V o 3.3V
○ El valor de referencia puede configurarse mediante la función:
analogReference(type) A LAS
type puede ser
DEFAULT 5V o 3.3V
ENTRADAS Y
INTERNAL 1.1V O 2.56V
EXTERNAL voltaje aplicado al pin AREF
SALIDAS
ANALOGICAS
● La frecuencia de muestreo depende del tiempo de conversión y de la
frecuencia del reloj.
● En general se busca linealidad, pero puede existir alguna desviación
Automatización y Control - Programación
Ing. Martín. Pedro M.
// Definir el pin del potenciómetro
const int potPin = A0;
// Variables para almacenar los valores leídos
int rawValue = 0;
float voltage = 0.0;
void setup() {
// Iniciar la comunicación serial a 9600 baudios
INTRODUCCIÓN
Serial.begin(9600);
// Configurar el pin A0 como entrada (opcional, ya que es la configuración predeterminada)
A LAS
pinMode(potPin, INPUT);
}
void loop() {
ENTRADAS Y
// Leer el valor crudo del ADC (0-1023)
rawValue = analogRead(potPin);
SALIDAS
// Convertir el valor crudo a voltaje
// ADC de 10 bits (1024 niveles) y referencia de 3.3V
voltage = rawValue * (3.3 / 1023.0);
// Imprimir los valores en la consola serial
Serial.print("Valor crudo del ADC: ");
Serial.print(rawValue);
ANALOGICAS
Serial.print("\tVoltaje: ");
Serial.print(voltage);
Serial.println(" V");
// Esperar 500 milisegundos antes de la próxima lectura
delay(500);
}
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
● Importancia de calibración en aplicaciones de sensores
A LAS
● Metodos de calibración para diferentes tipos de sensores ENTRADAS Y
● Ejemplos prácticos de calibración de sensores analogicos SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
// Definir el pin del potenciómetro
const int potPin = A0;
// Tamaño del filtro de media móvil
const int filterSize = 10;
int readings[filterSize]; // Arreglo para almacenar las lecturas
int readIndex = 0; // Índice de la lectura actual
int total = 0; // Suma de las lecturas
int average = 0; // Media de las lecturas
void setup() {
// Iniciar la comunicación serial a 9600 baudios
Serial.begin(9600);
INTRODUCCIÓN
// Inicializar todas las lecturas a 0
for (int i = 0; i < filterSize; i++) {
readings[i] = 0;
}
}
A LAS
void loop() {
// Restar la lectura más antigua del total
total = total - readings[readIndex];
ENTRADAS Y
// Leer el valor crudo del ADC (0-1023)
readings[readIndex] = analogRead(potPin);
// Añadir la nueva lectura al total
total = total + readings[readIndex];
SALIDAS
// Avanzar al próximo índice
readIndex = readIndex + 1;
// Si llegamos al final del arreglo, volver al inicio
ANALOGICAS
if (readIndex >= filterSize) {
readIndex = 0;
}
// Calcular la media de las lecturas
average = total / filterSize;
// Convertir la media a voltaje
float voltage = average * (3.3 / 1023.0);
// Imprimir los valores en la consola serial
Serial.print("Valor crudo filtrado del ADC: ");
Serial.print(average);
Serial.print("\tVoltaje filtrado: ");
Serial.print(voltage);
Serial.println(" V");
Automatización y Control - Programación
// Esperar 100 milisegundos antes de la próxima lectura
delay(100);
}
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
La modulacion por ancho de pulso es una tecnica utilizada para simular senales
analogicas utilizando senales digitales.
● Ciclo de Trabajo (Duty Cycle): es el porcentaje de tiempo que la señal
PWM permanece en alto. INTRODUCCIÓN
● Frecuencia: es la velocidad a la que la señal PWM alterna entre estados. A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
Señal PWM:
● Es una señal digital que alterna rápidamente entre encendido y apagado.
● La proporción de tiempo encendido a apagado determina el ciclo de trabajo y, INTRODUCCIÓN
por tanto, la aparente magnitud analogica.
A LAS
ENTRADAS Y
● Utilizada en aplicaciones donde no se necesita una senal analogica pura, como
en el control de brillo de leds y velocidad de motores.
Señal Analogica Pura: SALIDAS
● Es una señal continua que puede tomar cualquier valor dentro de un rango
definido.
ANALOGICAS
● Más adecuada para aplicaciones que requieren señales precisas y sin
fluctuaciones.
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
//Heartbeat fading effect
int brightness = 0;
void setup()
{
}
pinMode(9, OUTPUT);
INTRODUCCIÓN
void loop() A LAS
ENTRADAS Y
{
for (brightness = 0; brightness <= 255; brightness += 5) {
SALIDAS
analogWrite(9, brightness);
delay(30); // Wait for 30 millisecond(s)
ANALOGICAS
}
for (brightness = 255; brightness >= 0; brightness -= 5) {
analogWrite(9, brightness);
delay(30); // Wait for 30 millisecond(s)
}
}
Automatización y Control - Programación
Ing. Martín. Pedro M.
INTRODUCCIÓN
A LAS
ENTRADAS Y
SALIDAS
ANALOGICAS
Automatización y Control - Programación
Ing. Martín. Pedro M.
#include <Servo.h>
INTRODUCCIÓN
Servo myServo;
A LAS
void setup() {
myServo.attach(9);
}
void loop() {
myServo.write(0); // Mover el servo a 0 grados ENTRADAS Y
SALIDAS
delay(10000); // Esperar 10 segundos
ANALOGICAS
myServo.write(180); // Mover el servo a 180 grados
delay(10000); // Esperar 10 segundos
}
Automatización y Control - Programación
Ing. Martín. Pedro M.