stm32 usa display oled e botões para ajustar os parâmetros PID para realizar a interação humano-computador
No semestre passado, eu estava trabalhando em um veículo de quatro rodas na escola para usar o PID para andar em linha reta. Durante o processo de depuração, costumava baixar o programa na placa de controle para depuração toda vez que alterava um parâmetro se o carro foi deslocado para determinar o parâmetro PID, mas depois descobri que esse tipo de eficiência é muito lento.Após ser lembrado por outros, fiz uma pequena interface de interação humano-computador para exibir os parâmetros do pid e ajustar os parâmetros do pid.
O seguinte é o efeito de exibição:
Em seguida, anexo o código principal:
// 功能描述 : 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);
}
}
O acima é apenas um simples ajuste de três parâmetros. O método é controlar o aumento ou diminuição dos parâmetros através dos botões. Como os dispositivos que trouxe para casa não são muito suficientes, apenas um ajuste de parâmetro é feito no programa, ou seja , os parâmetros são controlados por dois botões. O aumento ou diminuição dos parâmetros PID podem ser ajustados e exibidos na tela.
Sobre os vários programas de display OLED, você pode ler meu artigo anterior, existem vários display OLED.
O link do código está anexado abaixo:
stm32 usa o display e botões oled para exibir e ajustar os parâmetros do PID.
Vou enviar para você o mais rápido possível. Se você tiver alguma dúvida, pode comentar abaixo!