/********************************************************************/
// FILE BlueTooth (HC-06)
// DATE :Tue, Jan 10, 2025
// DESCRIPTION :HC-05はスイッチを押しながら電源投入で
// ATモードに入ります
// HC-06は電源投入と同時にATモードに入ります。
// デフォルトのボーレートは HC-05(34800bps)
// HC-06(9600bps)となっています。
// HC-05は[NL+CR]、HC-06は[改行なし]で
// コマンドを送信
// CPU TYPE : Arduino UNO
// by Chiyabo
// This file is generated by Renesas Project Generator.
/*******************************************************************/
#include < SoftwareSerial.h >
#include < LiquidCrystal_I2C.h > // ライブラリのインクルード
LiquidCrystal_I2C lcd( 0x27, 16 , 2 ) ;// 0x27のアドレス,16列2行のLCDを使用
// Bluetoothモジュールとはソフトウェアシリアルで通信。
// RXD-(Arduino)D7 TXD-(Arduino)D8,に接続。
// ArduinoからのTXは分圧してBluetoothモジュールのRXDに接続。
SoftwareSerial mySerial( 8, 7 ) ; // RX,TX
#define CR '\x0d'
#define LF '\x0a'
//#define NULL'\0'
char Position = 0 ;
char RxData[ 20 ] ;
char Start = false ;
void setup( ){
//Serial.begin( 9600 ) ;
//Serial.println( "BlueTooth HC-06" ) ;
mySerial.begin( 9600 ) ;
lcd.init( ) ; // LCDの初期化 /
lcd.backlight( ) ; // LCDバックライトの点灯
lcd.setCursor( 0, 0 ) ; // カーソルの位置を指定
lcd.print( "BlueTooth HC-06" ) ; // カスタムコード(HEX)
// HC-05のデフォルトでのボーレートは38400bps
// HC-06のデフォルトのボーレートは9600bps
//BTserial.begin( 38400 ) ;
}
void loop( ){
//シリアル通信ポートから何バイトのデータが読み取れるかを返す
//戻り値 シリアルバッファにあるデータのバイト数。0の場合はデータなし
if( mySerial.available( ) ){
if( Start == false ){
lcd.println( " " ) ;
lcd.setCursor( 0, 1 ) ; // カーソルの位置を指定
Start = true ;
}
RxData[ Position ] = mySerial.read( ) ;
lcd.print( RxData[ Position ] ) ;
if( ( RxData[ Position ] != LF ) && ( RxData[ Position ] != CR ) ){
++Position ;
}
else{
//Serial.println( "LF & CR" ) ;
LcdDisp( ) ;
}
}
else if( Position != 0 ){
lcd.setCursor( 0, 1 ) ; // カーソルの位置を指定
Start = false ;
Position = 0 ;
}
}
void LcdDisp( void ){
lcd.setCursor( 0, 1 ) ; // カーソルの位置を指定
lcd.println( " " ) ;
RxData[ Position ] = '\0' ;
//Serial.println( RxData ) ;
lcd.setCursor( 0, 1 ) ; // カーソルの位置を指定
lcd.print( RxData ) ;
Start = false ;
Position = 0 ;
}