944|1

190

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【DigiKey“智造万物,快乐不停”创意大赛】基于touchgfx的智能工业控制+作品提交 [复制链接]

 

基于touchgfx的智能工业控制    
作者:huihuihaha

 

一,作品简介

最开始的功能介绍,基于touchgfx的智能工业控制,采用stm32H7B3其实就是类似PLC的功能基本功能介绍:1. 8路数字开关量输入(带光耦隔离)。2. 3路模拟量(0到20ma/0到10V或者0到3.3V)输入,也可以扩展多路输入主要是针对工控当中,压力传感器,温度传感器,流量传感器等。3. 5路继电器输出。4.一路模拟输出(主要是通过PWM转电压或者转电流,也可以外加DAC输出)。5. 485通讯。6. CAN通讯。7. TTL通讯。8.  支持高速脉冲输出。9. 支持高速脉冲输入。10. 24V工业供电板子带wifi和摄像头功能,可以扩展为带视屏监控工业控制,并同屏显示

 

首先说明一下板子遇到的问题,刚开始演示了板子上电自带的DEMO,有点异常

后来自己烧录demo,发现烧录不进去

具体问题在这个贴子里

https://bbs.eeworld.com.cn/thread-1267153-1-1.html?u_atoken=47114d17-0c35-4e9d-8657-29268b3b9b2b&u_asession=01002wM1u95o2YnjS5Pr7qUBsqzpW3GccQ_RWFZq01VWml1BuXFzR05TOWfwcwr-PymZM6L1f5NTNcWGaITlOzUNsq8AL43dpOnCClYrgFm6o&u_asig=056p5cIcPIKtRzQlYqVpNFBYMl5JSO5cAo7BtFZ6OTSs3yQFj_Vxvv3M2cwR7AC4JBDAvQsFMDchG23Hh9ZDuaxAHXpLYNFPtxEK9wXVb_czkcizBTPTYdDk7qkeGvzB-Bpq5wK7uHxbxamc5qwkv4KQBsq-L0CvNn-Q7JLgNjGjEgDMYd2UzP3FbXDFEFR5FKksmHjM0JOodanL5-M1Qs1X4im3a6OHmSHvBK-huLTVZq-fcI8Gz2Y-WcBbnRIQ2DOobPaQATwXM0bubPD0F6mhBG2rOAAZRve28oIW0KUOTUpLHxH1iRKZmnjAu0Zefw&u_aref=maMXljs7aKEyYm%2FPyOi62VOR39g%3D

整体界面如下

 

非常感谢sipower和wenyangzeng两位大哥的大力指导 啊

烧写内部flash没有问题,外部flash好像是烧录成功,但是程序不能运行,提示也是有错误的,作品提交时间马上就到了,先把整体功能提交下图是整体的UI。其实这个就是一个串口屏,工业控制的.

代码框架

是采用touchgfx的模版生成代码并增加串口开发大大节省了开发时间,减轻了开发难度。

应用触摸控件,显示控件,图标切换等

二、系统框图

三、各部分功能说明

  HB3这个板子主要是人机界面控制这块,基于touchgfx的智能工业控制,采用stm32H7B3其实就是类似PLC的功能基本功能介绍:

1、控制板是以stm32G070作为主控,三路开关输入,光耦隔离,四路模拟量输入,两路PT100输入,485输出,TTL输出,通过TTL和H7B3连接

 

2、代码这块

ADC采集这块

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{

//uint16_t  Pt1_data; //PT100输入1-2
//uint16_t  Pt2_data;
	static uint16_t sum0=0;
	static uint16_t sum1=0;
	static uint16_t sum2=0;
	static uint16_t sum3=0;
	static uint16_t sum4=0;
	static uint16_t sum5=0;
	float y1,y2,y3,y4,y5,y6;
    static uint16_t adc_cnt = 0;
//	adc_cnt++;
	sum0+=adc_buffer[0];
	sum1+=adc_buffer[1];
	sum2+=adc_buffer[2];
	sum3+=adc_buffer[3];
	sum4+=adc_buffer[4];
	sum5+=adc_buffer[5];
	if(++adc_cnt>=10)
    {
		adc_cnt=0;
		Vin1_data=sum0/10;
		sum0=0;
		Vin1_data=3300*Vin1_data/4096;//转换成mv
		
		Vin2_data=sum1/10;
		sum1=0;
		Vin2_data=3300*Vin2_data/4096;//转换成mv
		
		Iin1_data=sum2/10;
		sum2=0;
		Iin1_data=3300*Iin1_data/4096/150;//转换成ma
		
		Iin2_data=sum3/10;
		sum3=0;
		Iin2_data=3300*Iin2_data/4096/150;//转换成ma
		
		
		Pt1_data=sum4/10;//PT100输入1-2
		sum4=0;
		y1=(2.5f*(1.0f/21.0f));//桥的基准电压V2
		y2=(float)((Pt1_data*(3.3f/4096.0f))/100.0f);//算出差分电压
		y3=(float)y1+y2;//PT电阻电压V3
		y4=(float)(2000.0f*y3)/(2.5f-y3);//普通电阻阻值RX+Rd
		y5=(float) (y4-100.0f)/0.385f; //电阻
		y6=y5+17.2f;
		Pt1_data=y6*10;
		
		Pt2_data=sum5/10;//PT100输入1-2
		sum5=0;
//		printf("\r\n温度为:");
//		printf("%f",y6);
//		printf("度");
		
		 
			



        
    }
}
// 定时器更新中断回调函数

输入输出这块

void X_Y_filter(void)
{
  /*输入状态刷新*/
  if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_10)==0)X00_State = 1;else X00_State = 0;
  if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11)==0)X01_State = 1;else X01_State = 0;
  if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_12)==0)X02_State = 1;else X02_State = 0;
	
  /*输出状态刷新*/
  if(!Y00)Y00_State = 0;else Y00_State = 1;
  if(!Y01)Y01_State = 0;else Y01_State = 1;
  if(!Y02)Y02_State = 0;else Y02_State = 1;
  if(!Y03)Y03_State = 0;else Y03_State = 1;
  if(!Y04)Y04_State = 0;else Y04_State = 1;
}

 

作品源码
我的下载_个人中心- - 电子工程世界EEWORLD

https://download.eeworld.com.cn/detail/huihuihaha/630463

 

六、项目总结

通过本次大赛的参赛过程,深切感受到STM32H7B3I的强大功能,主要是对touchgfx开发的熟悉。

新建 Microsoft Word 文档.docx (485.47 KB, 下载次数: 4)

最新回复

touchgfx开发还是很有特点的   详情 回复 发表于 2024-1-5 07:34
点赞 关注
 
 

回复
举报

6822

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

touchgfx开发还是很有特点的

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表