引腳 |
說(shuō)明 |
VCC |
電源+5V輸入 |
GND |
電源地線 |
Echo |
超聲波接收端 |
Trig |
超聲波發(fā)射端 |
自動(dòng)變速風(fēng)扇則是根據(jù)超聲波測(cè)到的其與障礙物的距離自動(dòng)改變風(fēng)扇轉(zhuǎn)動(dòng)的速度。在為學(xué)生講述完超聲波測(cè)距的原理之后,我們發(fā)給學(xué)生一個(gè)超聲波測(cè)距的函數(shù),然后讓學(xué)生參考此函數(shù)編寫自動(dòng)變速風(fēng)扇的程序。我發(fā)現(xiàn),大部分學(xué)生都能夠通過(guò)小組兩人的合作將程序編寫出來(lái)。程序如下:
int supersonic(int trigpin,int echopin){
int s;
digitalWrite(trigpin,LOW);
delayMicroseconds(2);
digitalWrite(trigpin,HIGH);
delayMicroseconds(10);
digitalWrite(trigpin,LOW);
s=pulseIn(echopin,HIGH);
s=s/58;
return(s);
}
void setup() {
pinMode(5,OUTPUT);
pinMode(10,OUTPUT);//Trig
pinMode(9,INPUT);//Echo
}
void loop() {
int s;
s=supersonic(10,9);
if(s<100){
analogWrite(5,map(s,2,450,40,255));
}
else{
digitalWrite(5,LOW);
}
}
這部分,我主要是想讓學(xué)生知道,Arduino也是可以進(jìn)行函數(shù)的引用的,如超聲波測(cè)距的函數(shù)。
注意:Ardublock中提供了超聲波的函數(shù),低年級(jí)的學(xué)生,用Ardublock可以做這個(gè)范例。
2.遙控風(fēng)扇
遙控風(fēng)扇主要使用的是紅外遙控套件,包括紅外接收頭和紅外遙控器。紅外接收頭的接線順序?yàn)椋篋接數(shù)字口,VCC接5V,GND接GND。紅外遙控器有21個(gè)按鍵,并有對(duì)應(yīng)的鍵值,在使用時(shí),通過(guò)鍵值對(duì)遙控器進(jìn)行解碼,我們用到的紅外遙控器的鍵值(十進(jìn)制的數(shù)值),將紅外遙控器鍵值附表發(fā)給學(xué)生,并將紅外遙控的庫(kù)發(fā)給學(xué)生,讓學(xué)生將庫(kù)放到Arduino的庫(kù)中。
然后,我將最簡(jiǎn)單的一種遙控風(fēng)扇的程序發(fā)給學(xué)生,讓他們下載程序并察看現(xiàn)象。有的學(xué)生則根據(jù)我的程序改編成更加復(fù)雜多樣的遙控,比如有遙控?fù)Q擋風(fēng)扇。我發(fā)給學(xué)生的參考程序如下:
#include
IRrecv irrecv(11);//紅外接收頭
decode_results results;
void setup() {
irrecv.enableIRIn();
pinMode(5,OUTPUT);
}
void loop() {
if(irrecv.decode(&results)){
long remote=results.value;
if(remote==16580863){//紅色鍵
analogWrite(5,100);
}
else if(remote==16597183){//STOP
analogWrite(5,0);
}
irrecv.resume();//等待下一次
}
}
在這部分,我試圖讓學(xué)生接觸并理解Arduino的庫(kù)函數(shù),從課堂實(shí)際教學(xué)看來(lái),通過(guò)本節(jié)課,學(xué)生對(duì)庫(kù)函數(shù)已經(jīng)有了初步認(rèn)識(shí)。
注意:目前Ardublock還沒(méi)有支持遙控套件,但是Ardublock的開(kāi)發(fā)者已經(jīng)在寫新的版本,請(qǐng)各位拭目以待。我發(fā)現(xiàn)學(xué)生對(duì)遙控和Arduino結(jié)合還是很感興趣的。在小車的專題中,我們還設(shè)計(jì)了遙控小車這一專題,把機(jī)器人變成遙控車。
下圖便是一個(gè)變速風(fēng)扇加遙控風(fēng)扇的組合體。