“(RB-13K166)物聯(lián)網(wǎng)傳感器實(shí)踐大禮包”的版本間的差異

來(lái)自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
(以“ ==產(chǎn)品概述== 基于Arduino 傳感器互動(dòng)(28 件)套件是哈爾濱奧松機(jī)器人科技股份有限公司專門為 ...”為內(nèi)容創(chuàng)建頁(yè)面)
 
第1行: 第1行:
?
[[文件:sensor.jpg|400px|有框|右]]
+
[[文件:sensor1.jpg|800px|有框|右]]
 
==產(chǎn)品概述==
 
==產(chǎn)品概述==
?
基于Arduino 傳感器互動(dòng)(28 件)套件是哈爾濱奧松機(jī)器人科技股份有限公司專門為
+
    基于Arduino 傳感器互動(dòng)(28 件)套件是哈爾濱奧松機(jī)器人科技股份有限公司專門為
 
對(duì)電子產(chǎn)品感興趣的愛(ài)好者精心打造的一款電子學(xué)習(xí)套件,其中包含28 中常用傳感器、
 
對(duì)電子產(chǎn)品感興趣的愛(ài)好者精心打造的一款電子學(xué)習(xí)套件,其中包含28 中常用傳感器、
 
防插反連接線28 套、用戶手冊(cè)、所有實(shí)驗(yàn)程序。用戶手冊(cè)中主要包括28 個(gè)傳感器的單
 
防插反連接線28 套、用戶手冊(cè)、所有實(shí)驗(yàn)程序。用戶手冊(cè)中主要包括28 個(gè)傳感器的單
第42行: 第42行:
 
打開(kāi)軟件選擇文件 - 示例 - 01.Basics - Blink  
 
打開(kāi)軟件選擇文件 - 示例 - 01.Basics - Blink  
 
<br>
 
<br>
?
[[image:tu1.png|thumb|500px|center|blink]]
+
[[image:sensor2.png|thumb|500px|center|blink]]
 
<br>
 
<br>
  
第49行: 第49行:
 
工具 - 板 - Arduino Uno
 
工具 - 板 - Arduino Uno
 
<br>
 
<br>
?
[[image:tu2.png|thumb|500px|center|]]
+
[[image:sensor3.png|thumb|500px|center|]]
 
<br>
 
<br>
  
第55行: 第55行:
 
工具 > 串口 > xx,這里的xx應(yīng)選擇在你的電腦設(shè)備管理器中看到的一致。
 
工具 > 串口 > xx,這里的xx應(yīng)選擇在你的電腦設(shè)備管理器中看到的一致。
 
<br>
 
<br>
?
[[image:tu3.png|thumb|500px|center|]]
+
[[image:sensor4.png|thumb|500px|center|]]
 
<br>
 
<br>
  
第61行: 第61行:
 
如圖,點(diǎn)擊驗(yàn)證,程序只進(jìn)行了驗(yàn)證,而沒(méi)有下載到控制器中,下載需要再點(diǎn)擊上傳鍵;若直接點(diǎn)擊上傳鍵,將程序會(huì)先進(jìn)行驗(yàn)證然后直接下載程序到你的Arduino控制板上。
 
如圖,點(diǎn)擊驗(yàn)證,程序只進(jìn)行了驗(yàn)證,而沒(méi)有下載到控制器中,下載需要再點(diǎn)擊上傳鍵;若直接點(diǎn)擊上傳鍵,將程序會(huì)先進(jìn)行驗(yàn)證然后直接下載程序到你的Arduino控制板上。
 
<br>
 
<br>
?
[[image:tu4.png|thumb|500px|center|]]
+
[[image:sensor5.png|thumb|500px|center|]]
 
<br>
 
<br>
  
第72行: 第72行:
 
==例程列表==
 
==例程列表==
 
基礎(chǔ)實(shí)驗(yàn)                                                               
 
基礎(chǔ)實(shí)驗(yàn)                                                               
?
* 串口通信控制LED燈實(shí)驗(yàn)                                                             
+
01. 按壓式大按鈕模塊
?
* 智能骰子實(shí)驗(yàn)                                           
+
02. LED發(fā)光模塊(紅)
?
* 遠(yuǎn)紅外火焰?zhèn)鞲衅鲬?yīng)用                             
+
03. 大功率繼電器模塊
?
* 干簧管控制繼電器實(shí)驗(yàn)                                               
+
04. 蜂鳴器發(fā)聲模塊
?
* 數(shù)字傳感器控制流水燈                                                   
+
05. 旋轉(zhuǎn)角度電位計(jì)模塊
?
* 智能門鈴                                         
+
06. 滑條傳感器
?
* PWM控制LED燈亮度實(shí)驗(yàn)                                         
+
07. 電壓檢測(cè)傳感器
?
* 全彩LED模擬呼吸燈實(shí)驗(yàn)                                                         
+
08. 光線傳感器模塊
?
* PWM控制電機(jī)轉(zhuǎn)速                                             
+
09. 水位傳感器
?
* 紅外熱釋電傳感器人體檢測(cè)報(bào)警實(shí)驗(yàn)                                                                             
+
10. LM35線性溫度傳感器
?
* 溫度報(bào)警器                                                     
+
11. DHT11溫濕度傳感器
?
* 電子琴                                                                   
+
12. 磁感應(yīng)傳感器
?
* 看誰(shuí)搖的快                                                               
+
13. 黑色振動(dòng)傳感器
?
* 指針亮度計(jì)
+
14. 陶瓷振動(dòng)傳感器
?
* 記憶大考驗(yàn)
+
15. 水蒸氣傳感器
?
* 串行轉(zhuǎn)并行
+
16. MQ-2氣體煙霧傳感器
?
* 密碼解鎖
+
17. 綠色單向傾角傳感器
?
擴(kuò)展實(shí)驗(yàn)      
+
18. 火焰?zhèn)鞲衅?/ins>
?
* “Hello World!”實(shí)驗(yàn) 
+
19. 土壤濕度傳感器
?
* 交通燈設(shè)計(jì)實(shí)驗(yàn) 
+
20. Mini紅外避障傳感器
?
* 搶答器設(shè)計(jì)實(shí)驗(yàn) 
+
21. 紅外熱釋電傳感器
?
* 模擬值讀取實(shí)驗(yàn)
+
22. MQ-3酒精傳感器
?
* 伺服舵機(jī)控制實(shí)驗(yàn)
+
23. 觸摸傳感器
?
* 紅外線通信實(shí)驗(yàn)
+
24. 灰度傳感器
 +
