//Это тестовый скетч для выяснения, какие символы посылает приложение через bluetooth модуль hc-05 в Arduino при воздействии на органы управления приложения (кнопки, джойстик)
//скетч больше подходит для чтения одиночных сигналов
//также можно проверить функцию передачи данных с Arduino в смартфон
#include <LiquidCrystal_I2C.h>//библиотеки работы с LCD через I2C
#include <Wire.h>
int led = 13; //номер встроенного LED-пина
float send_digit = 39.27; //произвольное число для передачи в смартфон
LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600); //запускаем передачу данных
Serial.setTimeout(50);//время ожидания приема данных в мс (по умолчанию 1000 мс, что очень долго)
lcd.init();// Инициализация lcd
lcd.backlight(); // Включаем подсветку
lcd.setCursor(0,0);//рисуем первую строчку
lcd.print(" Bluetooth");
lcd.setCursor(0,1);//рисуем вторую строчку
lcd.print(" Test ");
delay(2000); // Пауза в мс.
lcd.setCursor(0,0); //очищаем экран
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print(" ");
lcd.setCursor(0,0);
}
void loop() {
Serial.println(send_digit); //посылаем в смартфон произвольное число
if (Serial.available() > 0)
{
ReadBT(); //функция обработки данных со смартфона
}
}
//****************** Функция обработки данных со смартфона ***************************
void ReadBT()
{
String test_string = "";//объявляем переменную типа String здесь, а не в начале скетча, чтобы она очистилась из памяти после использования
test_string = Serial.readString();//читаем данные из порта, формирует из данных строку test_string. Заканчивает работу по Serial.setTimeout(50).
lcd.setCursor(0,1);
lcd.print(" "); //очищаем экран
lcd.setCursor(0,0);
lcd.print(test_string); //выводим полученную строку на LCD
lcd.print(" ");
//Обратите внимание, символы, на которые будет реагировать контроллер, определены для элементов управления (джойстик, переключатели) в приложении Bluetronics (от Aniket Raj). В других приложениях они будут другие, соответственно, поменяйте их в скетче ниже. Чтобы узнать, какие это символы, вы можете загрузить этот скетч, поиграться с кнопками и т.п., и в верхней строчке вы увидите искомые символы, соответствующие определенному элементу управления. Искомые символы будут замыкать два крякозябрика - это символы перевода строки
//************* включаем или выключаем LED джойстиком ***************
if (test_string.indexOf("T") > -1)//нажата стрелка ВВЕРХ (буква T)
{
digitalWrite(led, HIGH);
}
if (test_string.indexOf("B") > -1)//нажата стрелка ВНИЗ (буква B)
{
digitalWrite(led, LOW);
}
}