Beetleを親機モードで、Arduino UNO等互換機やDENSUKEに搭載時のスケッチサンプルを以下に示します。
(Arduino UNOの接続例は、Beetle 説明書(関連資料に掲載)を参照してください。
<以下のスケッチは、IDEにコピーペーストして使用してください>
///////////////////////////////////////////////////////////////////////////////
// DENSUKE For Beetle サンプル
// 2016 1/11 By obi
//
///////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <SoftwareSerial.h>
SoftwareSerial BLE_SwSerial(4, 5); // RX, TX
#define POWER 6 //
void temp_loop(void);
// 初期化
void setup(void) {
pinMode(POWER, OUTPUT);
digitalWrite(POWER, HIGH);
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println("Goodnight moon!");
// set the data rate for the SoftwareSerial port
BLE_SwSerial.begin(9600);
// mySerial.println("Hello, world?");
}
void loop() {
temp_loop();
}
void temp_loop(void) {
uint16_t val;
float tmp;
int val1;
int val2;
int ival;
int id;
int DAT1, DAT2, DAT3, DAT4;
int avail_buf;
int dust_buf;
// CB02_SWSProc(void) Copy
int avail_bytes;
int i;
char CR_ok;
int add;
unsigned short us16tmp;
short temp_d16;
float temp_df;
int temp_iINT, temp_iFRAC;
unsigned char uc8_digh, uc8_digl;
unsigned char uc8_flag;
avail_buf = BLE_SwSerial.available();
if (avail_buf >= 5 ) {
//=========================================================
id = BLE_SwSerial.read();
DAT1 = BLE_SwSerial.read();
DAT2 = BLE_SwSerial.read();
DAT3 = BLE_SwSerial.read();
DAT4 = BLE_SwSerial.read();
// Print
if (id >= 0xF0) {
Serial.print(" Beetle ID = ");
}
else {
Serial.print(" BLE ID = ");
}
Serial.println(id, HEX);
Serial.print(" ADT7410 TEMP DATA = ");
Serial.print(DAT1, HEX);
Serial.print(" ");
Serial.print(DAT2, HEX);
Serial.print(" -CR&LF- ");
Serial.print(DAT3, HEX);
Serial.print(" ");
Serial.print(DAT4, HEX);
//===========
val = (uint16_t)DAT1 << 8; // データの読み出し(上位)
val |= DAT2; // データの読み出し(下位)
val >>= 3; // 13bit化
ival = (int)val; // 整数化
if (val & (0x8000 >> 3)) { // 符号判定
ival = ival - 8192; // 負数のとき
}
tmp = (float)ival / 16.0 ; // 摂氏温度換算
Serial.print(" TEMP = ");
Serial.println(tmp, 2); // xx.xx 温度値をシリアル送信
}
}
======= END ====
opyright 2014 @ミューテック