项目相关链接:
1.智能小车L298N驱动
2.智能小车寻迹驱动
3.智能小车蓝牙模块驱动
4.智能小车超声波测距驱动
(一)效果展示
一个只能走的小车是当然不足以称之为智能小车的,我们需要给小车安上一个眼睛。这是第一次作为一个开发者让机器可以听我的话。
(二)寻迹模块驱动
这部分代码用于寻迹 设定为沿白线走
白色(亮色)返回1 黑色(暗色)返回0
remote.h
#ifndef __REMOTE_H#define __REMOTE_H #include "sys.h"#define left GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)//读取PC13状态#define right GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_14)//读取PC14状态void remote_Init(void);//IO初始化#endif
remote.c
#include "stm32f10x.h"#include "remote.h"#include "sys.h" #include "delay.h"void remote_Init(void) //IO初始化{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能PORTCGPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIOC14,13}
main.c
//寻迹测试 小车沿白线走
#include "sys.h"#include "delay.h"#include "motor.h"#include "PWM.h"#include "remote.h"#include "usart.h"int main(void){TIM4_PWM_Init(899,0);delay_init();//延时函数初始化 Motor_12_Config(); //298电机驱动初始化remote_Init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);if(right==1&left==1) //在线上{Motor_1_PRun(); Motor_2_PRun();}if(left==0&right==1) //左出界 {Motor_right();delay_ms(5);}if(right==1&left==0) //右出界{Motor_left();delay_ms(5);}if(right==0&left==0) //前方无路{Motor_1_STOP();Motor_2_STOP()delay_ms(1000);}}
以上代码仅为相应部分,其他代码在其他文章中,请自寻。
如果一个小车都控制不了又怎么去控制自己的人生。