|
本程序所用Arduino開(kāi)發(fā)板為Arduino UNO開(kāi)發(fā)板
通過(guò)紅外傳感器檢測(cè)工件,當(dāng)工件經(jīng)過(guò)時(shí)舵機(jī)響應(yīng),對(duì)工件進(jìn)行操作
此程序?qū)崿F(xiàn)的功能為:
Arduino啟動(dòng),當(dāng)傳感器檢測(cè)到工件,舵機(jī)開(kāi)始旋轉(zhuǎn)90°,
當(dāng)再次檢測(cè)到下一個(gè)工件,舵機(jī)回轉(zhuǎn)90°,就這樣在每次檢測(cè)到工件時(shí)來(lái)回?cái)[動(dòng)
#include <Servo.h> // 聲明調(diào)用Servo.h庫(kù)
Servo myservo; // 創(chuàng)建一個(gè)舵機(jī)對(duì)象
int PIN_SENSOR = 13; //紅外傳感器引腳
int n=0;
void setup()
{
pinMode(PIN_SENSOR, INPUT);
Serial.begin(4800);//設(shè)置波特率為4800
myservo.attach(9); // 將引腳9上的舵機(jī)與聲明的舵機(jī)對(duì)象連接起來(lái)
}
void loop()
{
int y = digitalRead(PIN_SENSOR); //讀取傳感器信號(hào)
Serial.println(y);
delay(5);
int x = digitalRead(PIN_SENSOR);//延時(shí)5ms再次讀取傳感器信號(hào)
Serial.println(x);
if (x==0)
{
if (x||y) //對(duì)兩次讀取值進(jìn)行綜合判斷,確定舵機(jī)是否執(zhí)行
{ n=n+1;
if (n%2==1)
{myservo.write(0); // 給舵機(jī)寫入角度0°
delay(5);
}
if (n%2==0)
{myservo.write(90); // 給舵機(jī)寫入角度90°
delay(5);
}
}
else
return;
}
}
|
評(píng)分
-
查看全部評(píng)分
|