显示模块: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";//发送数组
制作出来的实物图如下:
电路原理图如下:
单片机源程序如下:
- #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)
|