
这个程序是几路红外循迹,哪几个引脚是连接红外传感器的,哪几个是读取数据的
关注引自免费微信小程序:皆我百晓生
这是一个基于STM32F103C8T6单片机的红外循迹系统的设计代码片段。该系统设计用于跟踪黑线,并根据黑线的位置调整机器人的移动方向。
这是一个五路红外循迹系统,因为它有五个独立的红外传感器用于检测黑线。这些传感器被连接到以下几个GPIO引脚上:
代码中用来读取红外传感器数据的部分如下:
sensor[0]=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2); // 最左的传感器
sensor[1]=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3);
sensor[2]=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_11);
sensor[3]=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4);
sensor[4]=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_13); // 中央的传感器
sensor[5]=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_14);
sensor[6]=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15);
sensor[7]=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_11);
sensor[8]=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_12); // 最右的传感器
sensor[9]=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9); // 最右的传感器
这段代码会遍历所有连接到红外传感器的GPIO引脚,并通过GPIO_ReadInputDataBit函数读取每个引脚的值。当黑线被检测到时,传感器返回低电平(0),而没有检测到黑线则返回高电平(1)。这些值随后被存储在名为sensor的数组中,用于后续处理和决策。
为了更好地理解电路布局,可以参考以下简化版电路图示例:
+-----------------------+
| |
| IR Sensor 1 | GPIOA Pin 2
| |
+-----------------------+
| |
| IR Sensor 2 | GPIOA Pin 3
| |
+-----------------------+
| |
| IR Sensor 3 | GPIOA Pin 11
| |
+-----------------------+
| |
| IR Sensor 4 | GPIOC Pin 4
| |
+-----------------------+
| |
| IR Sensor 5 | GPIOA Pin 13
| |
+-----------------------+
| |
| IR Sensor 6 | GPIOA Pin 14
| |
+-----------------------+
| |
| IR Sensor 7 | GPIOA Pin 15
| |
+-----------------------+
| |
| IR Sensor 8 | GPIOC Pin 11
| |
+-----------------------+
| |
| IR Sensor 9 | GPIOC Pin 12
| |
+-----------------------+
| |
| IR Sensor 10 | GPIOC Pin 9
| |
+-----------------------+
在这个电路中,每个红外传感器都有一个发射器和接收器部分,它们通常与单片机的GPIO引脚相连,以便读取接收到的光强变化,从而判断是否有黑线存在。