Quiero conectar un escáner de código de barras con Arduino. Utilicé MAX232 para convertir los niveles. Solo tomé 3 pines: 2 (RX), 3 (TX) y 5 (GND) del cable DB9 y los entregué a los pines de MAX232 como se muestra en la figura:
Este es el código escrito en Arduino:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(6, 7); // RX, TX
void setup()
{
Serial.begin(9600);
pinMode(6,INPUT);
pinMode(7,OUTPUT);
mySerial.begin(9600);
}
void loop()
{
if (mySerial.available())
Serial.println(mySerial.read());
}
Cuando muevo el pin TX en DB9, obtengo lecturas como 255, 240, 189, etc., es decir, números aleatorios. Sin embargo, cuando escaneo el código de barras, no obtengo ninguna salida. También verifiqué la salida de las clavijas de TX en un osciloscopio, que mostró ondas simétricas durante un período de tiempo muy corto. Nuevamente, cuando el pin 12 de MAX232 (salida TTL) se conectó al osciloscopio, no se observó ninguna lectura.