引腳 |
說明 |
VCC |
電源+5V輸入 |
GND |
電源地線 |
Echo |
超聲波接收端 |
Trig |
超聲波發(fā)射端 |
自動變速風扇則是根據超聲波測到的其與障礙物的距離自動改變風扇轉動的速度。在為學生講述完超聲波測距的原理之后,我們發(fā)給學生一個超聲波測距的函數(shù),然后讓學生參考此函數(shù)編寫自動變速風扇的程序。我發(fā)現(xiàn),大部分學生都能夠通過小組兩人的合作將程序編寫出來。程序如下:
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);
}
}
這部分,我主要是想讓學生知道,Arduino也是可以進行函數(shù)的引用的,如超聲波測距的函數(shù)。
注意:Ardublock中提供了超聲波的函數(shù),低年級的學生,用Ardublock可以做這個范例。
2.遙控風扇
遙控風扇主要使用的是紅外遙控套件,包括紅外接收頭和紅外遙控器。紅外接收頭的接線順序為:D接數(shù)字口,VCC接5V,GND接GND。紅外遙控器有21個按鍵,并有對應的鍵值,在使用時,通過鍵值對遙控器進行解碼,我們用到的紅外遙控器的鍵值(十進制的數(shù)值),將紅外遙控器鍵值附表發(fā)給學生,并將紅外遙控的庫發(fā)給學生,讓學生將庫放到Arduino的庫中。
然后,我將最簡單的一種遙控風扇的程序發(fā)給學生,讓他們下載程序并察看現(xiàn)象。有的學生則根據我的程序改編成更加復雜多樣的遙控,比如有遙控換擋風扇。我發(fā)給學生的參考程序如下:
#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();//等待下一次
}
}
在這部分,我試圖讓學生接觸并理解Arduino的庫函數(shù),從課堂實際教學看來,通過本節(jié)課,學生對庫函數(shù)已經有了初步認識。
注意:目前Ardublock還沒有支持遙控套件,但是Ardublock的開發(fā)者已經在寫新的版本,請各位拭目以待。我發(fā)現(xiàn)學生對遙控和Arduino結合還是很感興趣的。在小車的專題中,我們還設計了遙控小車這一專題,把機器人變成遙控車。
下圖便是一個變速風扇加遙控風扇的組合體。