2019年1月28日 星期一

雙A學習18112.藍芽0~255控制PWM燈強弱

雙A學習18112.藍芽0~255控制PWM燈強弱

Arduino加Android=雙A,
UNO裝上藍芽模塊與手機或平板連線,
此篇用HC05接UNO R3,由Win7及Arduino1.6.6安裝
再透過APP控制UNO,此篇要控制P9腳位LED燈的亮度,
務必將燈接在有PWM~符號的腳位上
並接上一220或330電阻到負腳位,
若要控制電機馬達需再加其他零件,因UNO的輸出電流只300mA,
圖↓


如不了解PWM及藍芽使用,請先學習之前的頁面,
用HC05或HC06都可以,硬體接好連電腦後藍芽板快閃,
開啟UNO IDE程式先上傳空程式確認連線無誤,
由於手機透過藍芽傳輸時會將字元轉換為ASCII碼,
雖然在監控視窗可看到字元或數字,
但對UNO來說只是字碼而非字元,
在ASCII碼裡,"0"字元碼為48,
因此需先將接收的ASCII碼值轉換為整數值0~255,
再傳給LED燈控制亮度


// 手機傳輸0~255控制PWM燈強弱
#include <SoftwareSerial.h> // 引用程式庫
SoftwareSerial BT(10,11); // 對應藍芽TX和RX
String num = "" ;
int i = 0 ;
long val ;

void setup(){
Serial.begin(9600); // 電腦鮑率
BT.begin(38400); // 藍芽鮑率
pinMode( 9 , OUTPUT); // 被控燈腳位需有pwm
}

void loop(){
command();
}

long command(){
 while(BT.available()){
   if(i==0){
    num = "";  
 }
num += BT.read()-48; // 扣除ASCII碼值
i++;
}
 val = num.toInt(); // 字串轉換成整數值
i=0 ;

Serial.println(val);
analogWrite(9,(val));
}

以上UNO軟硬體完成後,安卓手機可自行編寫,
或在APP商城有很多藍芽對Arduino用的程式,
以下使用Arduino bluetooth controller,


下載APP後
有4種功能,及調光調速,也有字串的輸入,
安裝APP後開啟藍芽,搜尋HC05連線輸入密碼後燈慢快閃,
點選數字棒功能來拖拉控制燈的亮度,
打開電腦監控視窗可顯示數值,



www.ee543.com

沒有留言:

張貼留言