Модуль HC-06

Tr1bLs
Offline
Зарегистрирован: 18.01.2014

Получил долгожданный HC-06, решил побаловаться, но не тут то было...

Подключил согласно документации: RX - TX, TX-RX, VCC - 5v, GND - GND
Накидал небольшой скетч для теста - управление 3-мя светодиодами: красный, жёлтый, зелёный.


int val;
int LED1 = 2;
int LED2 = 3;
int LED3 = 4;

void setup()

{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);

}
void loop()
{
if (Serial.available())
{
val = Serial.read();

if (val == 'RED')
{
digitalWrite(LED1, HIGH);
}

if ( val == 'REDOFF')
{
digitalWrite(LED1, LOW);
}

if (val == 'YELLOW')
{
digitalWrite(LED2, HIGH);
}

if ( val == 'YELLOWOFF')
{
digitalWrite(LED2, LOW);
}
if (val == 'GREEN')
{
digitalWrite(LED3, HIGH);
}

if ( val == 'GREENOFF')
{
digitalWrite(LED3, LOW);
}
}
}

Управление должно происходить с Android устройства при помощи "BT Terminal".
Сопряжение с модулем проходит успешно, а вот с терминалом коннектиться не желает.
Также пытался изменить скорость передачи, но в мониторе порта модуль отвечает только на команду "AT+NAME".

Хотелось бы понять в чём проблема и зставить всё это работать.

vladk
Offline
Зарегистрирован: 24.04.2014

попробуй в первой строчке поменять типы данных, вместо int val; поставь char val;

com
Offline
Зарегистрирован: 06.09.2013

serial.read() возвращает один символ

поэтому

val == 'RED'

низзя. хочется сравнивать со строкой - считывайте посимвольно, склеивайте в строку и сравнивайте strcmp()