2018年5月31日 星期四

Digispark chap2.通訊應用-1 SoftSerial(UART串列傳輸可用在藍芽模組、與電腦溝通、設備遙控、資料傳輸)

本章用最簡單的方式在Digispark上實現SoftSerial(UART)
其實就是我們常在電腦中用的RS232通訊
電壓為準為5V或是3.3V,不過基本上協定是相同的
在Digispark如果可以接收串列(UART)的訊號,其實就有很多用處了

比方說您如果想製作一個無線的環境偵測器(可以接收溫度、濕度、陽光等外部資訊)
就可以簡單的利用UART搭配藍芽模組來實現
溫度或濕度感測器 >> Digispark >> UART(通訊協定) >> 藍芽模組 >> 由電腦或手機接收相關資訊

又或者你想要做一個無線的遙控器,遙控家裡的窗簾或是門的開關
手機APP >> 藍芽模組 >> UART(通訊協定) >> Digispark >> 開關控制電路

本章用軟體的方式實現UART的傳輸,電腦端透過有線的UART to USB的模組接收訊號
當Digispark收到電腦傳來的命令時,回傳對應的字串

如下是我的實驗設備
1.Digispark
2.USB to TTL模組(USB to UART)(紅)
3.杜邦對接線*3條



範例程式碼:

 1  
 2 #include <SoftSerial.h>
 3 
 4 SoftSerial Serialport(2, 1);      //設定Rx/Tx對應的PIN
 5 char Serialdata[32];
 6 int Serial_num;
 7 
 8 void setup() {
 9  Serialport.begin(9600);          //設定Baudrate為9600  
10  Serialport.write("SoftSerial Test \r\n");  //傳送字串
11  delay(1000);
12 }
13 
14 void loop() {
15 if (Serialport.available())
16  {
17   Serialdata[0] = Serialport.read();        //接收Serial資料
18   // 判斷接收的資料如果是文字A,就回傳字串"DATA: A \r\n"
19   if( Serialdata[0] == 'A' ){  Serialport.write("DATA: A \r\n"); }
20   if( Serialdata[0] == 'B' ){  Serialport.write("DATA: B \r\n"); }
21   }
22  }
23


相關接線方式:



電腦端用AccessPort作為接收軟體,設定好對應的COM port與baudrate
就可以測試功能是否正常



這個小實驗成功後,可以換成藍芽模組,做出其他非常多的變化


沒有留言:

張貼留言

專題許願池,請不要吝嗇將你想製作的專題用回覆的方式寫在下方

專題許願池 開這個板是為了幫助一些人,有專題製作需求,但是又不知道要如何實現 如果您有想製作的專題,請您將您的題目回覆在下方,先提出您的需求,進而討論可行性或製做的方向,或是您進行到什麼階段,有遇到什麼樣的問題也可以提出來討論,如果我知道會盡量幫助您順利完成。 不限...