發表文章

目前顯示的是 11月, 2017的文章

Arduino 記事本 08 : 人體紅外線感應模組測試

圖片
網頁筆記本-008 Arduino 記事本 08 : 人體紅外線感應模組測試 依原廠資料,此元件用於感應人體紅外熱釋進行人體位移感應,只能感應到移動中的人體,如果不動,自然就感應不到。 模組外型 接線方式供應5V電源,感應到移動人體即會由OUT接腳發出訊號 測試用程式:取自原廠說明書 測試後OK可正確取得輸出訊號 // 人體紅外線感知器測試 int IRswitch = 7 ; //紅外線感應輸入腳 int led = 13 ; //燈號 bool val = false ; void setup ( ) {   Serial . begin ( 9600 ) ;    // Debug Port   pinMode ( IRswitch , INPUT ) ;   pinMode ( led , OUTPUT ) ; } void loop ( ) {   val = digitalRead ( IRswitch ) ;   if ( val ) {     digitalWrite ( led , HIGH ) ;     Serial . println ( "HIGH" ) ;   }   else {     digitalWrite ( led , LOW ) ;     Serial . println ( "LOW" ) ;   }   delay ( 100 ) ; } 測試程式接收到Sensor-OUT發出訊息後,除會使LED亮起,也同時在通訊Port口送出訊號狀態。

Arduino 記事本 07 : 發出聲音(無源蜂鳴器)控制

圖片
網頁筆記本-007 Arduino 記事本 07 : 發出聲音(無源蜂鳴器)控制 無源蜂鳴器:內無震盪電路,無法使用單純IO訊號發音,但可透過送出的方波頻率控制其發音音頻高低。 有源蜂鳴器:內含震盪電路,透過IO訊號即可發出聲音,發聲為單音音色。 無源蜂鳴器一般有兩支腳位,上頭標示[+]接至訊號控制,另一腳位接地。 程式控制發音 網路上找到的資料,先定義各音色 // include pitches.h #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262

Arduino 記事本 06 : Read-Time Clock(RTC)模組

圖片
網頁筆記本-006 Arduino 記事本 06 : Read-Time Clock(RTC)模組 RTC:時鐘,可於系統端無電力供應狀態下,使用電池持續計數時間。 硬體&接線: RTC模組 Tiny RTC I2C Modules (DS1307) 使用DS1307晶片。 電池使用LIR2032(3.6V),消耗少於500nA。 電池如改用CR2032(3.0V)需拆除D1、R4、R5、R6後,並短路R6接點。 未改裝會爆電池。 VCC電壓使用5V。 二線式I2C介面(SDA、SCL)。 準確日曆至2100年 輸出:年/月/日,時:分:秒,具閏年補償。 提供4kBit EEPROM。 其它資料參考-1 接線 VCC => 5V GND => 0V SDA => SDA SCL => SCL LIB 安裝程式庫(LIB) 選擇草稿碼 => 匯入程式庫 => 管理程式庫... 尋找DS1307RTC => 安裝LIB(DS1307RTC by Michael Margolis),可以有<DS1307RTC.h> 尋找RTC => 安裝LIB(Time by Michael Margolis),可以有<TimeLib.h> Code // RTC寫入/讀出時間 #include < Time . h > #include < TimeLib . h > #include < Wire . h > #include < DS1307RTC . h > tmElements_t tmTime ; tmElements_t tmRTime ; /* tmElements_t 定義在TimeLib.h內,內容如下 * uint8_t Second; * uint8_t Minute; * uint8_t Hour; * uint8_t Wday;   // day of week, sunday is day 1 * uint8_t Day

Arduino 記事本 05 : 網路連線-物聯網實驗

圖片
網頁筆記本-005 Arduino 記事本 05 : 網路連線-物聯網實驗 硬體&連線 (ESP8266 RS232速率設定9600) 1、提供ESP8266使用的3.3V電壓(建議使用外接變壓器) 2、ESP8266-GND對接 3、ESP8266-Tx接到MEGA的RX1 4、ESP8266-Rx接到MEGA的TX1 5、ESP8266-CH-P接到3.3V電壓 程式 // 無線網路基地台 #define LinkWIFI "AT+CWJAP=\"Tenda_ABCD\",\"ABCD1234\"" #define QuitWIFI "AT+CWQAP" #define Link_TCP "AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",80" // ThingSpeak Server (物聯網實驗) #define ThingSpeakHTTP "api.thingspeak.com" // 設定 GET 傳送資料的格式 // GET https://api.thingspeak.com/update?api_key=KJABN12YJC34H6YF&field1=0 String GET = "GET /update?key= KJABN12YJC34H6YF " ; // 全域變數 {陣列需要先預設內容} float TS_DATA [ 9 ] = { 1.1 , 3.3 , 5.5 , 7.7 , 9.9 , 10.01 , 15.51 , 20.02 , 30.03 } ; char cData [ 100 ] ; bool bLinkTCP = false ; void setup ( ) {   // 設定 COM Port   Serial . begin ( 9600 ) ;    // Debug Port   Serial1 . begin ( 9600 )

