杂项——编码器控制小车走固定距离(stm32)

先算出轮子转一周编码器的数值(假设为1000),再算出轮子一周的周长(假设为10cm)。

那么要前进1米只需要转1米/10cm等于10圈,10圈编码器数值为10000。

我们只需要在代码里面写出编码器数值如果<10000则让小车前进,如果>10000让小车停止,即可实现控制小车走固定的距离

编码器.c函数(编码器初始化和中断已省略)

复制代码
int mi=0;


/**********************
编码器
速度读取函数
入口参数:定时器
**********************/
int Read_Speed(int TIMx)
{
	int value_1;
	
	

	switch(TIMx)
	{
		case 2:
				value_1=(short)TIM_GetCounter(TIM2);		//读取编码器的值	
				if(value_1>6230|value_1<-6230)				//如果轮子正转一米或反转一米将计数器清零
				{
					TIM_SetCounter(TIM2,0);	
					mi++;
				}			
		break;
		
		
		
		case 4:	
				value_1=(short)TIM_GetCounter(TIM4);	
				if(value_1>6230|value_1<-6230)
				{
					TIM_SetCounter(TIM4,0);
					//mi++;
				}			
		break;
		default:value_1=0;
	}
	return value_1;
}

主函数(只列出主要部分)

复制代码
		if(mi<1)
		{
		Load(2250,2200);
		}
		else
		{
		
		Load(0,0);
		}
相关推荐
ting_zh2 小时前
音频录制与播放-STM32F779I-EVAL
stm32·嵌入式硬件·音视频
wzf@robotics_notes3 小时前
振动控制提升 3D 打印机器性能
嵌入式硬件·算法·机器人
Jia shuheng5 小时前
#ifdef __cplusplus extern “C“ #endif的作用
c语言·嵌入式硬件
破晓单片机5 小时前
STM32单片机分享:智能净化器系统
stm32·单片机·嵌入式硬件·智能家居
良月十二2655 小时前
ORCAD导出BOM
嵌入式硬件
嗯嗯=6 小时前
STM32单片机学习篇6
stm32·单片机·学习
秋深枫叶红6 小时前
嵌入式第四十九篇——ARM系列——IMX6ULL开发板
arm开发·嵌入式硬件
llilian_166 小时前
b码授时卡 b码解码授时器对无人机领域的重要性 b码解码装置
网络·功能测试·单片机·无人机
电子科技圈7 小时前
芯科科技助力涂鸦智能推出免编码AIoT平台创新智能照明开发
科技·嵌入式硬件·mcu·物联网·智能家居·智能硬件·iot
持梦远方7 小时前
Arduino 学习-第3课:PWM 实现 LED 呼吸灯效果
stm32·单片机