标题:
STM32直流电机霍尔测速 拉力检测 WIFI无线ESP8266无线传输控制LCD1602显示程序
[打印本页]
作者:
兰兰
时间:
2019-8-20 16:46
标题:
STM32直流电机霍尔测速 拉力检测 WIFI无线ESP8266无线传输控制LCD1602显示程序
显示模块:1602 液晶显示
供电方式: USB
输入方式:拉力 霍尔传感器
输出方式:显示屏 WIFI电脑PC上位机
控制芯片:STM32F103RCT6
功能说明:
1、按键可以控制电机的转动,通过霍尔传感器检测直流电机的转速,并显示出来
2、拉力检测,可以检测受力,同时显示屏显示数据。
3、电脑连接ESP8266wifi,可以接收数据。
显示
u8 one[]=" V=0000rad/min"; //第一行显示转速
u8 two[]=" F=00000 "; //第二行显示拉力
PC接收数据
u8 send[]="V=0000 F=00000\r\n";//发送数组
制作出来的实物图如下:
实物.JPG
(66.45 KB, 下载次数: 76)
下载附件
2019-8-20 16:42 上传
电路原理图如下:
0.png
(126.33 KB, 下载次数: 82)
下载附件
2019-8-21 03:39 上传
单片机源程序如下:
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "1602.h"
#include "hx711.h"
#include "exti.h"
#include "timer.h"
unsigned int k;
unsigned long HX711_Buffer = 0;
unsigned long Weight_Maopi = 0,Weight_Shiwu = 0;
u8 one[]=" V=0000rad/min"; //第一行显示
u8 two[]=" F=00000 "; //第二行显示
unsigned int pul=0,speed=0;
int sendflag=0;
u8 send[]="V=0000 F=00000\r\n";//发送数组
void program() //循环体
{
HX711_Buffer = Read_HX711(); //检测拉力
HX711_Buffer = HX711_Buffer/100;
if(HX711_Buffer > Weight_Maopi) //防止反向值
{
Weight_Shiwu = HX711_Buffer;
Weight_Shiwu = Weight_Shiwu - Weight_Maopi; //获取实物的AD采样数值
}else//反向受力则拉力为0
{
Weight_Shiwu=0;
}
two[5]=Weight_Shiwu/10000+'0'; //显示拉力数值
two[6]=Weight_Shiwu%10000/1000+'0';
two[7]=Weight_Shiwu%1000/100+'0';
two[8]=Weight_Shiwu%100/10+'0';
two[9]=Weight_Shiwu%10+'0';
one[5]=speed/1000+'0';//显示速度值
one[6]=speed%1000/100+'0';
one[7]=speed%100/10+'0';
one[8]=speed%10+'0';
LCD_Write_String(0,0,one); //显示第一行
LCD_Write_String(0,1,two); //显示第二行
if(sendflag>=6) //定时发送数据给电脑
{
sendflag=0;
send[2]=one[5]; send[3]=one[6]; send[4]=one[7]; send[5]=one[8];
send[9]=two[5];send[10]=two[6];send[11]=two[7];send[12]=two[8];send[13]=two[9];
printf("AT+CIPSEND=0,15\r\n");
delay_ms(100);
printf(send);
delay_ms(300);
}
}
int main(void)
{
u8 i=0;
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
TIM3_Int_Init(5000,7199);//10Khz的计数频率,计数到5000为500ms
delay_init(72); //延时初始化
LED_Init(); //初始化与LED连接的硬件接口
LCD1602_Init(); //液晶显示初始化
delay_ms(500);
HX711_Init(); //受力传感器
EXTI_Init(); //外部中断
LCD_Write_String(0,0,one); //显示第一行
LCD_Write_String(0,1,two); //显示第二行
HX711_Buffer = Read_HX711();
Weight_Maopi = HX711_Buffer/100; //先检测初始化受力
delay_ms(1000); //延时
printf("AT+CIPMUX=1\r\n"); //配置多连接的模式
delay_ms(800); //延时
printf("AT+CIPSERVER=1,8080\r\n"); //配置端口号
delay_ms(800);
while(1)
{
program(); //程序
delay_ms(10); //程序执行提示
i++;
if(i%5==0)
{
LED0=!LED0;
}
}
}
复制代码
所有资料51hei提供下载:
资料包.7z
(659.7 KB, 下载次数: 96)
2019-8-21 03:40 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1