天天看點

基于arduino的小車(家庭防盜小車、自動大燈、智能尋光)

★★★★★★  家庭防盜小車:通過人體檢測子產品檢測是否有人,來開啟蜂鳴器報警。

★★★★★★  自動大燈:通過車載感光元件檢測亮度,自動開關燈。

★★★★★★  智能尋光:采用光敏傳感器,檢測車頭各個方向的亮度,完成自動跟蹤。

作者: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( );  //如果右邊最大,右轉
  }      

小編覺得沒有什麼難點就沒有詳細的寫,大家如果有任何疑問,可在下方提出。

繼續閱讀