App Inventor (4-2)經由藍牙控制 Arduino LED 漸明漸暗

本篇將簡單介紹如何用手機的 Slider 滑桿元件來控制Arduino上的LED燈漸明漸暗,當然就是用到 analogWrite的 PWM效果囉。

範例程式請點我下載(App Inventor中文學習網檔案庫)  App Inventor 2檔名:SlideControlLED.aia

準備以下材料:

1 Android系統智慧型手機

2.Arduino相容開發板 (本文使用 Arduino MEGA2560)

3.藍牙收發接收器(本系列使用JY-MCU04 或 JY-MCU05)

4.麵包板

5.1個220歐姆色碼電阻

6.1顆LED

先由下圖將藍牙發射器及LED接上Arduino


App Inventor 編寫簡易的藍牙訊息發送程式

畫面元件很簡單,點選 BT List 之後,會顯示藍牙配對裝置清單,點選您已經配對好的藍牙裝置之後,就可藉由畫面中間的滑桿元件(自定義數值範圍為0~80,您也可以偷懶直接就定義為0~255)。App Inventor 會每隔按鈕就可點選。反覆點選就會送出不同的字元給Arduino 來控制LED亮滅。


程式說明:

STEP1:在 ListPicker1.BeforePicking事件中,將 BluetoothClient.AddressAndNames指令為 ListPicker1內容,代表點選將其內容連結到手機的已配對藍牙裝置清單。
 
STEP2:在 ListPicker1.AfterPicking事件中,確認連線成功之後,設定相關按鈕為 enabled/ disabled。

STEP3:

本程式重點在於使用 CLock.Timer事件每 0.01 秒將 Slider 的當下數值透過 BluetoothClient元件的 SendText 指令送出。最後按下 Disconnect 斷線按鈕則中止藍牙連線,並將個畫面元件回復到初始狀態等候下一次連線。



STEP2:Arduino的CODE

#include <SoftwareSerial.h>
#include <Wire.h>//引用二個函式庫SoftwareSerial及Wire

SoftwareSerial I2CBT(10,11);//定義PIN10及PIN11分別為RX及TX腳位

void setup() {

Serial.begin(9600); //Arduino起始鮑率:9600

I2CBT.begin(57600); //藍牙鮑率:57600(注意!鮑率每個藍牙晶片不一定相同,請務必確認

pinMode(9, OUTPUT);  //請注意您使用的Arduino 該腳位是否支援 PWM (會有~符號),否則會看不到效果

}

void loop() {

byte cmmd[20];
int insize;

while(1){
   //讀取藍牙訊息
   if ((insize=(I2CBT.available()))>0){
      Serial.print(“input size = “);
      Serial.println(insize);
      for (int i=0; i<insize; i++){
          Serial.print(cmmd[i]=char(I2CBT.read()));
          Serial.print(" “);
      }//此段請參考上一篇解釋

   }

 if(insize==4){  
      a = (cmmd[0]-48)*10;
      a=a+(cmmd[1]-48);
 }
 if(insize==3){
      a=(cmmd[0]-48);
 }
 Serial.println(a);
 analogWrite(9,map(a,0,80,0,255));   //使用 a 變數控制 LED 亮度  
 } //while

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值