【问题标题】:Reading a Tx from a barcode scanner with a Arduino Mega 2560 - RS232使用 Arduino Mega 2560 - RS232 从条形码扫描仪读取 Tx
【发布时间】:2016-01-07 17:35:06
【问题描述】:

在过去的几天里,我一直在尝试创建一个从条形码扫描仪的 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)和GND

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

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

我如何实现最终目标?

提前致谢!

【问题讨论】:

  • 你的问题是......?
  • 您希望发生什么?发生了什么?
  • 你见过this example使用pinmode吗,你需要使用mySerial.listen()吗?
  • 我的问题是,我该如何实现我上面所说的最终目标(也更新了问题。)

标签: c arduino serial-port barcode-scanner


【解决方案1】:

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 可以处理范围的设备,对于以 5V 运行的板,通常为 0V 至 5V,对于以 3.3V 运行的板,通常为 0V 至 3.3V。

Arduino SoftwareSerial Reference page

【讨论】:

  • 好的,这可以解决问题,但可以在没有 RS-232 驱动程序的情况下完成吗?我们之前的小组也没有使用 rs 232 驱动程序。
猜你喜欢
  • 1970-01-01
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-04
相关资源
最近更新 更多