Ir al contenido

Leer entradas digitales y analógicas, controlar salidas digitales y analógicas

Con el mapa de pines de la lección anterior ya puedes leer un sensor real y gobernar una salida real. Esta lección cubre las cuatro llamadas básicas de E/S que usarás en casi todos tus sketches: digitalRead, digitalWrite, analogRead y analogWrite, y cómo ver los valores en tu ordenador.

Qué aprenderás

  • Leer una entrada digital y gobernar una salida digital.
  • Imprimir valores en el Monitor Serie para ver lo que lee el PLC.
  • Leer una entrada analógica y escalar el valor en bruto a una magnitud física.
  • Cablear entradas con seguridad, sabiendo que las entradas industriales no son lógica de 5 V.

Antes de cablear: niveles de tensión industriales

Si vienes de un Arduino básico, esta es la mayor diferencia. Las entradas y salidas industriales trabajan a los niveles de tensión de la hoja de datos de tu modelo, normalmente de 12 a 24 V, y no a lógica de 5 V. Consulta en la hoja de datos el rango admitido de cada terminal y desconecta la alimentación antes de cablear. Aplicar una tensión incorrecta a un terminal puede dañar la placa.

Ver lo que lee el PLC: el Monitor Serie

Tu sketch puede enviar texto al ordenador por el mismo cable USB con el que lo cargas. Llama a Serial.begin(9600) en setup, imprime con Serial.println y abre Tools > Serial Monitor a la misma velocidad (9600 baudios).

Leer una entrada digital

Una entrada digital lee uno de dos estados, alto o bajo, y suele conectarse a un interruptor, un sensor de proximidad o el contacto de un relé. Declara el pin como INPUT en setup y léelo en loop.

void setup() {
  Serial.begin(9600);
  pinMode(I0_0, INPUT);
}

void loop() {
  bool state = digitalRead(I0_0);
  Serial.println(state);
  delay(200);
}

Aplica y retira la señal en I0_0 y observa cómo el valor cambia entre 0 y 1 en el Monitor Serie.

Gobernar una salida digital

Una salida digital conmuta entre alto y bajo, y suele accionar un relé, un indicador o una señal de control hacia otro dispositivo. Ya usaste esta llamada en la primera lección de carga.

void setup() {
  pinMode(Q0_0, OUTPUT);
}

void loop() {
  digitalWrite(Q0_0, HIGH);
}

Unir ambas: una entrada controla una salida

Este es el programa de PLC útil más pequeño: la salida Q0_0 sigue a la entrada I0_0. Cablea un interruptor a I0_0 y observa el indicador de la salida.

void setup() {
  pinMode(I0_0, INPUT);
  pinMode(Q0_0, OUTPUT);
}

void loop() {
  digitalWrite(Q0_0, digitalRead(I0_0));
}

Leer una entrada analógica

Una entrada analógica lee un valor continuo en lugar de solo alto o bajo, y suele conectarse a un sensor de 0 a 10 V o de 4 a 20 mA según la variante de tu placa. analogRead devuelve un entero en bruto que después escalas al rango físico real de tu sensor.

void setup() {
  Serial.begin(9600);
}

void loop() {
  int rawValue = analogRead(I0_6);
  Serial.println(rawValue);
  delay(500);
}

El valor en bruto por sí solo no es una medida física. Consulta en la hoja de datos de tu placa la resolución y el rango de entrada, y no des por hecha una escala fija para todas las variantes.

Escalar el valor en bruto

El escalado es lineal. Supongamos, a modo de ejemplo, que tu placa devuelve de 0 a 1023 para una entrada de 0 a 10 V y que tu sensor entrega de 0 a 10 V para el 0 a 100 por ciento de su rango:

float volts = rawValue * 10.0 / 1023.0;
float percent = volts * 10.0;

Sustituye las constantes por la resolución y el rango reales de tu modelo y de tu sensor. El mismo patrón, bruto a voltios y a magnitud física, vale para cualquier sensor analógico.

Gobernar una salida analógica

No todas las variantes de placa tienen salidas analógicas. Donde existen, analogWrite entrega una señal variable en lugar de un simple encendido o apagado, útil para controlar la posición de una válvula o la referencia de velocidad de un variador.

void setup() {
}

void loop() {
  analogWrite(A0_0, 128);
}

Consulta en la hoja de datos el rango de valores que corresponde al fondo de escala de la salida de tu modelo.

Siguiente lección: comunicación cableada, cómo habla el PLC con otros dispositivos. Haz primero el cuestionario de abajo para comprobar lo aprendido.

Calificación
0 0

No hay comentarios por ahora.

para ser el primero en comentar.