stm32 usa display oled e botões para ajustar os parâmetros PID para realizar a interação humano-computador

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:
insira a descrição da imagem aqui
insira a descrição da imagem aqui
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!

Acho que você gosta

Origin blog.csdn.net/weixin_44069765/article/details/113808758
Recomendado
Clasificación