stm32利用oled显示屏与按键进行PID参数调节实现人机交互

发布者:Xiaochen520最新更新时间:2022-09-06 来源: csdn关键字:stm32  oled显示屏  按键  人机交互 手机看文章 扫描二维码
随时随地手机看文章

上一个学期在学校做四轮车利用PID实现直线走,在调试过程中,我之前是每改一个参数就下载程序进控制板进行调试,观察车是否偏移来确定pid参数,但是后来我发现这样的效率很慢,经别人提醒后,我自己做了一个小小的人机交互界面,来显示pid的参数以及对pid参数进行调整。


以下是显示效果:

接着我在附上主要代码:

//  功能描述   : OLED 7针SPI接口演示例程(STM32F103系列)

//              说明: 

//              ----------------------------------------------------------------

//              GND  电源地

//              VCC  3.3v电源

//              D0   PA5(SCL)

//              D1   PA7(SDA)

//              RES  PB0

//              DC   PB1

//              CS   PA4              


#include "delay.h"

#include "sys.h"

#include "oled.h"

#include  "key.h"


int main(void)

{

u8 t[]={10,10,10}; //因为取整数在显示屏上面显示比较好处理,所以这里把要显示的数字都改成整数

//至于在PID调参数的时候,你可以把这里的t[0]、t[1]、t[2]当成是P、I、D的参数

//把t[0]、t[1]、t[2]除以10就可以变成小数了,u8是0-255的范围

delay_init();

OLED_Init();

KEY_Init();         //初始化按键

OLED_ColorTurn(0); //0正常显示,1 反色显示

    OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示

OLED_Refresh();

while(1)

{

//由于带回来的器材有限,我这里只做了一个参数的调节,其他参数也是一样的道理

if(KEY0==1)

t[0]++;

if(KEY1==1)

t[0]--;

OLED_ShowString(0,0,"P:",16);

OLED_ShowNum(16,0,t[0],3,16);

OLED_ShowChar(32,0,46,16);//显示ASCII字符,一个ASCII为46的小数点

OLED_ShowString(0,16,"I:",16);

OLED_ShowNum(16,16,t[1],3,16);

OLED_ShowChar(32,16,46,16);//显示ASCII字符,一个ASCII为46的小数点

OLED_ShowString(0,32,"D:",16);

OLED_ShowNum(16,32,t[2],3,16);

OLED_ShowChar(32,32,46,16);//显示ASCII字符,一个ASCII为46的小数点

OLED_Refresh();

delay_ms(200);

}

}


上面只是简单的进行三个参数的调节,方法是通过按键控制参数的增加还是减少,由于我带回家的器件不是很足,程序中只做了一个参数的调节,就是通过两个按键控制参数的增减,实现对PID参数的调节并显示在屏幕上。


关于oled显示屏的各种程序,可以看我之前发的文章,里面有好几种oled显示屏。

关键字:stm32  oled显示屏  按键  人机交互 引用地址:stm32利用oled显示屏与按键进行PID参数调节实现人机交互

上一篇:stm32利用语音识别与播报智能控制led灯
下一篇:stm32f103c8t6控制ESP8266与手机APP通信

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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