★★★★★★  家庭防盗小车:通过人体检测模块检测是否有人,来开启蜂鸣器报警。

★★★★★★  自动大灯:通过车载感光元件检测亮度,自动开关灯。

★★★★★★  智能寻光:采用光敏传感器,检测车头各个方向的亮度,完成自动跟踪。

作者:sumjess

 

获取该源码方式:



 

关注微信公众号下载:

     ① 关注微信公众号:Tech云  

     ②

基于arduino的小车(家庭防盗小车、自动大灯、智能寻光)_光敏二极管

一、家庭防盗小车

该部分的程序是有两部分组成的,一部分是由我之前写的博客------避障小车,构成​家庭防盗小车的动力部分另一部分是家庭防盗系统,以下就只写该车这部分的内容,两部分拼在一起就构成了全部。


我就直接写出这一部分的程序了:

#define val analogRead(A0)  //ADC采集
#define beep_pin 2

void beep(void); //蜂鸣器警报

void setup()
{
pinMode(beep_pin, OUTPUT); //蜂鸣器引脚初始化
}

void loop()
{
if(val==550) beep(); //如果检测到人开始警报

}
void beep(void)
{
digitalWrite(beep_pin, HIGH); // 使蜂鸣器响
delay(100); // 延迟0.1秒
digitalWrite(beep_pin, LOW); // 使蜂鸣器灭
delay(100); // 延迟0.1秒
}

二、自动大灯

该部分的程序是有两部分组成的,一部分是由我之前写的博客------避障小车,构成​动力部分另一部分是自动开灯系统,以下就只写该车这部分的内容,两部分拼在一起就构成了全部。


我就直接写出这一部分的程序了:

#define val analogRead(A1)  //光敏ADC采集
#define LED_pin 2

void setup()
{
pinMode(LED_pin, OUTPUT); //LED引脚初始化
}

void loop()
{
if(val==798) digitalWrite(LED_pin, HIGH); //如果检测到天黑开始点灯
else digitalWrite(LED_pin, LOW);
}

三、智能寻光

话不多说直接上代码,很简单

#define val2 analogRead(A1)  //光敏ADC采集
#define val3 analogRead(A2) //光敏ADC采集
#define val4 analogRead(A3) //光敏ADC采集
#define LED_pin 3
void LED(void);//自动开大灯
void LED2(void);//寻灯

void setup()
{
pinMode(LED_pin, OUTPUT); //LED引脚初始化
motor_pinint(); //电机引脚初始化
}

void loop()
{
if(val==798) digitalWrite(LED_pin, HIGH); //如果检测到天黑开始点灯
else digitalWrite(LED_pin, LOW);
LED2();
}
/*电机引脚初始化*/
void motor_pinint( )
{
pinMode (leftA_PIN, OUTPUT); //设置引脚为输出引脚
pinMode (leftB_PIN, OUTPUT); //设置引脚为输出引脚
pinMode (righA_PIN, OUTPUT); //设置引脚为输出引脚
pinMode (righB_PIN, OUTPUT); //设置引脚为输出引脚
}
/**************************************************
forward子函数——前进子函数
函数功能:控制车前进
**************************************************/
void forward( )
{
analogWrite(leftA_PIN,120);
analogWrite(leftB_PIN,0); //左轮前进
analogWrite(righA_PIN,120);
analogWrite(righB_PIN,0); //右轮前进
}
/**************************************************
turnLeft子函数——左转子函数
函数功能:控制车左转
**************************************************/
void turnLeft( )
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,0); //左轮静止不动
analogWrite(righA_PIN,120);
analogWrite(righB_PIN,0); //右轮前进
}
void turnbackRight( )
{
analogWrite(leftA_PIN,0);
analogWrite(leftB_PIN,120); //左轮后退
analogWrite(righA_PIN,0);
analogWrite(righB_PIN,0); //右轮静止不动
}
void LED(void)
{
if(val2==798) digitalWrite(LED_pin, HIGH); //如果检测到天黑开始点灯
else digitalWrite(LED_pin, LOW);
}
void LED2(void)
{
/*val2 val3 val4*/
if((val3>=val2)&&(val3>=val4)) forward( ); //如果中间最大,直行
else if((val2>val3)&&(val2>val4)) turnLeft( ); //如果左边最大,左转
else turnbackRight( ); //如果右边最大,右转
}

小编觉得没有什么难点就没有详细的写,大家如果有任何疑问,可在下方提出。