拓展项目三:由四位红外传感器控制电机-基础版

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

以上是关于拓展项目三:由四位红外传感器控制电机-基础版的主要内容,如果未能解决你的问题,请参考以下文章

51蓝牙红外循迹避障小车+代码

stm32控制机械臂抓取的代码

进阶之路(中级篇) - 018 基于arduino的简易版智能衣架

SimpleFOC—— 霍尔电机控制

树莓派基础实验22:红外遥控传感器实验

arduino串口通信经光耦隔离使用继电器控制220v电机