25. RB URF02超聲波傳感器
 +
26. 紅外發(fā)射模塊
 +
27. 紅外接收模塊
 +
28. ADXL345三軸加速度計(jì)
 +
應(yīng)用實(shí)驗(yàn)      
 +
1、火災(zāi)煙霧報(bào)警系統(tǒng)
 +
2、智能感應(yīng)門
 +
3、汽車速度及酒駕檢測(cè)系統(tǒng)
 +
4、溫室環(huán)境檢測(cè)系統(tǒng)
 +
5、雨水檢測(cè)系統(tǒng)
 +
6、智能灰度檢測(cè)儀
 +
7、物體運(yùn)行狀態(tài)檢測(cè)系統(tǒng)
  
 
==精選例程==
 
==精選例程==
?
===數(shù)字傳感器控制流水燈實(shí)驗(yàn)===
+
===DHT11溫濕度傳感器實(shí)驗(yàn)===
 
====實(shí)驗(yàn)簡(jiǎn)介====
 
====實(shí)驗(yàn)簡(jiǎn)介====
?
單向傾角開(kāi)關(guān)是一個(gè)可以檢測(cè)傾斜、晃動(dòng)的特殊開(kāi)關(guān),本例中使用傾角開(kāi)關(guān)和干簧管作為觸發(fā),當(dāng)兩個(gè)傳感器中任何一個(gè)被觸發(fā)時(shí),6 個(gè)LED 都會(huì)開(kāi)始按照順序閃爍。傾角傳感器:傾角傳感器是姿態(tài)傳感器的一種,主要應(yīng)用在物體狀態(tài)的水平檢測(cè),同樣他具備測(cè)量角度的大小。目前傾角傳感器主要分為幾個(gè)大類,有單軸傾角傳感器和雙軸傾角傳感器,以及利用傾角傳感器原理制作而成的傾角儀。
+
DHT11 數(shù)字溫濕度傳感器是一種集溫度、濕度一體的復(fù)合傳感器,它能把溫度和濕度物理測(cè)量通過(guò)溫、濕度敏感元件和相應(yīng)電路轉(zhuǎn)換成方便計(jì)算機(jī)或者數(shù)據(jù)采集設(shè)備直接讀取的數(shù)字量,DHT11由電阻式感濕器件和NTC系數(shù)感溫器件構(gòu)成,具有校準(zhǔn)數(shù)字信號(hào)輸出功能,采用單總線串行接口,輸出數(shù)據(jù)一共5個(gè)字節(jié),分別表示:濕度整數(shù)位、濕度小數(shù)位、溫度整數(shù)位、溫度小數(shù)位及校驗(yàn)和,其中校驗(yàn)和為濕度與溫度之和的最低8位數(shù)據(jù)。DHT11數(shù)字溫度傳感器模塊共引出3個(gè)引腳,從上到下分別是地線GND、電源VCC和數(shù)據(jù)線S。實(shí)際應(yīng)用時(shí),將S端接在Arduino UNO的一個(gè)數(shù)字輸入接口,接線方法如接線圖所示。DHT11數(shù)字溫濕度傳感器使用一根信號(hào)線傳輸數(shù)據(jù),讀取步驟如下:
 +
1)將引腳 D8 設(shè)置為輸出模式,同時(shí)將引腳置為低電平(LOW),持續(xù)時(shí)間超過(guò)18ms以上;
 +
2)再將引腳 D8 設(shè)置為高電平(HIGH),持續(xù)時(shí)間40us;
 +
