上程序!2560和USART HMI 触摸屏通信曲线文本等控件的成果,纯新手勿喷
本帖最后由 hebjean 于 2017-7-20 14:24 编辑http://v.youku.com/v_show/id_XMjg2MjY1MzkyNA
用到的模块
2560
3231
18B20
USART HMI
线若干
现在做了一小半了,出现的问题是配方页输入键盘呗刷没了视频可以看出来,不知道咋回事,:L
再有就是配方页怎么把输入的数据发送给2560啊?阶段升温的程序怎么做呢,还想用上PID..
问题一个比一个头疼,现在是遇到瓶颈了。求大神指导~!!如果视频挂了,请移步.......
http://v.youku.com/v_show/id_XMjg2MjY1MzkyNA==.html?spm=a2h3j.8428770.3416059.1
大神请留下联系方式吧。
附上程序!顺便请各位给梳理下程序
#include <Wire.h>
#include <DS3231.h>
#include <OneWire.h>
#include <DallasTemperature.h>
int a; //定义变量,用于存放温度数据
/****************************************************************************
* 名称:温度传感器
* 功能:
* 参数:
****************************************************************************/
// 定义DS18B20数据口连接arduino的2号IO上
#define ONE_WIRE_BUS 2
// 初始连接在单总线上的单总线设备
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
/****************************************************************************
* 名称:时钟模块
* 功能:DS3231
* 参数:
****************************************************************************/
DS3231 Clock;
bool h12;
bool PM;
bool Century=false;
String comdata = ""; //串口数据字符串
int numdata = {},mark = 0;
int year, month, date, DoW,week , hour, minute, second,temperature; //时间数据缓存
void setup() {
// 设置串口通信波特率
Serial.begin(9600);
// 初始库
sensors.begin();
// 启动I2C(IIC)接口
Wire.begin();
}
void ReadDS3231()
{
int second,minute,hour,date,month,year,temperature;
second=Clock.getSecond();
minute=Clock.getMinute();
hour=Clock.getHour(h12, PM);
date=Clock.getDate();
month=Clock.getMonth(Century);
year=Clock.getYear();
temperature=Clock.getTemperature();
Serial.print("20");
Serial.print(year,DEC);
Serial.print('-');
Serial.print(month,DEC);
Serial.print('-');
Serial.print(date,DEC);
Serial.print(' ');
Serial.print(hour,DEC);
Serial.print(':');
Serial.print(minute,DEC);
Serial.print(':');
Serial.print(second,DEC);
Serial.print('\n');
}
void loop() {
// put your main code here, to run repeatedly:
sensors.requestTemperatures(); // 发送命令获取温度
Serial.print("page2.t100.txt=\""); //指令
Serial.println(sensors.getTempCByIndex(0));
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
Serial.print("t0.txt=\""); //指令
Serial.print(Clock.getYear());
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
Serial.print("t1.txt=\""); //指令
Serial.println(Clock.getMonth(Century));
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
Serial.print("t2.txt=\""); //指令
Serial.println(Clock.getDate());
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
Serial.print("t3.txt=\""); //指令
Serial.println(Clock.getHour(h12, PM));
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
Serial.print("t4.txt=\""); //指令
Serial.println(Clock.getMinute());
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
Serial.print("t5.txt=\""); //指令
Serial.println(Clock.getSecond());
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
Serial.print("t12.txt=\""); //指令
Serial.println(Clock.getTemperature());
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
a=(int)sensors.getTempCByIndex(0); //将温度数据去除小数
Serial.print("add 8,0,"); //指令
Serial.print(a);
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
delay(100);//间隔ms(1000ms=1秒)循环一次。
} 手头上也有个HMI模块,还不会用:( 吧程序贴上来吧 太行摄狼 发表于 2017-7-3 16:41
吧程序贴上来吧
附上了。请给看看程序吧。还想用上分段升温,和PID的使用能给说说吗?整不明白了。 楼主方便留个联系的方式吗?QQ、微信都行,我有些hmi屏幕的问题想要请教您。:loveliness: 麻烦楼主看到后,不管方不方便留个联系方式,都请回复我一下,我是真心想要请教您,谢谢啦。 这个屏好玩,我也整了个
http://blog.davidrobot.com/wordpress/wp-content/uploads/2017/08/Usart_HMI_01.jpg 5free 发表于 2017-8-15 09:26
这个屏好玩,我也整了个
请问你会用USART HMI屏和arduino板通讯了吗??我有问题想要请教。 5free 发表于 2017-8-15 09:26
这个屏好玩,我也整了个
交流交流。有成果了没? hebjean 发表于 2017-8-27 15:30
交流交流。有成果了没?
楼主为啥不理我?:L biubiu 发表于 2017-8-11 21:28
麻烦楼主看到后,不管方不方便留个联系方式,都请回复我一下,我是真心想要请教您,谢谢啦。
微信hebjean 请注明来意 楼主不打算建个code_end的函数吗:lol 本帖最后由 zzp1374 于 2020-3-13 19:20 编辑
//摄氏温度度转化为华氏温度
double Fahrenheit(double celsius)
{
return 1.8 * celsius + 32;
}
//摄氏温度转化为开氏温度
double Kelvin(double celsius)
{
return celsius + 273.15;
}
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 7//pin7
#include "DS18B20_S.h"
DS18B20_Sds(5);//pin5
void setup()
{
Serial.begin(9600);//初始化串口
while (!Serial);//等待串口空闲
}
void loop()
{
int chk = DHT11.read(DHT11PIN);//读取DHT11数据
Serial.write(0XFF); //按照串口屏通信协议要求,每一条命令结束后要发送一次结束符
Serial.write(0XFF);
Serial.write(0XFF);
delay(200);
ds.start();//读取1820数据
delay(200);
Serial.print("t7.txt=\""); //指令
Serial.println((float)DHT11.temperature, 2);
Serial.print("\"");
delay(200);
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
delay(200);
Serial.print("t8.txt=\""); //指令
Serial.print((float)DHT11.humidity, 2);
Serial.print(" %");
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
delay(200);
Serial.print("t10.txt=\""); //指令
Serial.println(ds.get());
Serial.print("\"");
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
delay(200);
Serial.print("code_c");//立即清空串口指令缓冲区还没有执行的所有指令
Serial.write(0XFF); //结束符
Serial.write(0XFF);
Serial.write(0XFF);
delay(500);
}
为了大家验证顺畅,顺便将DS18B20和DHT11的库文件一并上传。本文中所使用的库文件均来自于网络或本论坛,如有侵权,请留言,将第一时间删除 只是简单验证了一下,能够实现温湿度数据的串口传输,arduino与串口屏之间的单向传输,双向传输正在进一步验证中,待成功后会继续分享,希望对大家有所帮助。
页:
[1]