arduino uno зависает

Stagor
Offline
Зарегистрирован: 09.06.2022

Плата arduino uno три датчика DS2401 три диода ata 106. Задача привязать диоды к датчикам, если датчика нет диод гаснет, если есть горит. На коде под катом срабатывает если отрыть монитор порта или если делать программный reset. Посоветуйте что делать или ткните если где то ошибка в коде.

#include <OneWire.h>
#include <FastLED.h>
#include <DallasTemperature.h>

#define NUM_LEDS 3
#define DATA_PIN 3
#define CLOCK_PIN 13

CRGB leds[NUM_LEDS];
OneWire oneWire(2);  //sets 1-Wire chip to pin 2
DallasTemperature ds(&oneWire);
byte  k[3] = {7, 7, 7};
byte  sensor[8];
const byte  address[3] = {0xA, 0xE7, 0x88};

void setup() {
  Serial.begin(9600); //Initiate Serial Communication
  FastLED.addLeds<APA106, DATA_PIN>(leds, NUM_LEDS);
}

void(* resetFunc) (void) = 0; // Reset MC function

void diodkey() {
  for (byte j = 0; j < 3; j++) {
    if (ds.getAddress(sensor, j)) {

    }

    for (uint8_t i = 0; i < 3; i++)  {
      if (address[i] == sensor[7]) {
        //Serial.println("Нашли");
        leds[i] = CRGB::Green;
        FastLED.show();
        delay(500);
        k[i] = i;
        break;
      } else if (k[i] == 7) {
        leds[i] = CRGB::Black;
        FastLED.show();
        delay(500);
      }
    }
  }
  /*
  for (uint8_t i = 0; i < 3; i++)  {
    if (k[i] == 7) {
      leds[i] = CRGB::Black;
      FastLED.show();
      delay(500);
    }
  }*/

  //Serial.println();

  //resetFunc();
}

void loop() {
  diodkey();
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Наерна, надо тебя отправить к автору кода... 

Stagor
Offline
Зарегистрирован: 09.06.2022

Дык. я и есть автор это первое моё творение на ардуино.

Stagor
Offline
Зарегистрирован: 09.06.2022

Отбой. Допилил код всё заработало спасибо за совет DetSimen  :)

b707
Offline
Зарегистрирован: 26.05.2017

два цикла фор в строках 24 и 29 не согласованы между собой...