Digispark и bluetooth-модуль hc-06

Тема в разделе "Arduino & Shields", создана пользователем Юлия, 1 янв 2021.

  1. Юлия

    Юлия Нуб

    Добрый день.
    Я пыталась подключить bluetooth-модуль HC-06 к плате Digispark attiny85 и отправлять на него значение со смартфона через bluetooth-терминал. При получении значения, отличного от нуля, должен загораться встроенный светодиод. Но по какой-то причине от не загорается. Плата и модуль точно исправны. Сама никак не могу разобраться, так как в arduino новичок. Помогите, пожалуйста найти ошибку. Заранее благодарна за любую помощь.
    Код (C++):
    #include <SoftSerial.h>
    #include <TinyPinChange.h>

    #define RX 5
    #define TX 3

    SoftSerial bluetooth(TX, RX);

    int rasst = 0;

    void setup() {
    pinMode(1, OUTPUT);
    bluetooth.begin(9600);
    }

    void loop() {

      if(bluetooth.available())
      {
       rasst = bluetooth.read();
       delay(100);
        }
        if(rasst == 0) {
          digitalWrite(1,LOW);
      }
       else {
        digitalWrite(1, HIGH);
      }
      delay(10000);
    }
     
  2. fps

    fps Нерд

    1. #include <TinyPinChange.h> - удалите строку
    2. пины 5 и 3 замените на 0 и 2 (если нет особых соображений). 5 - это reset, а 3 занят USB интерфейсом
    3. if(rasst ==0) - замените 0 на 0x30 (код символа '0')
    4. delay(10000); - удалите строку
     
  3. Юлия

    Юлия Нуб

    Я внесла поправки. Теперь через несколько секунд после подключения схемы к питаю светодиод сам по себе, без команды и даже до подключения смартфона, загорается и не выключается ни при каких обстоятельствах. Как правильно записать код символа? Возможно, я ошиблась в этом. Но мне кажется, проблема есть где-то ещё.
     
  4. fps

    fps Нерд

    И даже если bluetooth-модуль отключен от Digispark?

    if(rasst ==0x30)
     
  5. Юлия

    Юлия Нуб

     
  6. fps

    fps Нерд

    5. После pinMode(1, OUTPUT); хорошо бы добавить инициализацию его состояния digitalWrite(1,LOW);
     
  7. Юлия

    Юлия Нуб

    не помогло. всё равно загорается
     
  8. fps

    fps Нерд

    Полный код и схема какие сейчас?
     
  9. Юлия

    Юлия Нуб

    Код (C++):
    #include <SoftSerial.h>

    #define RX 0
    #define TX 2


    SoftSerial bluetooth(TX, RX);

    int rasst = 0;

    void setup() {
    pinMode(1, OUTPUT);
    digitalWrite(1,LOW);
    bluetooth.begin(9600);
    }

    void loop() {

      if(bluetooth.available())
      {
       rasst = bluetooth.read();
       delay(100);
        }
        if(rasst == 0x30) {
          digitalWrite(1,LOW);
      }
       else {
        digitalWrite(1, HIGH);
      }
    }
    RXT bluetooth-модуля подключен к P2 на Digispark, TXD к P0. (VCC и GND модуля подключены не к плате, а к другому источнику питания)
     
  10. fps

    fps Нерд

    Отключите их. Если к Digispark ничего не подключено, то загораться не должно.

    GND должны быть соединены в любом случае.

    6. int rasst = 0; Здесь забыли тоже поменять 0 на 0x30
     
  11. Юлия

    Юлия Нуб

    теперь светодиод не загорается сам по себе, но и после отправки значений не загорается
     
    Последнее редактирование: 1 янв 2021
  12. fps

    fps Нерд

    Поздравляю :)
    Вот теперь разбирайтесь с bluetooth частью.