概要
前回 BLESearial2 の電源を入れるところまで試し BLE モジュールとして動作することを確認しました
今回は更に BLE モジュールからシリアル信号を Arduino で受け取って LED を点灯させてみたいと思います
環境
- Arduino UNO
- Arduino IDE 1.6.7
- BLEモジュール BLESerial2
- 砲弾型 赤色LED 1 個
- 抵抗 47Ω x 2
- ジャンパケーブル 2 本
配線
今回は BLE のシリアルを受信して LED を点灯させます
配線は以下の通り
まずは、LED を点灯させるための配線です
デジタルピン 7 番から抵抗を 2 つ挟んで LED のアノード側へ接続します
そして LED のカソード側を Arudino の GND に接続します
次に BLE モジュールの RX を Arduino の RX に接続します
注意点としては Arduino 側の RX ピンが接続されていると、後で Arduino にアップロードするプログラムが上手く書き込めないのでプログラムを書き込むときは RX ピンを抜いて書き込んでください
写真の左上の BLE モジュールの TX がブレッドボードに刺さっているのは写真を撮るためにわざとピンを指しているだけなのでどこにも接続されていない回路になります
Arduino 側プログラム
BLESerial2 からのシリアル信号を受信して LED を点灯させるプログラムです
const int LED = 7;
int rsvData = 0;
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
rsvData = Serial.read();
Serial.println(rsvData);
if (rsvData == 1){
digitalWrite(LED, HIGH);
} else if(rsvData == 0) {
digitalWrite(LED, LOW);
}
}
delay(100);
}
今回は 7 番ピンを使いました
ここは適宜変更してもらって OK です
コンパイルできたら RX ピンを一旦抜いてプログラムを Arduino に書き込みましょう
書き込みできたあとで再度 RX ピンを差し込んでください
動作確認
シリアルの受信は BLE モジュールに接続した後に write リクエストを送ることで、その信号をシリアル信号として受信することができます
じゃあどうやって write リクエストを送るかというと前回使った iPhone アプリ ( LightBlue ) を使います
アプリを立ち上げて接続したあとに「Write Without Response」のサービスを開きます
すると「Write new value」という部分があるのでタップして「1」を入力して Done してみましょう
すると Arduino に配線された見事光ると思います
次に「0」を入力すると LED が消灯するはずです
最後に
BLE モジュールから信号を受信して Arduino で LED を光らせてみました
今回、RX しか使わなかったので次回は TX を使って BLE モジュール側に信号を送信してみたいと思います
0 件のコメント:
コメントを投稿