3)再將引腳 D8 設(shè)置為輸入(讀?。┠J?,判定讀到低電平(LOW)后,延時(shí)80us,再判定讀到高電平(HIGH)后,延時(shí) 80us,以上工作完成后開(kāi)始接受數(shù)據(jù);
 +
數(shù)據(jù)總共有5個(gè)字節(jié),忽略校驗(yàn)位,有四位是有效數(shù)據(jù)。第0字節(jié)是濕度的整數(shù)位,第1字節(jié)是濕度的小數(shù)位,第2字節(jié)是溫度的整數(shù)位,第3字節(jié)是溫度的小數(shù)位。
  
 
====硬件設(shè)備====
 
====硬件設(shè)備====
 
*CarDuino UNO R3 控制器×1
 
*CarDuino UNO R3 控制器×1
?
*USB 下載線×1
+
*DHT11溫濕度傳感器×1
?
*大面包板×1
+
*V5.0擴(kuò)展板×1
?
*跳線若干
+
*3P防插反連接線×1
?
*LED燈×6
+
?
*470歐姆電阻×8
+
?
*干簧管×1
+
?
*單向傾角開(kāi)關(guān)×1
+
?
 
+
 
====硬件連接====
 
====硬件連接====
?
數(shù)字傳感器控制流水燈實(shí)驗(yàn)<br/>
+
DHT11溫濕度檢測(cè)硬件連接圖<br/>
?
[[image:tu1.png|thumb|500px|center|]]
+
[[image:DHT11.png|thumb|500px|center|]]
  
 
====試驗(yàn)程序====
 
====試驗(yàn)程序====
?
  /*****************************************************************
+
/***********************************************************
?
  奧松機(jī)器人RobotBase www.robotbase.cn
+
哈爾濱奧松機(jī)器人科技股份有限公司 RobotBase www.robotbase.cn
?
  目的: 數(shù)字傳感器控制流水燈實(shí)驗(yàn)
+
目    的: DHT11溫濕度傳感器測(cè)試
?
  目標(biāo)系統(tǒng): ArduinoUNO R3 控制器
+
應(yīng)用硬件: Carduino UNO R3 控制器
?
  應(yīng)用軟件: Arduino IDE 1.7.7
+
應(yīng)用軟件: Arduino IDE 1.6.7
?
  發(fā)布時(shí)間: 2015-11-19
+
發(fā)布時(shí)間: 2016-04-09
?
  說(shuō)明: 若用于商業(yè)用途,請(qǐng)保留此段文字或注明代碼來(lái)源
+
創(chuàng) 建 人: Salmon
?
   哈爾濱奧松機(jī)器人科技股份有限公司保留所有版權(quán)
+
版 本 號(hào):  1.0
?
  *****************************************************************/
+
說(shuō)    明:  若用于商業(yè)用途,請(qǐng)保留此段文字或注明代碼來(lái)源
?
  int i,j; //定義變量i
+
          哈爾濱奧松機(jī)器人科技有限股份公司保留所有版權(quán)    
?
  void setup()
+
***********************************************************/
?
  {
+
int dht11 = 8;//定義DHT11連接到數(shù)字引腳8
?
      pinMode(2,INPUT);
+
byte dat [5];//設(shè)置5個(gè)字節(jié)的數(shù)組
?
      pinMode(3,INPUT);
+
//讀取一個(gè)字節(jié)的函數(shù)
?
      for(j=4;j<=9;j++)
+
byte read_data()
?
      pinMode(j,OUTPUT);
+
{
?
  }
+
byte data;
?
  void loop()
+
for (int i=0;i<8;i++)
?
  {
+
{
?
      if (LOW==( digitalRead(2) && digitalRead(3) ) )
+
  if(digitalRead(dht11) == LOW)
?
      {
+
    {
?
          for(i=4;i<=9;i++)
+
      while(digitalRead(dht11) == LOW);//等待50us
?
        {
+
      delayMicroseconds(30);//判斷高電平的持續(xù)時(shí)間,以判斷數(shù)據(jù)是0還是1
?
            digitalWrite(i,HIGH);
+
      if(digitalRead(dht11) == HIGH)
?
            delay(100); //延時(shí)0.1 秒
+
      data |=(1<<(7-i));//高位在前,低位在后
?
            digitalWrite(i,LOW);
+
      while(digitalRead(dht11) == HIGH);//如果數(shù)據(jù)是1,等待下一位的接收
?
            delay(100); //延時(shí)0.1
+
    }
?
        }
+
}
?
      }
+
    return data;
?
  }
+
}
?
===密碼解鎖游戲?qū)嶒?yàn)===
+
//DHT初始化讀取數(shù)據(jù)時(shí)序
 +
void start_test()
 +
{
 +
digitalWrite(dht11,LOW);//拉低總線,發(fā)開(kāi)始信號(hào)
 +
delay(30);//延時(shí)需要大于18ms
 +
digitalWrite(dht11,HIGH);//開(kāi)始信號(hào)
 +
delayMicroseconds(40);//等待DHT11響應(yīng)
 +
pinMode(dht11,INPUT);//改為輸入模式
 +
while(digitalRead(dht11) == HIGH);
 +
delayMicroseconds(80);//DHT11發(fā)出響應(yīng),拉高總線80us
 +
if(digitalRead(dht11) == LOW);
 +
delayMicroseconds(80);//拉低總線80us后開(kāi)始發(fā)送數(shù)據(jù)
 +
for(int i=0;i<4;i++)//接收溫濕度數(shù)據(jù),校驗(yàn)位不考慮
 +
dat[i] = read_data();
 +
pinMode(dht11,OUTPUT);//改為輸出模式
 +
digitalWrite(dht11,HIGH);//發(fā)送完一次數(shù)據(jù)后釋放總線,等待主機(jī)
 +
//下一次的信號(hào)開(kāi)始
 +
}
 +
//初始化函數(shù)
 +
void setup()
 +
{
 +
Serial.begin(9600);//設(shè)置波特率
 +
pinMode(dht11,OUTPUT);//定義輸出模式
 +
}
 +
//主函數(shù)
 +
void loop()
 +
{
 +
start_test();
 +
Serial.print("Current humdity = ");
 +
Serial.print(dat[0],DEC);//顯示濕度的整數(shù)位
 +
Serial.print('.');
 +
Serial.print(dat[1],DEC);//顯示濕度的小數(shù)位
 +
Serial.println('%');
 +
Serial.print("Current temperature = ");
 +
Serial.print(dat[2],DEC);//顯示溫度的整數(shù)位
 +
Serial.print('.');
 +
Serial.print(dat[3],DEC);//顯示溫度的小數(shù)位
 +
Serial.println('C');
 +
delay(700);
 +
}
 +
===火災(zāi)煙霧報(bào)警系統(tǒng)===
 