Arduino 記事本 附件2 : Arduino IDE 增加開發板:WeMos D1

圖片
網頁筆記本-A02 Arduino IDE 增加開發板 WeMos D1 WeMos D1開發板 WIFI頻率:2.4GHZ IEEE 802.11 b/g/n 工作電壓:3.3V 數位IO:11 類比IO:1 電源輸入:2.1mm FLASH:4M byte PIN腳定義 D0:RX D1:TX D2:PWM、I2C D3:I2C SCL/D15 D4:I2C SDA/D14 D5:SPI Clock/D13 D6:SPI MISO/D12 D7:SPI MOSI/D11 D8: D9:TX1 D10:SS D11:MOSI D12:MISO D13:SCK D14:SDA D15:SCL Arduino IDE 增加WeMos D1 選擇檔按 => 偏好設定 填入[額外的開發板管理員網址] http://arduino.esp8266.com/stable/package_esp8266com_index.json 再選擇工具下的開發板 => 開發板管理員 進入 開發板管理員頁面,在尋找的位置輸入[ESP8266] 選擇右下端的安裝按鈕 安裝完成 再進入工具下的開發板選單中就可以找到[WeMos D1]的選項了 選擇完WeMos D1後工具下的資訊也會跟著變更

Arduino 記事本 附件1 : 申請ThingSpeak帳號

圖片
  網頁筆記本-A01 申請ThingSpeak帳號 ThingSpeak官網 進入ThingSpeak官網 點選Get Started For Free 依序輸入 Email、帳號、密碼、名稱 按下 Continue 進行帳號(E-Mail)確認後重新登入ThingSpeak 按下New Channel建立 輸入Name、Filed後按下儲存 正確建立Channel後顯示

Arduino 記事本 04 : 使用內建提升電阻

圖片
網頁筆記本-004 Arduino內建的提升電阻 Arduino : 一般狀況下的程式設定 一般腳位在設定時通常是Key成這樣 void setup() { pinMode(13, OUTPUT); // 設定成輸出腳位 pinMode(12, INPUT); // 設定成輸入腳位 } void loop() { bool PB1 = digitalRead(12); digitalWrite(13, PB1); } 實做後發現,輸入腳位會不定時並且不斷的收到訊號輸入。 硬體上的防彈跳電路 在按鈕按下前可持續收到HIGH訊號,按下按鈕後收到LOW訊號。 電阻為提升電阻功能,可保證按鈕未按下前收到HIGH訊號。 電容的作用可防止按下的瞬間產生數次的HIGH-LOW訊號來回切換(彈跳訊號)。 Adruino提供的內部提升電阻 程式如下 void setup() { pinMode(2, INPUT_PULLUP); pinMode(13, OUTPUT); } void loop() { int sensorVal = digitalRead(2); if (sensorVal == HIGH) { digitalWrite(13, LOW); } else { digitalWrite(13, HIGH); } } 輸入腳位的設應改變成 pinMode(2, INPUT_PULLUP); 官網介紹

Arduino 記事本 03 : 使用COM Port 進行Debug

圖片
網頁筆記本-003 使用COM Port 進行Debug 參考程式 void setup() { // put your setup code here, to run once: // 串列通訊Port口設定 Serial.begin(9600); // RS232通訊 //使用MEGA 2560有多PORT UART時,指令使用[ Serial1]/[Serial2]/[Serial3]來設定 } void loop() { // put your main code here, to run repeatedly: Serial.write("TEST001\n"); // 利用寫出的功能Debug delay(500); }

Arduino 記事本 02 : 編譯燒入軟體

圖片
網頁筆記本-002 Arduino 編譯燒入軟體!! 工具 - 選擇連接開發板種類 工具 - 選擇連接的COM Port 工具 - 序列埠監看視窗

Arduino 記事本 01 : 程式的基本格式

圖片
網頁筆記本-001  Arduino !!! 程式的基本格式 // 引用 #include "ESP8266WiFi.h" // 設定全域變數 char cData[20]; // 替腳位安上易分辨的名稱 int Pin_In_Contact = 12; int Pin_Out_Contact = 5; // 初始化區 - 只執行一次 void setup() { // 設定腳位功能 pinMode(Pin_In_Contact, INPUT); pinMode(Pin_Out_Contact, OUTPUT); // 預設狀態 digitalWrite(Pin_Out_Contact, HIGH); } // 自訂Function bool Reset() { digitalWrite(Pin_Out_Contact, HIGH); } // 程式區 , 無限循環執行 void loop() { // 暫停0.5秒 delay(500); } 開發工具 Arduino官網 DownLoad the Arduino IDE(開發工具下載)