ocrobot:alpha:rs485:tutorial01
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
ocrobot:alpha:rs485:tutorial01 [2017/10/03 08:25] – 外部编辑 127.0.0.1 | ocrobot:alpha:rs485:tutorial01 [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== RS485通信实验 ====== | ||
+ | <WRAP left round info 100%> | ||
+ | 这个例子教你怎样通过RS485模块,使两块MEGA328-U通信。 | ||
+ | </ | ||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | ==== 硬件 ==== | ||
+ | * [[ocrobot: | ||
+ | * [[ocrobot: | ||
+ | * [[ocrobot: | ||
+ | * [[ocrobot: | ||
+ | * 锂电池 两块 | ||
+ | * 100米长的双绞线 | ||
+ | |||
+ | ==== 搭建电路 ==== | ||
+ | |||
+ | 1、首先准备A组,连接电脑与mega328-u,下载A组程序,完成之后,断开数据线。 | ||
+ | |||
+ | 2、将mega328-u、RS-485、Li power三者堆叠, | ||
+ | |||
+ | 3、准备B组,连接电脑与另外一块mega328-u,下载B组程序,完成之后,断开数据线。 | ||
+ | |||
+ | 4、将mega328-u和剩下的RS-485、Li power、1602LCD显示屏,四者堆叠, | ||
+ | |||
+ | 注意:A组的RS-485的A口接什么颜色的双绞线,B组的A口也要接上对应颜色的双绞线,B口同理。 | ||
+ | |||
+ | 串口通讯波特率为9600 | ||
+ | |||
+ | 连接效果如图: | ||
+ | {{: | ||
+ | |||
+ | 展示效果如图: | ||
+ | {{: | ||
+ | </ | ||
+ | ====拨码开关==== | ||
+ | A组把5,6拨上; | ||
+ | |||
+ | B组把1,2,5,6拨上。 | ||
+ | ==== A组代码 ==== | ||
+ | <code cpp> | ||
+ | | ||
+ | /* | ||
+ | A组代码如下 | ||
+ | 从0开始计数,并将数据发送至串口 | ||
+ | */ | ||
+ | |||
+ | long i=0; | ||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | void loop() { | ||
+ | |||
+ | Serial.println(i); | ||
+ | i++; | ||
+ | | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== B组代码 ==== | ||
+ | <code cpp> | ||
+ | /* | ||
+ | B组代码 | ||
+ | 接收串口数字,并显示在1602上 | ||
+ | */ | ||
+ | |||
+ | |||
+ | #include < | ||
+ | #include < | ||
+ | LiquidCrystal_I2C lcd(0x20, | ||
+ | |||
+ | void setup() { | ||
+ | lcd.init(); | ||
+ | lcd.backlight(); | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | void loop() { | ||
+ | if (Serial.available() ) // | ||
+ | {delay(100); | ||
+ | |||
+ | lcd.clear(); | ||
+ | | ||
+ | while (Serial.available() > 0) {// 读取字符 | ||
+ | |||
+ | lcd.write(Serial.read()); | ||
+ | |||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | [[ocrobot: |