2018年6月21日 星期四

液晶螢幕(LCD)與其他sensor的結合

複習一下上次使用過的液晶螢幕:
將文字顯示在電腦的序列埠以及LCD上   LCDtext

現在請在網路上搜尋各種sensor如何在arduino裡使用,例如想要利用超聲波來讀取距離:搜尋到這篇Ming's Blogger- Arduino範例14:測試超音波模組(HC-SR04)以及這篇小狐狸事務所- Arduino 超音波模組測試
參考上面的接線
稍改寫一下程式碼:  Ultra.ino

測試一下,是否可以正常運作?

如果成功了,如何把超聲波的資料也同步寫到LCD上?
這樣就算拔掉電腦連線,也可以到處測距離,只要讀液晶螢幕數字就知道了。


如果想試試除了C語言之外的寫法,可以參考這篇:
LCD顯示模組 - 阿玉maker研究區
視力保健機 - 阿玉maker研究區

2018年4月19日 星期四

數位溫度計實作(四):將所有功能整合

將溫度計測到結果,利用LCD顯示,並以藍牙發送手機。
接線雖然看起來有些複雜,只要照順序接,也就不會混亂。
請將以下Arduino的程式上傳:

(記得函式庫裏要有之前裝的3個library)
(上傳程式時,Arduino的TX、RX腳的線要斷開)







數位溫度計實作(三):測試LCD

       要離線讀取溫度,除了利用藍牙與手機,最方便的方式就是利用液晶螢幕了,這裡使用的是I2C介面的LCD,只需要4條接線就能控制,一次可以顯示2列,各16個字元,可以參考CooperMa這篇的介紹。
先將4條接線與Arduino接上

I2C介面的LCD需要使用函式庫,一樣下載後,複製資料夾到Arduino主程式裏:

現在來寫些訊息,測試LCD輸出吧!
                          
執行後,這就是你的 Hello World! 程式。









數位溫度計實作(二):裝上藍牙,利用手機看結果

如果在不使用電腦的情況下,如何將測到的溫度結果show出來呢?
這時候藍牙傳輸+手機顯示或許是不錯的選擇。只需要在剛寫好的程式裡加上1行:
這樣手機的APP就知道要顯示底下數值。
請將修改好的程式上傳到Arduino:
藍牙的接線(接到Arduino的TX、RX):
(請注意:上傳程式到Arduino時,TX、RX與藍牙的接線要先拔起)

另外,手機上(Android)安裝 Bluetooth Graphics這個App,就可以把數值畫出來。
請參考操作影片





數位溫度計實作(一):安裝DS18B20溫度計

DS18B20溫度計的測量範圍為-55°C to +125°C (請看原廠datasheet),使用時需要外接1個4.7k歐姆的電阻,將電源5VDS18B20的信號腳連接在一起。例如,如果我們是用Arduino的第5腳(D5)來讀取DS18B20的訊號:
那麼就把電阻跨接在電源5V、Arduino的第5腳。
將DS18B20溫度計的電源正、負端與信號線都插入麵包板上的相對位置:
接下來就要借助程式部分來把溫度計讀到的訊號,翻譯成真正的溫度數值。DS18B20需要用到2個函式庫(原廠已經寫好,方便用戶可以用簡單語法讀到感測器結果),需要先下載後,解壓縮2個資料夾、將資料夾複製到Arduino主程式的library資料夾:


函式庫複製好後,就可以下指令使用DS18B20,請下載以下程式,並在Arduino IDE中開啟:
將這個程式上傳到Arduino(記得要先接上USB線,選好板子、port):
打開電腦的序列埠監控視窗,就可以看到執行結果。
只要更改ds18b.ino程式裡delay(括號)的毫秒數,就可以選擇需要的時間輸出間隔。












2018年3月22日 星期四

所以您想寫點程式嗎?

控制LED:555
 
555蜂鳴器
如果使用程式呢?
各種micro-controllers
why arduino?

各種寫程式到arduino的方式:

電路與程式的練習:曹齊平老師的科學魔法車

電路與程式的練習:Arduino創辦人的線上課程

電子零件與電阻判讀:
 

開始寫第一個程式: Hello World!
使用Arduino Nano
  1. 安裝Arduino IDE
  2. 將 Nano板與電腦USB接上,如果沒有偵測到板子,需要灌驅動程式(參考之前的這篇文章)
  3. 在Arduino IDE裏,選擇正確的型號與COM port: 
  4. 控制LED(從範例裏):
  5. 控制LED(下載程式碼):Blink
  6. 上傳寫好的程式到Arduino Nano裏
  7. 修改delay(),變化閃爍的效果。
想控制其他電子零件?
稍微複雜的程式:
測水溫_2個sensor_液晶_中斷調頻
藍牙遙控機器人

2018年1月30日 星期二

Arduino溫度量測:使用DS18B20

根據原廠datasheet,DS18B20可以測的溫度範圍是 -55°C to +125°C。
需要的材料:(根據原廠,還需要1個4.7k的電阻)
將Nano板插到麵包板,如果有液晶螢幕(I2C介面)及藍牙也可以先佈線一下(上傳程式時,藍牙的電源要先斷開)。
5VD5兩個位置,利用4.7k電阻接在一起。等一下DS18B20的訊號腳要接在D5。
將DS18B20的紅、黑接腳分別插到5V-極,信號腳到D5:

完成硬體的線路後:
接下來要上傳程式到Arduino Nano板。
(參考前篇文章,先下載Arduino IDE,並安裝)
(用USB線連接電腦與Nano板,可能需要安裝驅動)
打開Arduino IDE,選擇適當的板子型號與USB COM#

溫度感測器DS18B20需要安裝2個函式庫,請下載後解壓縮,將2個資料夾移動到Arduino的資料夾中:
接下來就可以上傳程式了。打開ds18b.ino這個檔案、上傳:

  1. #include <OneWire.h>
  2. #include <DallasTemperature.h>
  3. #define ONE_WIRE_BUS 5    //digitalPin "5"
  4. OneWire oneWire(ONE_WIRE_BUS);
  5. DallasTemperature sensors(&oneWire);
  6. float Celsius = 0;
  7. void setup() {
  8.   Serial.begin(9600);
  9. }
  10. void loop() {
  11.   sensors.requestTemperatures();
  12.   Celsius = sensors.getTempCByIndex(0);
  13.                                   //第"0"個DS18B20,可同時多個
  14.   //Serial.print("E");    //輸出到 手機app
  15.   Serial.println(Celsius);
  16.   delay(200);
  17. }

打開序列埠可以看到執行結果,目前設定200毫秒輸出一次資料。
如果一次想測量兩個以上的溫度,可以同時使用2組DS18B20,只要將第2組的訊號線也同樣插到D5接腳就可以。
程式測水溫_2個sensor ds18b_Bt
另外,也可以顯示在液晶(LCD)
程式測水溫_2個sensor_液晶 ds18b_Bt_LCD
再加入調整輸出時間間隔的功能後,以下是同時測2組溫度、液晶顯示、可調輸出時間,並即時手機繪圖的成品。