|
|

楼主 |
发表于 2019-8-1 12:25:10
|
显示全部楼层
- /*
- 【Arduino】66种传感器模块系列实验(76)
- 实验七十六:TTL转RS-485模块 MAX485 RS485模块
- 程序之二,主机代码
- */
- #include <SoftwareSerial.h>
- SoftwareSerial Master(10, 11);
- char val[5]={'0','0','N','N','N'}; //定义一个数组,用来将从机地址和信息匹配
- char address; //定义从机地址
- int DE_RE=2;
-
- void setup() {
- Serial.begin(9600); //初始化
- Serial.println("Master is ready!");
- Master.begin(38400);
- pinMode(DE_RE,OUTPUT);
- digitalWrite(DE_RE,LOW);
- }
-
- void loop()
- {
- for(int i = 49 ; i < 51 ; i++) //用来对每个从机进行一次大轮询
- {
- //==========发送车位序号i=============================================//
- digitalWrite(DE_RE,HIGH); //将主机设为发送状态
- address = i; //给从机发地址,此时是字符式,49对应1的字符串
- Master.write(address); //传唤对应号码的从机
- digitalWrite(DE_RE,LOW); //然后立马换成接收状态
- delay(500); //等一下从机反应,之前没有delay,
- //maste.available还没反应过来,就过去了,加个
- //delay刚刚好
- //或许等从机加了超声波,还得调delay的时间
-
- //==========接收车位信息到数组val里===================================//
- while(Master.available()) //等从机把数据发过来
- {
- val[i-49] = Master.read(); //读车位信息到数组val
- }
- delay(1000); //小循环
- } //整个for循环结束
-
- for(int a = 0 ; a < 5 ; a++) //然后把整个字符串打印出来进行观察
- {
- Serial.print(a+1);
- Serial.println(val[a]);
- }
-
- delay(2000); //最后一整个过程结束后,多等两秒钟
- }
复制代码 |
|