使用 Arduino Mega 2560 - RS232 从条形码扫描仪读取 Tx

Reading a Tx from a barcode scanner with a Arduino Mega 2560 - RS232

在过去的几天里,我一直在尝试创建一个程序来读取条码扫描器的 Tx。 我尝试了很多不同的东西,比如不同的程序,还有不同的扫描仪。 我写的示例程序例如:

#include <SoftwareSerial.h>
SoftwareSerial mySerial (50, 51);
unsigned char incomingByte;


void setup ()
{
    Serial.begin (9600);
    mySerial.begin (9600);
    Serial.println ("begin initial Serial!\n");
}

void loop ()
{
    while(mySerial.available () > 0)
    {
        incomingByte=mySerial.read ();
        Serial.print (incomingByte,HEX);
    }
    Serial.println ();
}

此时我无法提供正确的连接图(有机会时会提供),但是 arduino MEGA 2560 通过 3 根线连接到条码扫描仪,A Tx(引脚 50),Rx(引脚51) 和接地

传输数据的背景信息: 起始位:0x02 停止位:0x03

最终目标: 扫描仪扫描条形码,arduino 读取数据流并在识别代码时发送输出。

我如何实现最终目标?

提前致谢!

Arduino 2560 50和51脚为TTL电平信号。您需要提供一个 RS-232 驱动器来反转和电平转换信号。

示例驱动程序是 MAX232CPE。

http://www.surplus-electronics-sales.com/index.php?main_page=product_info&cPath=15&products_id=828&gclid=CJv7vNWim8oCFYOEaQodSjQDFQ

此外,softwareserial 支持反转逻辑电平的选项。来自 Arduino 页面:

inverse_logic:用于反转传入位的意义(默认为正常逻辑)。如果设置,SoftwareSerial 会将 Rx 引脚上的低电平(引脚上的电压通常为 0 伏)视为 1 位(空闲状态),将高电平(引脚上的电压通常为 5 伏)视为 0 位。它还会影响写入 Tx 引脚的方式。默认值为 false。

警告:您不应连接输出串行数据超出 Arduino 可以处理的范围的设备,通常 0V 到 5V,对于板 运行 在 5V,和 0V 到 3.3V 对于板 运行 在 3.3V。

Arduino SoftwareSerial Reference page