說明:
(1)使用藍芽,
(2)APP傳送字元a或b,操控Arduino LED亮、滅,
(3)APP使用滑軌,改變計時器時間,計時時間到,偶數次傳送a,奇數次傳送b,藉以操控Arduino LED閃爍。
(4)藍芽模組設定參考Maa的部落格。
Arduino程式
方法一:(藍芽模組接pin0, 1)
void setup() {
Serial.begin(57600);
pinMode(13, OUTPUT); //設定 pin13 為輸出,LED就接在這
}
void loop() {
// 檢查是否有資料可供讀取
if (Serial.available() > 0) {
// 讀取進來的 byte
int inByte = Serial.read();
// 根據收到的字元決定要打開或關掉 LED
switch (inByte) {
case 'b':
digitalWrite(13, LOW);
break;
case 'a':
digitalWrite(13, HIGH);
break;
default:
// 關掉所有的 LED
digitalWrite(13, LOW);
}
}
}
方法二:(藍芽模組接pin10, 11,0,1留給Serial Monitor)
Arduino程式
#include <SoftwareSerial.h>
#include <Wire.h>//引用二個函式庫SoftwareSerial及Wire
SoftwareSerial I2CBT(10,11);//定義PIN10及PIN11分別為RX及TX腳位
//注意此RX, TX分別接藍芽模組的TX, RX
void setup() {
Serial.begin(9600); //Arduino起始鮑率:9600
I2CBT.begin(57600);
//藍牙鮑率:57600(注意!每個藍牙晶片的鮑率都不太一樣,請務必確認
pinMode(13, OUTPUT); //設定 pin13 為輸出,LED就接在這
}
void loop() {
// 檢查是否有資料可供讀取
if (I2CBT.available() > 0) {
// 讀取進來的 byte
int inByte = I2CBT.read();
// 根據收到的字元決定要打開或關掉 LED
switch (inByte) {
case 'b':
digitalWrite(13, LOW);
Serial.println("LED OFF");
break;
case 'a':
digitalWrite(13, HIGH);
Serial.println("LED ON");
break;
default:
// 關掉所有的 LED
digitalWrite(13, LOW);
}
}
}
APP Inventor 2
Button3 斷線
Button4 LED 亮
Button5 LED 滅
Button6 LED 閃爍
初始設定
藍芽選單
斷線
LED亮
LED滅
滑軌改變時改變計時器計時時間
計時器計時時間到傳送字元a或b
沒有留言:
張貼留言