====實(shí)驗(yàn)簡(jiǎn)介====
 
====實(shí)驗(yàn)簡(jiǎn)介====
?
人們使用的鎖具由傳統(tǒng)的機(jī)械式鎖逐漸發(fā)展為安全性能更好,功能更多的電子密碼鎖。密碼解鎖游戲的原理是通過(guò)一個(gè)旋轉(zhuǎn)變位器調(diào)制出對(duì)應(yīng)的密碼,用3 個(gè)紅色LED顯示相應(yīng)的位,蜂鳴器用于提示操作。
+
本實(shí)驗(yàn)采用煙霧、火焰和溫度三個(gè)傳感器采集環(huán)境信息,煙霧傳感器可以對(duì)煤氣、天然氣等易燃?xì)怏w做出檢測(cè);火焰可以針對(duì)物體燃燒時(shí)發(fā)出的火光做出檢測(cè);溫度傳感器可以對(duì)環(huán)境溫度進(jìn)行監(jiān)督,防止以上兩個(gè)傳感器檢測(cè)不到的情況,如墻外發(fā)生火災(zāi),做出預(yù)警。
 
====硬件設(shè)備====
 
====硬件設(shè)備====
?
*CarDuino UNO R3 控制器×1
+
*MQ-2氣體煙霧傳感器一個(gè)
?
*USB 下載線×1
+
*火焰?zhèn)鞲衅饕粋€(gè)
?
*大面包板×1
+
*LM35線性溫度傳感器一個(gè)
?
*跳線若干
+
*蜂鳴器發(fā)生模塊一個(gè)
?
*紅色LED×3
+
*CarDuino UNO控制器一個(gè)
?
*黑色按鍵×1
+
*V5.0擴(kuò)展板一個(gè)
?
*旋轉(zhuǎn)變位器×1
+
*3P防插反連接線4個(gè)
?
*蜂鳴器×1
+
?
*470歐姆電阻×4
+
 
====硬件連接====
 
====硬件連接====
?
密碼解鎖游戲?qū)嶒?yàn)<br/>
+
火災(zāi)煙霧報(bào)警系統(tǒng)硬件連接圖<br/>
?
[[image:tu2.png|thumb|500px|center|]]
+
[[image:huozaiyanwu.png|thumb|500px|center|]]
 
====試驗(yàn)程序====
 
====試驗(yàn)程序====
?
  /*****************************************************************
+
/***********************************************************
?
  奧松機(jī)器人RobotBase www.robotbase.cn
+
哈爾濱奧松機(jī)器人科技股份有限公司 RobotBase www.robotbase.cn
?
  目的: 密碼解鎖游戲?qū)嶒?yàn)
+
目    的: 火災(zāi)煙霧報(bào)警實(shí)驗(yàn)
?
  目標(biāo)系統(tǒng): Arduino UNO R3 控制器
+
應(yīng)用硬件: Carduino UNO R3 控制器
?
  應(yīng)用軟件: Arduino IDE 1.7.7
+
應(yīng)用軟件: Arduino IDE 1.6.7
?
  發(fā)布時(shí)間: 2015-11-19
+
發(fā)布時(shí)間: 2016-04-11
?
  說(shuō)明: 若用于商業(yè)用途,請(qǐng)保留此段文字或注明代碼來(lái)源
+
創(chuàng) 建 人: Salmon
?
   哈爾濱奧松機(jī)器人科技股份有限公司保留所有版權(quán)
+
版 本 號(hào):  1.0
?
  const int LED1 = 8;
+
說(shuō)    明:  若用于商業(yè)用途,請(qǐng)保留此段文字或注明代碼來(lái)源
?
  const int LED2 = 9;
+
          哈爾濱奧松機(jī)器人科技有限股份公司保留所有版權(quán)    
?
  const int LED3 = 10; // 三盞LED 代表三個(gè)級(jí)別
+
***********************************************************/
?
  const int BTN = 11; // 游戲開(kāi)始按鈕和確認(rèn)按鈕
+
int Temp = A0;         //定義溫度傳感器接口
?
  const int BUZ = 7; // 蜂鳴器給玩家提示
+
int Smoke = A1;         //定義煙霧傳感器接口
?
  const int POT = A0; // 通過(guò)電位計(jì)模擬解鎖的感覺(jué)
+
int Flame = A2;         //定義火焰?zhèn)鞲衅鹘涌?/ins>
?
  bool btnState1;
+
int Buzzer = 2;         //定義蜂鳴器接口
?
  bool btnState2; // 獲取按鈕按下的狀態(tài)
+
//初始化函數(shù)
?
   int r; // 單片機(jī)生成的隨機(jī)數(shù)
+
void setup()
?
   int answer; // 玩家的回答
