基于STM32将E18-D80NK和舵机一起联动

最近我在用STM32mini板子将E18-D80NK和舵机一起联动。想跟大家做一个经验分享。

E18-D80NK介绍:
红外避障传感器是一种集发射与接收于一体的光电传感器。检测
距离可以根据要求进行调节。该传感器具有探测距离远、受可见光干
扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器
人避障、流水线计件等众多自动化产品。
接线时:
它上面有三根线棕线是VCC,蓝线是GND,黑线是OUT。
在这里插入图片描述
它上面有一个led灯即输出信号指示灯,有遮挡物时led亮,无遮挡物时led灭。
测量距离3-80cm(可调)。

程序介绍:
OUT接PB4,舵机黄色线(PWM)接PB5,根据板子不同自行改变。
我的程序实现当有遮挡物时舵机转动

/*****红外测距函数******/
int get_dis(void)
{
		int i;       //定义整型变量i
		float sum=0;   //初始化浮点型变量sum
		
		for(i=0;i<1;i++)     //大家可以把for循环函数去掉
		{	
				GPIO_SetBits(GPIOB,GPIO_Pin_4);	//触发信号
				
	
				while(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_4));	//接收信号
				TIM_Cmd(TIM2,ENABLE);       //使能TIM2定时器
   			    while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_4)); 
				TIM_Cmd(TIM2,DISABLE);        //输出脉冲
				
				sum+=(TIM_GetCounter(TIM2)*1.7)/100.0;     //计算红外距离
				TIM_SetCounter(TIM2,0);          //清零计数值
				delay_ms(1);           //延时函数
		}
		sum/=1;
		return sum;	
}

注意大家可以把程序中的for循环函数去掉,因为它只有一次。主要以库函数的调用定时器的配置,它里面的测距公式不清楚的话看看超声波与舵机的。

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值