Поиск по этому блогу

13 окт. 2019 г.

Подключение Bluetooth HC-06


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

Для работы необходимо воспользоваться функцией компьютера поиска других устройств через Bluetooth («Показать устройства Bluetooth» — «добавить устройство»). Через какое-то время компьютер находит модуль НС-06 (возможно другое имя модуля). Кликаем — «Введите код образования пары устройств и вводим 1234. Это типичный пароль для НС-06.

После подключения к ардуино, данный модуль выступает в роли порта, т.е. все, что мы пошлем на последовательный порт, будет отсылался на этот модуль. Следовательно, все то, что мы будем отсылать на этот модуль из вне, будет приниматься на ардуино как через порт.
У модели НС-06 для подключения к Arduino используются следующие пины:

STATE — выводит сигнал от светодиода;
RXD — контакт для получения данных; на него посылаются данные;
TXD — контакт для отправки данных;
GND — «земля»;
VCC — питание 3.3 v;
EN — питание вкл\выкл; если подать единицу — модуль будет включен, а если ноль — отключен;

Схема подключения Bluetooth-модуля


Настройка модуля:

Для изменения базовых настроек (имя, пин), модуль нужно подключит к компьютеру через переходник и АТ-коммандами изменять эти настройки.

Список команд для изменения:
AT — возвращает OK
AT+VERSION — посмотреть версию
AT+NAMEyyy — изменить имя устройства («ввести вместо yyy»);
AT+PINxxxx — задать другой пин, базовый 1234 (ввести вместо «xxxx»);
AT+BAUDx — установить скорость (ввести вместо «x»);

Пример:

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));
      }
    }
  }
}

Комментариев нет:

Отправить комментарий

Создайте свой комментарий.