hebjean 发表于 2017-7-2 10:30:15

上程序!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秒)循环一次。
}

bg4iww 发表于 2017-7-2 16:20:37

手头上也有个HMI模块,还不会用:(

太行摄狼 发表于 2017-7-3 16:41:17

吧程序贴上来吧

hebjean 发表于 2017-7-20 14:26:26

太行摄狼 发表于 2017-7-3 16:41
吧程序贴上来吧

附上了。请给看看程序吧。还想用上分段升温,和PID的使用能给说说吗?整不明白了。

biubiu 发表于 2017-8-11 16:46:53

楼主方便留个联系的方式吗?QQ、微信都行,我有些hmi屏幕的问题想要请教您。:loveliness:

biubiu 发表于 2017-8-11 21:28:27

麻烦楼主看到后,不管方不方便留个联系方式,都请回复我一下,我是真心想要请教您,谢谢啦。

5free 发表于 2017-8-15 09:26:48

这个屏好玩,我也整了个

http://blog.davidrobot.com/wordpress/wp-content/uploads/2017/08/Usart_HMI_01.jpg

biubiu 发表于 2017-8-15 10:43:21

5free 发表于 2017-8-15 09:26
这个屏好玩,我也整了个

请问你会用USART HMI屏和arduino板通讯了吗??我有问题想要请教。

hebjean 发表于 2017-8-27 15:30:13

5free 发表于 2017-8-15 09:26
这个屏好玩,我也整了个

交流交流。有成果了没?

biubiu 发表于 2017-8-30 21:30:10

hebjean 发表于 2017-8-27 15:30
交流交流。有成果了没?

楼主为啥不理我?:L

hebjean 发表于 2017-9-2 16:17:06

biubiu 发表于 2017-8-11 21:28
麻烦楼主看到后,不管方不方便留个联系方式,都请回复我一下,我是真心想要请教您,谢谢啦。

微信hebjean 请注明来意

oujz123 发表于 2019-7-24 10:08:23

楼主不打算建个code_end的函数吗:lol

zzp1374 发表于 2020-3-13 19:13:03

本帖最后由 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的库文件一并上传。本文中所使用的库文件均来自于网络或本论坛,如有侵权,请留言,将第一时间删除

zzp1374 发表于 2020-3-13 19:14:57

只是简单验证了一下,能够实现温湿度数据的串口传输,arduino与串口屏之间的单向传输,双向传输正在进一步验证中,待成功后会继续分享,希望对大家有所帮助。
页: [1]
查看完整版本: 上程序!2560和USART HMI 触摸屏通信曲线文本等控件的成果,纯新手勿喷