Wolf_Yout
@Wolf_Yout

Не могу ничего передать по Блютуз модулю HC-05, что делать?

Код на ардуине(Не весь т.к. все 12 режимов не влезли из-за ограничения в 30к символов :> :
#include <microLED.h>   // подключаем библу
microLED < 6, 3, -1, LED_WS2812, ORDER_GRB > strip;

byte mode;

void setup() {
  // put your setup code here, to run once:
  strip.setBrightness(255);
  strip.clear();
  strip.show();
  /*strip.set(0, mRGB(255, 0, 0));
  strip.set(1, mRGB(255, 255, 0));
  strip.set(2, mRGB(0, 255, 0));
  strip.set(3, mRGB(0, 255, 255));
  strip.set(4, mRGB(0, 0, 255));
  strip.set(5, mRGB(200, 0, 255));
  strip.show();*/
  mode = 1;
}

void BluetoothTick() {
  if (Serial.available()) {
    int val = Serial.read();
    if (val == 0) {
      mode = 0;
    }
    if (val == 1) {
      mode = 1;
    }
    if (val == 2) {
      mode = 2;
    }
    if (val == 3) {
      mode = 2;
    }
    if (val == 4) {
      mode = 3;
    }
    if (val == 5) {
      mode = 4;
    }
    if (val == 6) {
      mode = 5;
    }
    if (val == 7) {
      mode = 6;
    }
    if (val == 8) {
      mode = 7;
    }
    if (val == 9) {
      mode = 8;
    }
    if (val == 10) {
      mode = 9;
    }
    if (val == 11) {
      mode = 10;
    }
    if (val == 12) {
      mode = 11;
    }
    if (val == 13) {
      mode = 12;
    }
  }
}
void loop() {

  if (mode == 1) {
    for (int i = 1; i < 6; i++) { //Круг пробегает красный
      strip.clear(); 
      strip.set(i, mRGB(255, 0, 0));
      strip.set(i - 1, mRGB(255, 0, 0));
      strip.show();
      BluetoothTick();
      delay(200);
    }
    for (int i = 1; i < 6; i++) { //Круг пробегает оранжевый
      strip.clear(); 
      strip.set(i, mRGB(255, 123, 0));
      strip.set(i - 1, mRGB(255, 123, 0));
      strip.show();
      BluetoothTick();
      delay(200);
    }
    for (int i = 1; i < 6; i++) { //Круг пробегает Жёлтый
      strip.clear(); 
      strip.set(i, mRGB(255, 255, 0));
      strip.set(i - 1, mRGB(255, 255, 0));
      strip.show();
      BluetoothTick();
      delay(200);
    }
    for (int i = 1; i < 6; i++) { //Круг пробегает зелёный
      strip.clear(); 
      strip.set(i, mRGB(0, 255, 0));
      strip.set(i - 1, mRGB(0, 255, 0));
      strip.show();
      BluetoothTick();
      delay(200);
    }
    for (int i = 1; i < 6; i++) { //Круг пробегает голубой
      strip.clear(); 
      strip.set(i, mRGB(0, 255, 255));
      strip.set(i - 1, mRGB(0, 255, 255));
      strip.show();
      BluetoothTick();
      delay(200);
    }
    for (int i = 1; i < 6; i++) { //Круг пробегает синий
      strip.clear(); 
      strip.set(i, mRGB(0, 0, 255));
      strip.set(i - 1, mRGB(0, 0, 255));
      strip.show();
      BluetoothTick();
      delay(200);
    }
    for (int i = 1; i < 6; i++) { //Круг пробегает фиолетовый
      strip.clear(); 
      strip.set(i, mRGB(190, 0, 255));
      strip.set(i - 1, mRGB(190, 0, 255));
      strip.show();
      BluetoothTick();
      delay(200);
    }
  }

Скриншот блоков приложения:
unknown.png
Блютуз модуль подключён:
RX(На бт) = tx(На ардуино)
TX(На бт) = rx(На ардуино)
Vcc = 5v
GND = GND
включается только режим по умолчанию, тоесть бегущие радужные кольца
На адресную ленту отображается, блютуз подключается, но при выборе эффекта или выключения питания ничего не происходит
Также пробовал с обычным светодиодом что на 13 пине, пробовал именно в этом дефолтном светодиоде принимать как Число, как и Строку, не работает, просто подмигивает светодиод RX(ПРинятие данных)
Надеюсь ответа дождусь А то вопрос так то три дня без ответа торчит уже, никогда ещё настолько долго не ждал ответ :>
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 1
@evgeniy_lm
Ваш HC-05 точно рабочий. Как вы это определили?
У вас слишком сложная прога, возможно даже неработающая, проверять за вас никто не будет. Попробуйте упростить до минимума, например, какой-то байт включает штатный светодиод, а какой-то выключает, остальные игнорируются
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы