★★★★★★ 家庭防盜小車:通過人體檢測子產品檢測是否有人,來開啟蜂鳴器報警。
★★★★★★ 自動大燈:通過車載感光元件檢測亮度,自動開關燈。
★★★★★★ 智能尋光:采用光敏傳感器,檢測車頭各個方向的亮度,完成自動跟蹤。
作者:sumjess
擷取該源碼方式:
關注微信公衆号下載下傳:
① 關注微信公衆号:Tech雲
②
一、家庭防盜小車
該部分的程式是有兩部分組成的,一部分是由我之前寫的部落格------避障小車,構成家庭防盜小車的動力部分,另一部分是家庭防盜系統,以下就隻寫該車這部分的内容,兩部分拼在一起就構成了全部。
我就直接寫出這一部分的程式了:
#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( ); //如果右邊最大,右轉
}