1903serial joy
Перейти к навигации
Перейти к поиску
//////////////////////////////////////////////
// 2018.08.08 woronin, umkiedu@gmail.com
// Bluetooth Robot UMKI controller K6_mini
// третий пример- определяем нажатые команды
//
//////////////////////////////////////////////
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(6, 7); // RX, TX
int byte_forward[] = {0, 0, 129, 0, 4, 0, 0};
int byte_bakward[] = {0, 0, 127, 0, 4, 0, 0};
int byte_left[] = {0, 129, 0, 0, 4, 0, 0};
int byte_right[] = {0, 127, 0, 0, 4, 0, 0};
int byte_stop[] = {0, 0, 0, 0, 4, 0, 0};
int byte_start[] = {0, 0, 0, 0, 4, 0, 2};
int press_but = 0;
void setup() {
BTSerial.begin(9600); // инициализируем порт блютус
Serial.begin(9600); // инициализируем порт сериал - шнур USB
}
void loop() // выполняем циклически опрос порта и отправляем все байты с блютуса в шнур
{
int inByte[25], i, count; //i - это элемент массива команды из 7 байт
count = BTSerial.available();
if (count < 7) count = 0;
else {
for (i = 0; i < 7; i++) {
inByte[i] = BTSerial.read();
delay(10);
Serial.print(inByte[i], HEX); // вывод в COM порт побайтоно в шестнадцатиричной системе
Serial.print(" "); // ставим пробел между байтами, чтобы удобно было смотреть монитор порта
}
Serial.println();
}
// начало разбор принятых байт
if ( (inByte[2] == byte_forward[2]) ) {
press_but = 48; // нажата кнопка вперед
Serial.println(" press_but= 48");
}
else if ((inByte[1] == byte_left[1])) {
press_but = 52; // нажата кнопка влево
Serial.println(" press_but= 52");
}
else if ((inByte[1] == byte_right[1])) {
press_but = 56; // нажата кнопка вправо
Serial.println(" press_but= 56");
}
else if ((inByte[2] == byte_bakward[2])) {
press_but = 60; // нажата кнопка назад
Serial.println(" press_but= 60");
}
else if ((inByte[6] == byte_start[6]) ) {
press_but = 66; // нажата кнопка старт
Serial.println(" press_but= 66");
}
// конец разбор принятых байт
}