12 трав. 2014 р.

Bluetooth HC-06 для Arduino

Преобрел недавно блютуз модуль для ардуино и хочу его сразу вам показать.

Модуль блютуз HC-06.


Описание:

Bluetooth модуль для подключения устройств к ардуино по блютуз. Режим работы пассивный.


Для работы просто выбираем поиск на другом устройстве, и находим его как НС-06. Пин базовый 1234. После подключения к ардуино, данный блютуз выступает в роли порта, т.е. все что мы пошлем на последовательный порт будет отсылался а этот блютуз, также все то  что мы будем слать на этот блютуз из вне, будет приниматься на ардуино как серез порт. 
Пины:
STATE -- выводит сигнал от светодиода.
RXD -- контакт для получения данных. На него мы посылаем данные.
TXD -- контакт для отправки данных. 
GND  - земля
VCC -- питание 3.3 v
EN -- питание вкл\выкл, если подать единицу модуль будет включен. Если ноль то модуль будет отключен.
Настройка:
Для изменения базовых настроек, имя, пин. Модуль нужно подключит к ПК,  через переходник. И через ПК, АТ коммандами изменять настройки. На данный момент я этого не делал, т.к. не имею переходника.

Но вот список команд для изменения:

AT  - возвращает  OK
AT+VERSION  - посмотреть версию
AT+NAMEyyy - изменить имя устройства. 
AT+PINxxxx - задать другой пин, базовый 1234
AT+BAUDx - установить скорость.


Источник http://arduino-ua.com/index.php?productID=241

Схема подключения:

Пример скетча: (пример не мой, но где нашел не могу сказать )

В данном примере, по команде с телефона мы отправляем 1 и светодиод на 13 порту включается, 0 его отключает, а * заставляет его мигать с  интервалом в  1 секунду.

enum { LED_PIN = 13 };
enum LedState { LED_ON, LED_OFF, LED_BLINK };

LedState led_state;

void setup()
{
  led_state = LED_OFF;
  pinMode(LED_PIN, OUTPUT);
  pinMode(3,OUTPUT);
  
  Serial.begin(9600);
}

void loop()
{  

  if (Serial.available())
  {
    char command = Serial.read();
    
    switch (command)
    {
      case '1':
        led_state = LED_ON; 
        Serial.println("Led On Cool");
        break;
        
      case '0': 
        led_state = LED_OFF; 
        Serial.println("Led Off Fall");
        break;
      case '*': 
        led_state = LED_BLINK;
        Serial.println("Led Blink ");
        break;
      
      default:
      {
        for (int i = 0; i < 5; ++i)
        {
          
          digitalWrite(LED_PIN, HIGH);
          delay(50);
          digitalWrite(LED_PIN, LOW);
          delay(50);
        }
        Serial.println("Fail ....");
      }
    }
  }
  
  switch (led_state)
  {
    case LED_ON: digitalWrite(LED_PIN, HIGH); break;
    case LED_OFF: digitalWrite(LED_PIN, LOW); break;
    
    case LED_BLINK:
    {
      static unsigned long start_millis = 0;
      
      if (millis() - start_millis >= 300)
      {
        start_millis = millis();
        digitalWrite(LED_PIN, !digitalRead(LED_PIN));
      }
    }
  }
}

Вот все, что касается настройки и подключения блютуз HC-06 для  ардуино.
Будут вопросы пишите, буду помогать их решать!





Источник http://arduino-ua.com/index.php?productID=241

4 коментарі:

  1. Привет.Подскажи пожалуйста для смены скорости в Bluetooth HC-06, нужна плата УНО , или можно другим способом? Спасибо за ответ. Yuron_1@mail.ru

    ВідповістиВидалити
    Відповіді
    1. Плата нужна но не ардуино. Нужен програматор, через который можно менять настройки bluetooth модуля. К сожалению через ардуино это не получится.

      Видалити
  2. Здравствуйте, подскажите пожалуйста почему ардуино не реагирует на отправляемый с телефона сигнал.
    Первый раз подключал и спокойно управлял через терминал светодиодом(вкл/выкл), а теперь работает только через порт платы ардуино.

    ВідповістиВидалити
  3. в скетче есть "недоработка", т.к. последовательный порт завершается символом "конец строки", то желательно добавить этот вариант в обработку, иначе это вызывает "ошибку":
    case '\n':
    Serial.println("<>");
    break;

    ВідповістиВидалити