+
{
?
   void (*reset)(void) = 0; // 軟復(fù)位
+
   Serial.begin(9600);  //設(shè)置波特率
?
  // 每一級(jí)需要不同的精確度
+
   pinMode(2, OUTPUT); //設(shè)置D2為輸出模式
?
  bool isOK(int level, int r, int ans)
+
}
?
  {
+
//溫度檢測(cè)函數(shù)
?
      if(level == 0) return r - 2 < ans && ans < r + 2;
+
float Temp_test()
?
      if(level == 1) return r - 5 < ans && ans < r + 5;
+
{
?
      if(level == 2) return r - 10 < ans && ans < r + 10;
+
  int value = analogRead(Temp);
?
   }
+
  float millivolts = (value*5.0 / 1024) * 1000;
?
  void setup()
+
  float celsius = millivolts /10;//每1攝氏度產(chǎn)生10mV
?
{
+
   Serial.println(celsius);
?
      pinMode(LED1, OUTPUT);
+
  return celsius;
?
      pinMode(LED2, OUTPUT);
+
}
?
      pinMode(LED3, OUTPUT);
+
// 煙霧檢測(cè)函數(shù)
?
      pinMode(BUZ, OUTPUT);
+
int Smoke_test()
?
      pinMode(BTN, INPUT_PULLUP);
+
{
?
      randomSeed(analogRead(A1)); // 隨機(jī)種子
+
  int sval=0;
?
   }
+
  sval = analogRead(Smoke);   //讀取煙霧傳感器的值
?
  void loop()  
+
   Serial.println(sval);//串口打印
?
{
+
  return sval;      //返回讀取的值
?
      // 初始化游戲,關(guān)閉小燈和蜂鳴器
+
}
?
      digitalWrite(LED1, LOW);
+
//火焰檢測(cè)函數(shù)
?
      digitalWrite(LED2, LOW);
+
int Flame_test()
?
      digitalWrite(LED3, LOW);
+
{
?
      noTone(BUZ);
+
  int fval=0;
?
       // 按下按鈕后游戲開(kāi)始,避免直接進(jìn)入游戲,過(guò)于突然
+
  fval = analogRead(Flame); // 讀取火焰?zhèn)鞲衅鞯闹?/ins>
?
      while(1)  
+
  Serial.println(fval); //串口打印
?
    {
+
  return fval;       // 返回讀取數(shù)值
?
        btnState1 = digitalRead(BTN);
+
}
?
        delay(20);
+
//主函數(shù)
?
        btnState2 = digitalRead(BTN);
+
void loop()
?
        if(btnState1 == HIGH && btnState2 == LOW) break;
+
{
?
    }
+
    float T =Temp_test(); // 定義浮點(diǎn)型變量 讀取溫度傳感器的值
?
    // 接收玩家的回答并做判斷
+
    int S = Smoke_test(); // 定義整型變量 讀取煙霧傳感器的值
?
    for(int level = 0; level < 3; level++)
+
    int F = Flame_test(); // 定義整型變量 讀取火焰創(chuàng)奇的值
 +
    if(T > 55 || S > 450 || F > 500) //判斷報(bào)警觸發(fā)條件,滿足條件報(bào)警
 
     {
 
     {
?
        // 生成隨機(jī)數(shù),使用蜂鳴器做提示
+
        digitalWrite(Buzzer, LOW); // 蜂鳴器發(fā)生報(bào)警
?
        r = random(0, 1024);
+
    }
?
        while(1)
+
    else digitalWrite(Buzzer, HIGH); // 復(fù)位蜂鳴器
?
      {
+
    delay(300); // 延時(shí)300ms
?
          answer = analogRead(POT); // 不斷更新玩家的輸入
+
}
?
          tone(BUZ, 2000, abs(r - answer)); // 輸入不同,蜂鳴器發(fā)聲不同
+
?
          // level = 0,第一級(jí),范圍固定
+
?
          // level = 1,第二級(jí),范圍勻速變化
+
?
          // level = 2,第三級(jí),范圍變速變化
+
?
          if(level == 0) r = r;
+
?
          if(level == 1) r = (r+1)%1024;
+
?
          if(level == 2) r = (r+random(1,6))%1024;
+
?
          btnState1 = digitalRead(BTN);
+
?
          delay(20);
+
?
          btnState2 = digitalRead(BTN);
+
?
          // 如果玩家按下了確認(rèn)按鈕
+
?
          if(btnState1 == HIGH && btnState2 == LOW)
+
?
          {
+
?
          // 如果玩家回答正確
+
?
              if(isOK(level, r, answer))
+
?
              {
+
?
              // 點(diǎn)亮當(dāng)前級(jí)別的小燈
+
?
                  digitalWrite(LED1+level, HIGH);
+
?
                  break;
+
?
              }
+
?
              else // 如果回答錯(cuò)誤
+
?
            {
+
?
                  // 直接重啟整個(gè)游戲
+
?
                  reset();
+
?
              }
+
?
          }
+
?
      }
+
?
  }
+
?
  // 游戲結(jié)束
+
?
  while(1);
+
?
  }
+
?
 
+
 
==產(chǎn)品相關(guān)推薦==
 
==產(chǎn)品相關(guān)推薦==
 
[[文件:erweima.png|230px|無(wú)框|右]]
 
[[文件:erweima.png|230px|無(wú)框|右]]
 
===產(chǎn)品購(gòu)買地址===
 
