Габариты + дхо на ws2812b

Faraday
Faraday аватар
Offline
Зарегистрирован: 15.10.2015

Помогите с кодом пожалуйста. Не могу понять где ошибка. Хочу сделать чтоб дхо  включались на отдельном пине.  

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

#include <Adafruit_NeoPixel.h> // Подключаем библиотеку

int pov1 = 15;              //Этим настраиваем скорость поворотника
int pov2 = 62;              //Этим тоже)))  (подбираем под свое авто)

const int PinNP = 8;        //Пин для подключения светодиодной ленты

const int NeoPix = 32;      //Кол-во светодиодов в ленте

const int butPinLeft = 3;   //Пины для подключения датчиков Левый поворот
const int butPinRight = 4;  //Пины для подключения датчиков Правый поворот
const int butPinDRL = 5;    //Пин для подключения датчиков Дневных Ходовых Огней

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NeoPix, PinNP, NEO_GRB + NEO_KHZ800);

void setup() { 
pinMode(butPinLeft, INPUT); 
pinMode(butPinRight, INPUT);
pinMode(butPinDRL, INPUT);

digitalWrite(butPinLeft, LOW); 
digitalWrite(butPinRight, LOW); 
digitalWrite(butPinDRL, LOW);  

strip.begin();
 
strip.show(); 

} 
void loop() { 

       //  Aварийка
    if (digitalRead(butPinLeft) == HIGH && digitalRead(butPinRight) == HIGH) {
      for (int il=0; il<NeoPix;  il++ ) {
       strip.setPixelColor(NeoPix/2-il, strip.Color(103,31,0));
       strip.setPixelColor(il+NeoPix/2, strip.Color(103,31,0));
       strip.show();
       delay(pov1);
      }
      for (int il=0; il<NeoPix; il++ ) {
       strip.setPixelColor(NeoPix/2-il, strip.Color(0,0,0));
       strip.setPixelColor(il+NeoPix/2, strip.Color(0,0,0));
       strip.show();
       delay(pov1);
      }
    delay(pov2);
    }
  
        // ЛЕВЫЙ ПОВОРОТНИК
    if (digitalRead(butPinLeft) == HIGH && digitalRead(butPinRight) == LOW) {
      for (int il=0; il<NeoPix; il++ ) {
        strip.setPixelColor(il+NeoPix/2, strip.Color(103,31,0));
        strip.show();
        delay(pov1);
       }
       for (int il=0; il<NeoPix; il++ ) {
        strip.setPixelColor(il+NeoPix/2, strip.Color(0,0,0));
        strip.show();
        delay(pov1);
      }
      delay(pov2);
     }

     
        // ПРАВЫЙ ПОВОРОТНИК
    if (digitalRead(butPinLeft) == LOW && digitalRead(butPinRight) == HIGH) {
     for (int il=1; il<NeoPix; il++ ) {
        strip.setPixelColor(NeoPix/2-il, strip.Color(103,31,0));
        strip.show();
        delay(pov1);
      }
     for (int il=1; il<NeoPix; il++ ) {
       strip.setPixelColor(NeoPix/2-il, strip.Color(0,0,0));
       strip.show();
       delay(pov1);
     }
     delay(pov2);
    }
         // ДХО
         
  if (digitalRead(butPinDRL) == HIGH) {
   for (int i=0; i<NeoPix; i++ )
   strip.setPixelColor(i, strip.Color(63,63,63));
    strip.show();
    while(digitalRead(butPinDRL) == HIGH){
      delay(50);
     } 
       
    for (int is=0; is<NeoPix; is++ ) {
    for (int i=0; i<NeoPix; i++ )
    strip.setPixelColor(i, strip.Color(0,0,0));
    strip.show();
    delay(10);
    } 
   }
 delay(15);
}
                                                                                                                                                                                                       //Shaitan4ik

 

kasper007
Offline
Зарегистрирован: 23.05.2016

строки 85-87 какую смысловуб нагрузку несут? Я так понимаю вы вкючили ДХО и у нас появился вечный цикл в этих строчках, пока мы не отключим ДХО