拓展项目三:由四位红外传感器控制电机-基础版
Posted 鑫仔_要变强
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拓展项目三:由四位红外传感器控制电机-基础版相关的知识,希望对你有一定的参考价值。
前言:
在前面的基础上,将传感器的管脚初始化,读取传感器状态,写逻辑进行控制。该传感器返回数字信号(0/1)。
一、4种输入模式:
输入浮空 输入上拉 输入下拉 模拟输入
由于传感器返回的是0/1状态,采用输入上拉模式。
二、电路图:
三、查阅相关手册
四个管脚没有特殊功能。
四、外加代码
main.c
#include "motor.h"
#include "stdio.h"
#include "delay.h"
#include "stm32f10x.h"
#include "followline.h"
u8 UART3_data,UART1_data;
u8 UART3_rcv[20],UART3_rcv_count;
u8 UART1_rcv[50],UART1_rcv_count,Uart1_finish;
int main(void)
{
delay_init();
GPIO_init();
followline_init();
TIME4_init(7199,10);
while(1)
{
if(right_2)
{
car_go(5);
}
else
{
car_stop();
}
}
}
followline.c
#include "followline.h"
void followline_init(void)
{
//定义管脚的结构体
GPIO_InitTypeDef GPIO_InitStruct_C,GPIO_InitStruct_B;
//配置PC15\\14\\13管脚的参数,用于驱动电机
GPIO_InitStruct_C.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStruct_C.GPIO_Pin=GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_13;
//配置PB12管脚的参数,用于驱动电机
GPIO_InitStruct_C.GPIO_Mode=GPIO_Mode_IPU;
GPIO_InitStruct_C.GPIO_Pin=GPIO_Pin_12;
GPIO_Init(GPIOC, &GPIO_InitStruct_B);
GPIO_Init(GPIOB, &GPIO_InitStruct_C);
}
follow.h
#ifndef __FOLLOWLINE_H__
#define __FOLLOWLINE_H__
#include "stm32f10x_gpio.h"
#define right_2 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)
#define right_1 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_15)
#define left_2 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_14)
#define left_1 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)
void followline_init(void);
#endif
以上是关于拓展项目三:由四位红外传感器控制电机-基础版的主要内容,如果未能解决你的问题,请参考以下文章