===產(chǎn)品購(gòu)買地址===
?
[http://lifestyle201.com/goods-33.html 基于Arduino互動(dòng)電子套件]
+
[http://lifestyle201.com/ 物聯(lián)網(wǎng)傳感器實(shí)踐大禮包]
 
<br/>
 
<br/>
 
===周邊產(chǎn)品推薦===
 
===周邊產(chǎn)品推薦===

2016年5月3日 (二) 15:36的版本

目錄

產(chǎn)品概述

   基于Arduino 傳感器互動(dòng)(28 件)套件是哈爾濱奧松機(jī)器人科技股份有限公司專門為

對(duì)電子產(chǎn)品感興趣的愛(ài)好者精心打造的一款電子學(xué)習(xí)套件,其中包含28 中常用傳感器、 防插反連接線28 套、用戶手冊(cè)、所有實(shí)驗(yàn)程序。用戶手冊(cè)中主要包括28 個(gè)傳感器的單 獨(dú)介紹和其詳細(xì)的使用方法,后面還有擴(kuò)展實(shí)驗(yàn),用這些傳感器做一些實(shí)際可以用到的 產(chǎn)品,當(dāng)然該套件中只例舉了一部分?jǐn)U展實(shí)驗(yàn),您也可以根據(jù)這些啟發(fā),來(lái)設(shè)計(jì)一些自 己喜歡的實(shí)驗(yàn)。所有的實(shí)驗(yàn)都是實(shí)際操作和測(cè)試過(guò)的,可以保證實(shí)驗(yàn)和程序的正確性, 該套件中所有的實(shí)驗(yàn)均不需要焊接,只需按照說(shuō)明,用連接線插到Arduino 擴(kuò)展板相應(yīng)的 引腳即可,本套件的連接線均采用單頭防插反接頭,連接方便且不會(huì)出錯(cuò)。另外,視頻 是挑選典型的實(shí)驗(yàn),手把手一步一步教你操作,即使以前從未接觸過(guò)電子產(chǎn)品,也可以 按照視頻步驟,完成實(shí)驗(yàn)。

主控器技術(shù)參數(shù)

  1. 主控器:Carduino UNO R3
  2. 微處理器:ATmega328
  3. Flash 內(nèi)存:32 KB (ATmega328 其中0.5 KB 用于引導(dǎo)程序)
  4. 工作電壓:5V
  5. 輸入電壓:接上USB 時(shí)無(wú)須外部供電或外部7V~12V DC 輸入
  6. 輸出電壓:5V DC 輸出和3.3V DC 輸出和外部電源輸入
  7. 時(shí)鐘頻率:16 MHz
  8. 輸入電壓:7-12V(推薦)
  9. 輸入電壓:6-20V(限制)
  10. 支持USB 接口協(xié)議及供電(不需外接電源)
  11. 支持ISP 下載功能
  12. 數(shù)字I/O 端口:14(6 個(gè)PWM 輸出口)
  13. 模擬輸入端口:6
  14. 直流電流:40mA(I/O 端口)
  15. 直流電流:50mA(3.3V 端口)
  16. EEPROM:1 KB (ATmega328)
  17. SRAM:2 KB (ATmega328)
  18. 尺寸:75x55x15mm

Arduino編譯環(huán)境下載

當(dāng)前最新版Arduino 1.7.8 下載地址:http://www.arduino.org.cn/software

第一個(gè)Arduino實(shí)驗(yàn)

點(diǎn)亮13號(hào)引腳的LED燈,持續(xù)一秒,然后滅掉,再持續(xù)一秒,一直循環(huán)。
在這第一個(gè)實(shí)驗(yàn)中,我們假設(shè)讀者使用控制器的型號(hào)是Arduino UNO,并獲取了Arduino開(kāi)發(fā)環(huán)境,而且已經(jīng)安裝了USB驅(qū)動(dòng)。

連接Arduino控制板和電腦

將USB線一端插在Arduino控制板上,一端插在電腦的USB接口上。(獨(dú)立工作時(shí)Arduino控制板可以選擇從USB供電, 也可以選擇由電源適配器供電)

打開(kāi)LED blink例程


打開(kāi)軟件選擇文件 - 示例 - 01.Basics - Blink

blink


設(shè)置板卡型號(hào)

Arduino包括多種版本的主控器,其中比較常見(jiàn)的是Uno、Leonardo以及Mega系列的控制器。在軟件上點(diǎn)擊工具然后在“板”一項(xiàng)下選擇相應(yīng)的型號(hào),這時(shí)你需要根據(jù)自己的主控硬件的固件類型來(lái)選擇板卡。(樣例中選用的是以Uno為bootloader的控制器)
工具 - 板 - Arduino Uno

Sensor3.png


設(shè)置串口

工具 > 串口 > xx,這里的xx應(yīng)選擇在你的電腦設(shè)備管理器中看到的一致。

Sensor4.png


下載程序

如圖,點(diǎn)擊驗(yàn)證,程序只進(jìn)行了驗(yàn)證,而沒(méi)有下載到控制器中,下載需要再點(diǎn)擊上傳鍵;若直接點(diǎn)擊上傳鍵,將程序會(huì)先進(jìn)行驗(yàn)證然后直接下載程序到你的Arduino控制板上。

Sensor5.png


程序效果

程序運(yùn)行的效果就是:Adruino Uno板載的13號(hào)引腳LED燈在閃爍。

Arduino UNO驅(qū)動(dòng)安裝

Arduino UNO驅(qū)動(dòng)安裝方法1
Arduino UNO驅(qū)動(dòng)安裝方法2

例程列表

基礎(chǔ)實(shí)驗(yàn) 01. 按壓式大按鈕模塊 02. LED發(fā)光模塊(紅) 03. 大功率繼電器模塊 04. 蜂鳴器發(fā)聲模塊 05. 旋轉(zhuǎn)角度電位計(jì)模塊 06. 滑條傳感器 07. 電壓檢測(cè)傳感器 08. 光線傳感器模塊 09. 水位傳感器 10. LM35線性溫度傳感器 11. DHT11溫濕度傳感器 12. 磁感應(yīng)傳感器 13. 黑色振動(dòng)傳感器 14. 陶瓷振動(dòng)傳感器 15. 水蒸氣傳感器 16. MQ-2氣體煙霧傳感器 17. 綠色單向傾角傳感器 18. 火焰?zhèn)鞲衅?19. 土壤濕度傳感器 20. Mini紅外避障傳感器 21. 紅外熱釋電傳感器 22. MQ-3酒精傳感器 23. 觸摸傳感器 24. 灰度傳感器 25. RB URF02超聲波傳感器 26. 紅外發(fā)射模塊 27. 紅外接收模塊 28. ADXL345三軸加速度計(jì) 應(yīng)用實(shí)驗(yàn) 1、火災(zāi)煙霧報(bào)警系統(tǒng) 2、智能感應(yīng)門 3、汽車速度及酒駕檢測(cè)系統(tǒng) 4、溫室環(huán)境檢測(cè)系統(tǒng) 5、雨水檢測(cè)系統(tǒng) 6、智能灰度檢測(cè)儀 7、物體運(yùn)行狀態(tài)檢測(cè)系統(tǒng)

