relais_securise.ino

Arduino Opta (micro PLC, STM32H747) · Archivo : relais_securise.ino · Lenguaje : Arduino · Uso : Piloter les sorties à relais intégrées avec témoin

Las dos salidas de relé de Opta se manejan con una línea vía PLCContainer: este sketch las alterna cada 3 s, como alarma acústica/visual o inversor marcha/paro. El relé es contacto seco: admite 24 V o 230 V de red.

Hardware

Una Opta PLC de STMicroelectronics (STM32H747 en tiempo real + coprocesador seguro i.MX RT1052) programada con el entorno Arduino PLC, alimentada a 24 V DIN. Opta sola (relés integrados); carga de 24 V DC o 230 V AC en los bornes RO1/RO2.

Cableado

Carga entre el borne ROx y el común; respeta el poder de corte del relé (corriente nominal de la ficha). Recomendado empezar con 24 V DC.

Funcionamiento

PLC.begin() configura los periféricos; Relay[n].on/off abre o cierra el contacto seco. El LED RGB testigo refleja el estado para diagnóstico remoto.

Ejecución

Instala el gestor de placas Arduino PLC, selecciona «Opta PLC», conecta USB/DFU y vuelca el programa. El sketch corre por el STM32H747 en tiempo real.

Variantes

Añadir una condición en una entrada digital (sensor) para activar el relé solo con la máquina lista, o un enclavamiento antirretorno.

relais_securise.ino

// Opta PLC : pilotage des 2 relais intégrés (RO1, RO2) avec LED de statut.
// API officielle : bibliothèque PLCContainer fournie par le paquet Arduino PLC.
#include "PLCContainer.h"

PLCContainer PLC;

const unsigned long PERIODE_MS = 3000;   // cycle de 3 s
unsigned long t0 = millis();
bool etat = false;

void setup() {
  Serial.begin(115200);
  PLC.begin();                 // initialise relais, entrées, analogique, Ethernet
  Serial.println("Opta relais : demarrage");
}

void loop() {
  if (millis() - t0 >= PERIODE_MS) {
    t0 = millis();
    etat = !etat;
    if (etat) {
      PLC.Relay[0].on();       // RO1 fermé
      PLC.Relay[1].off();      // RO2 ouvert
      Serial.println("RO1 ON / RO2 OFF");
    } else {
      PLC.Relay[0].off();
      PLC.Relay[1].on();
      Serial.println("RO1 OFF / RO2 ON");
    }
  }
  // LED RGB intégrée en témoin d'état (rouge = relais 1 actif)
  PLC.LedRgb.set(etat ? 255 : 0, 0, etat ? 0 : 255);
}

← Volver a la ficha