赞
踩
目录
接线方式
由于黑色具有较强的吸收能力,当循迹模块发射的红外线照射到黑线时,红外线将会被黑线吸收,导致 循迹模块上光敏三极管处于关闭状态,此时模块上一个LED熄灭。在没有检测到黑线时,模块上两个LED常亮
总结就是一句话,有感应到黑线,D0输出高电平 ,灭灯
硬件接线
代码示例:
- #define LeftWheel_Value HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_3)
- #define RightWheel_Value HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_4)
-
- // main函数里
- while (1)
- {
- if (LeftWheel_Value == GPIO_PIN_RESET && RightWheel_Value == GPIO_PIN_RESET)
- goForward();
- if (LeftWheel_Value == GPIO_PIN_SET && RightWheel_Value == GPIO_PIN_RESET)
- goLeft();
- if (LeftWheel_Value == GPIO_PIN_RESET && RightWheel_Value == GPIO_PIN_SET)
- goRight();
- if (LeftWheel_Value == GPIO_PIN_SET && RightWheel_Value == GPIO_PIN_SET)
- stop();
- }
原理:
两轮都有速度且一轮速度大于另一轮
代码实现:
- #define LeftWheel_Value HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_3)
- #define RightWheel_Value HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_4)
- // main函数里
- while (1)
- {
- if(LeftWheel_Value == GPIO_PIN_RESET && RightWheel_Value == GPIO_PIN_RESET)
- {
- __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1,19);
- __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2,19);
- }
- if(LeftWheel_Value == GPIO_PIN_SET && RightWheel_Value == GPIO_PIN_RESET)
- {
- __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1,15);
- __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2,8);
- }
- if(LeftWheel_Value == GPIO_PIN_RESET && RightWheel_Value == GPIO_PIN_SET)
- {
- __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1,8);
- __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2,15);
- }
- if(LeftWheel_Value == GPIO_PIN_SET && RightWheel_Value == GPIO_PIN_SET)
- {
- __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1,0);
- __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2,0);
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。