精選例程

DHT11溫濕度傳感器實(shí)驗(yàn)

實(shí)驗(yàn)簡(jiǎn)介

DHT11 數(shù)字溫濕度傳感器是一種集溫度、濕度一體的復(fù)合傳感器,它能把溫度和濕度物理測(cè)量通過(guò)溫、濕度敏感元件和相應(yīng)電路轉(zhuǎn)換成方便計(jì)算機(jī)或者數(shù)據(jù)采集設(shè)備直接讀取的數(shù)字量,DHT11由電阻式感濕器件和NTC系數(shù)感溫器件構(gòu)成,具有校準(zhǔn)數(shù)字信號(hào)輸出功能,采用單總線串行接口,輸出數(shù)據(jù)一共5個(gè)字節(jié),分別表示:濕度整數(shù)位、濕度小數(shù)位、溫度整數(shù)位、溫度小數(shù)位及校驗(yàn)和,其中校驗(yàn)和為濕度與溫度之和的最低8位數(shù)據(jù)。DHT11數(shù)字溫度傳感器模塊共引出3個(gè)引腳,從上到下分別是地線GND、電源VCC和數(shù)據(jù)線S。實(shí)際應(yīng)用時(shí),將S端接在Arduino UNO的一個(gè)數(shù)字輸入接口,接線方法如接線圖所示。DHT11數(shù)字溫濕度傳感器使用一根信號(hào)線傳輸數(shù)據(jù),讀取步驟如下:

