App Inventor (4-2)經由藍牙控制 Arduino LED 漸明漸暗
2014-04-05 23:05
2391 查看
本篇將簡單介紹如何用手機的 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
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/10/aa8757c14f8d4cc5403bcf265f07166f)
App Inventor 編寫簡易的藍牙訊息發送程式
畫面元件很簡單,點選 BT List 之後,會顯示藍牙配對裝置清單,點選您已經配對好的藍牙裝置之後,就可藉由畫面中間的滑桿元件(自定義數值範圍為0~80,您也可以偷懶直接就定義為0~255)。App Inventor 會每隔按鈕就可點選。反覆點選就會送出不同的字元給Arduino
來控制LED亮滅。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/10/890670fc8f22511c82e7f30397ae2310)
程式說明:
STEP1:在 ListPicker1.BeforePicking事件中,將 BluetoothClient.AddressAndNames指令為 ListPicker1內容,代表點選將其內容連結到手機的已配對藍牙裝置清單。
STEP2:在 ListPicker1.AfterPicking事件中,確認連線成功之後,設定相關按鈕為 enabled/ disabled。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/10/0d59e416d08eba797b9d32298af3df83)
STEP3:
本程式重點在於使用 CLock.Timer事件每 0.01 秒將 Slider 的當下數值透過 BluetoothClient元件的 SendText 指令送出。最後按下 Disconnect 斷線按鈕則中止藍牙連線,並將個畫面元件回復到初始狀態等候下一次連線。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/10/014f4a5bba5f142d558e355b16119e53)
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(" “);
}//此段請參考上一篇解釋
}
}
範例程式請點我下載(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
}
相关文章推荐
- arduino入门学习实现语音控制LED灯
- Arduino多LED控制软硬件设计
- arduino学习之led相关--跑马灯+电位器控制led亮灭
- 【Arduino官方教程第一辑】示例程序 4-6 串口控制LED
- arduino中使用光敏电阻控制LED灯
- 基于Arduino+LabVIEW的串口控制LED亮灭
- Arduino 实验2 - 控制LED闪烁
- arduino学习系列——按键控制LED灯
- Arduino Leonardo 按键控制LED亮与灭
- Arduino 用两个按键分别控制两个LED灯点亮
- arduino按钮控制LED
- Arduino应用笔记(二)Matlab控制Arduino点亮一个LED灯
- arduino 蓝牙控制RGB LED灯
- 树莓派通过I2C总线控制Arduino点亮LED灯
- LeapMotion+Processing+Arduino 控制LED灯的亮与灭
- arduino 红外遥控器控制LED灯
- 2.5 使用ARDUINO做主控,手机发送短信控制开关LED
- Arduino 各种模块篇 蓝牙模块 手机蓝牙控制Arduino LED灯
- 用网页控制Arduino LED
- Arduino 通过串口字符串控制LED开关