Serial TTL
La comunicación Serial TTL (Transistor-Transistor Logic) es un método para transmitir datos a corta distancia con niveles de tensión bajos. Normalmente trabaja a 5V o 3.3V, por lo que es ideal para comunicarse con microcontroladores, sensores y otros dispositivos de bajo consumo. Serial TTL usa un protocolo de comunicación asíncrono y sencillo, a menudo mediante UART (Universal Asynchronous Receiver/Transmitter), para transmitir datos bit a bit. Por sus niveles de tensión limitados y la falta de mecanismos de comprobación de errores, la comunicación TTL suele limitarse a distancias cortas y entornos con poco ruido.
En aplicaciones industriales, Serial TTL se usa habitualmente en controladores lógicos programables (PLC) y otros equipos de automatización para comunicarse con periféricos como sensores y actuadores.
Los PLC de la familia M-Duino tienen 2 puertos Serial TTL. Los PLC de la familia Ardbox, en cambio, no tienen ninguno, pero puedes usar Software Serial como se explica en este artículo.
Hardware
Los PLC de la familia M-Duino tienen dos puertos Serial TTL externos:
- Serial0 (con los pines TX0 y RX0)
- Serial1 (con los pines TX1 y RX1)
Son los puertos serie por hardware del Arduino Mega del interior del PLC; sus características y su uso son los mismos que en una placa Arduino normal. Al usar Serial TTL, las conexiones entre dispositivos son:
Para usar el puerto Serial1, configura el interruptor de comunicaciones así:
- Pon el interruptor 1 (superior) en OFF para habilitar TX1
- Pon el interruptor 2 (superior) en OFF para habilitar RX1

Recuerda alimentar correctamente el PLC con una fuente de alimentación de 12-24V.
Software
Como los puertos serie de los PLC de la familia M-Duino son en esencia los del Arduino Mega, se usan igual que en cualquier otra placa Arduino: con la librería Serial de Arduino.
El siguiente ejemplo muestra cómo enviar y recibir bytes con el puerto serie USB y Serial 1. En el caso de Serial 0, es el mismo puerto que usa el USB, así que puedes usar el objeto Serial.
void setup() { // Initialize serial connections Serial.begin(9600); Serial1.begin(9600); } void loop() { // Read byte from Serial and send it through Serial 1 if (Serial.available()) { // Check if there is available byte to read Serial1.print(Serial.read()); } // Read byte from Serial 1 and send it through Serial if (Serial1.available()) { Serial.print(Serial1.read()); } }
void setup() { // Initialize serial connections Serial.begin(9600); Serial1.begin(9600); } void loop() { // Read byte from Serial and send it through Serial 1 if (Serial.available()) { // Check if there is available byte to read Serial1.print(Serial.read()); } // Read byte from Serial 1 and send it through Serial if (Serial1.available()) { Serial.print(Serial1.read()); } }
Consulta Serial - Arduino Reference para más información sobre la referencia de la API.
No hay comentarios por ahora.