1)將引腳 D8 設(shè)置為輸出模式,同時(shí)將引腳置為低電平(LOW),持續(xù)時(shí)間超過(guò)18ms以上; 2)再將引腳 D8 設(shè)置為高電平(HIGH),持續(xù)時(shí)間40us; 3)再將引腳 D8 設(shè)置為輸入(讀?。┠J剑卸ㄗx到低電平(LOW)后,延時(shí)80us,再判定讀到高電平(HIGH)后,延時(shí) 80us,以上工作完成后開(kāi)始接受數(shù)據(jù); 數(shù)據(jù)總共有5個(gè)字節(jié),忽略校驗(yàn)位,有四位是有效數(shù)據(jù)。第0字節(jié)是濕度的整數(shù)位,第1字節(jié)是濕度的小數(shù)位,第2字節(jié)是溫度的整數(shù)位,第3字節(jié)是溫度的小數(shù)位。

硬件設(shè)備

  • CarDuino UNO R3 控制器×1
  • DHT11溫濕度傳感器×1
  • V5.0擴(kuò)展板×1
  • 3P防插反連接線×1

硬件連接

DHT11溫濕度檢測(cè)硬件連接圖

DHT11.png

試驗(yàn)程序

/*********************************************************** 哈爾濱奧松機(jī)器人科技股份有限公司 RobotBase www.robotbase.cn 目 的: DHT11溫濕度傳感器測(cè)試 應(yīng)用硬件: Carduino UNO R3 控制器 應(yīng)用軟件: Arduino IDE 1.6.7 發(fā)布時(shí)間: 2016-04-09 創(chuàng) 建 人: Salmon 版 本 號(hào): 1.0 說(shuō) 明: 若用于商業(yè)用途,請(qǐng)保留此段文字或注明代碼來(lái)源

          哈爾濱奧松機(jī)器人科技有限股份公司保留所有版權(quán)   
                                                                                                                      • /

int dht11 = 8;//定義DHT11連接到數(shù)字引腳8 byte dat [5];//設(shè)置5個(gè)字節(jié)的數(shù)組 //讀取一個(gè)字節(jié)的函數(shù) byte read_data() { byte data; for (int i=0;i<8;i++) {

 		if(digitalRead(dht11) == LOW)
   	{
     		while(digitalRead(dht11) == LOW);//等待50us
     		delayMicroseconds(30);//判斷高電平的持續(xù)時(shí)間,以判斷數(shù)據(jù)是0還是1
     		if(digitalRead(dht11) == HIGH)  
     		data |=(1<<(7-i));//高位在前,低位在后
     		while(digitalRead(dht11) == HIGH);//如果數(shù)據(jù)是1,等待下一位的接收
    	}

}

   return data;

} //DHT初始化讀取數(shù)據(jù)時(shí)序 void start_test() { digitalWrite(dht11,LOW);//拉低總線,發(fā)開(kāi)始信號(hào) delay(30);//延時(shí)需要大于18ms digitalWrite(dht11,HIGH);//開(kāi)始信號(hào) delayMicroseconds(40);//等待DHT11響應(yīng) pinMode(dht11,INPUT);//改為輸入模式 while(digitalRead(dht11) == HIGH); delayMicroseconds(80);//DHT11發(fā)出響應(yīng),拉高總線80us if(digitalRead(dht11) == LOW); delayMicroseconds(80);//拉低總線80us后開(kāi)始發(fā)送數(shù)據(jù) for(int i=0;i<4;i++)//接收溫濕度數(shù)據(jù),校驗(yàn)位不考慮 dat[i] = read_data(); pinMode(dht11,OUTPUT);//改為輸出模式 digitalWrite(dht11,HIGH);//發(fā)送完一次數(shù)據(jù)后釋放總線,等待主機(jī) //下一次的信號(hào)開(kāi)始 } //初始化函數(shù) void setup() { Serial.begin(9600);//設(shè)置波特率 pinMode(dht11,OUTPUT);//定義輸出模式 } //主函數(shù) void loop() { start_test(); Serial.print("Current humdity = "); Serial.print(dat[0],DEC);//顯示濕度的整數(shù)位 Serial.print('.'); Serial.print(dat[1],DEC);//顯示濕度的小數(shù)位 Serial.println('%'); Serial.print("Current temperature = "); Serial.print(dat[2],DEC);//顯示溫度的整數(shù)位 Serial.print('.'); Serial.print(dat[3],DEC);//顯示溫度的小數(shù)位 Serial.println('C'); delay(700); }

火災(zāi)煙霧報(bào)警系統(tǒng)

實(shí)驗(yàn)簡(jiǎn)介

本實(shí)驗(yàn)采用煙霧、火焰和溫度三個(gè)傳感器采集環(huán)境信息,煙霧傳感器可以對(duì)煤氣、天然氣等易燃?xì)怏w做出檢測(cè);火焰可以針對(duì)物體燃燒時(shí)發(fā)出的火光做出檢測(cè);溫度傳感器可以對(duì)環(huán)境溫度進(jìn)行監(jiān)督,防止以上兩個(gè)傳感器檢測(cè)不到的情況,如墻外發(fā)生火災(zāi),做出預(yù)警。

硬件設(shè)備

  • MQ-2氣體煙霧傳感器一個(gè)
  • 火焰?zhèn)鞲衅饕粋€(gè)
  • LM35線性溫度傳感器一個(gè)
  • 蜂鳴器發(fā)生模塊一個(gè)
  • CarDuino UNO控制器一個(gè)
  • V5.0擴(kuò)展板一個(gè)
  • 3P防插反連接線4個(gè)

硬件連接

火災(zāi)煙霧報(bào)警系統(tǒng)硬件連接圖

Huozaiyanwu.png

試驗(yàn)程序

/*********************************************************** 哈爾濱奧松機(jī)器人科技股份有限公司 RobotBase www.robotbase.cn 目 的: 火災(zāi)煙霧報(bào)警實(shí)驗(yàn) 應(yīng)用硬件: Carduino UNO R3 控制器 應(yīng)用軟件: Arduino IDE 1.6.7 發(fā)布時(shí)間: 2016-04-11 創(chuàng) 建 人: Salmon 版 本 號(hào): 1.0 說(shuō) 明: 若用于商業(yè)用途,請(qǐng)保留此段文字或注明代碼來(lái)源

          哈爾濱奧松機(jī)器人科技有限股份公司保留所有版權(quán)   
                                                                                                                      • /

int Temp = A0; //定義溫度傳感器接口 int Smoke = A1; //定義煙霧傳感器接口 int Flame = A2; //定義火焰?zhèn)鞲衅鹘涌?int Buzzer = 2; //定義蜂鳴器接口 //初始化函數(shù) void setup() {

 Serial.begin(9600);   //設(shè)置波特率
 pinMode(2, OUTPUT);  //設(shè)置D2為輸出模式

} //溫度檢測(cè)函數(shù) float Temp_test() {

 int value = analogRead(Temp);
 float millivolts = (value*5.0 / 1024) * 1000;
 float celsius = millivolts /10;//每1攝氏度產(chǎn)生10mV 
 Serial.println(celsius);
 return celsius;

} // 煙霧檢測(cè)函數(shù) int Smoke_test() {

 int sval=0;
 sval = analogRead(Smoke);   //讀取煙霧傳感器的值
 Serial.println(sval);//串口打印
 return sval;      //返回讀取的值

} //火焰檢測(cè)函數(shù) int Flame_test() {

 int fval=0;
 fval = analogRead(Flame);  // 讀取火焰?zhèn)鞲衅鞯闹? Serial.println(fval); //串口打印
 return fval;       // 返回讀取數(shù)值

} //主函數(shù) void loop() {

   float T =Temp_test(); // 定義浮點(diǎn)型變量 讀取溫度傳感器的值
   int S = Smoke_test(); // 定義整型變量 讀取煙霧傳感器的值
   int F = Flame_test(); // 定義整型變量 讀取火焰創(chuàng)奇的值
   if(T > 55 || S > 450 || F > 500) //判斷報(bào)警觸發(fā)條件,滿足條件報(bào)警
   {
        digitalWrite(Buzzer, LOW);  // 蜂鳴器發(fā)生報(bào)警
   }
   else digitalWrite(Buzzer, HIGH);  // 復(fù)位蜂鳴器
   delay(300); // 延時(shí)300ms

}

產(chǎn)品相關(guān)推薦

Erweima.png

產(chǎn)品購(gòu)買地址

物聯(lián)網(wǎng)傳感器實(shí)踐大禮包

周邊產(chǎn)品推薦

動(dòng)手玩兒轉(zhuǎn)Arduino
基于Arduino魔法書(shū)互動(dòng)套件

相關(guān)問(wèn)題解答

Arduino 驅(qū)動(dòng)安裝失???最全的解決辦法
如何利用Xbee模塊實(shí)現(xiàn)兩個(gè)Arduino UNO控制器的通信

相關(guān)學(xué)習(xí)資料

愛(ài)上Arduino與愛(ài)上Processing的互動(dòng)視頻教程
火焰?zhèn)鞲衅魇褂醚菔疽曨l
電壓傳感器使用演示視頻
奧松機(jī)器人技術(shù)論壇