完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
代码下载:https://download.csdn.net/download/sea1216/13685645
4路循迹如下图: 按着它的说明接线就好了,并选定好单片机引脚。我用STM32CUBEMX接着上一篇文章添加4个引脚,最后生成的程序如下(main.h): #define BZ1_Pin GPIO_PIN_4 #define BZ1_GPIO_Port GPIOA #define BZ2_Pin GPIO_PIN_5 #define BZ2_GPIO_Port GPIOA #define BZ3_Pin GPIO_PIN_6 #define BZ3_GPIO_Port GPIOA #define BZ4_Pin GPIO_PIN_7 #define BZ4_GPIO_Port GPIOA 其中说明如: //定义红外避障引脚及功能 //最左边红外头BZ4_Pin //左边红外头BZ3_Pin //最右边红外头BZ1_Pin //右边红外头BZ2_Pin 在main.h中添加如下: //定义读取端口高低电平 #define BZ1_IN HAL_GPIO_ReadPin(BZ1_GPIO_Port,BZ1_Pin)//读取最右边红外头数据,如果为1则表示靠近黑线 #define BZ2_IN HAL_GPIO_ReadPin(BZ2_GPIO_Port,BZ2_Pin) #define BZ3_IN HAL_GPIO_ReadPin(BZ3_GPIO_Port,BZ3_Pin) #define BZ4_IN HAL_GPIO_ReadPin(BZ4_GPIO_Port,BZ4_Pin) 在main.c中添加如下程序: //红外循迹避障测试 //黑色无反射,输出1,灯亮 while(1) { if(BZ1_IN&&BZ2_IN&&BZ3_IN&&BZ4_IN)//如果同时检测到信号,则停车,灯闪烁 { CAR_STOP; LED_on; HAL_Delay(300); LED_off; HAL_Delay(300); } else if(BZ1_IN||BZ2_IN)//如果左边两个红外避障有信号则右移 { LED_on; CAR_RIGHT; } else if(BZ3_IN||BZ4_IN)//如果右边两个红外避障有信号则左移 { LED_on; CAR_LEFT; } else { LED_off; CAR_UP; } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:07 , Processed in 0.738954 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号