ws2812 дхо для электро самоката
- Войдите на сайт для отправки комментариев
Чт, 23/09/2021 - 21:44
Приветствую всех! есть идея собрать ДХО для самоката. Самодел. Пробую на ws2812+Nano. Простое подключение. Несколько контактов замыкаются на землю, подают сигнал. включается либо поворотник либо стоп сигнал,или ходовые огни. подключил одну кнопку типо поворот,8 диодов ws2812 красиво пробегают и гаснут. проблем нет. ПРОБЛЕМЫ: невтыкаю как подключить вторую кнопку-не сробатывает,как заставить бежать огоньки в другую сторону. ну и в режиме тормоза как бы с концов бежало в центр. количество диодов не принципиально и может варироватся. помогайте пожалуйсто. в кодинге лох.
// Пример использования библиотеки GyverButton, все возможности в одном скетче. #define BTN_PIN1 3 // кнопка подключена сюда (BTN_PIN --- КНОПКА --- GND) #define BTN_PIN2 4 #include "GyverButton.h" #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> // Required for 16 MHz Adafruit Trinket #endif #define PIN1 6 #define PIN2 7 #define NUMPIXELS 8 // Popular NeoPixel ring size #define NUMPIXELS2 8 // Popular NeoPixel ring size Adafruit_NeoPixel pixel_1(NUMPIXELS, PIN1, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixel_2(NUMPIXELS2, PIN2, NEO_GRB + NEO_KHZ800); #define DELAYVAL 90 // Time (in milliseconds) to pause between pixels GButton butt1(BTN_PIN1); GButton butt2(BTN_PIN2); int value = 0; void setup() { Serial.begin(9600); pixel_1.clear(); pixel_2.clear(); butt1.setDebounce(50); // настройка антидребезга (по умолчанию 80 мс) butt1.setTimeout(200); // настройка таймаута на удержание (по умолчанию 500 мс) butt1.setClickTimeout(600); // настройка таймаута между кликами (по умолчанию 300 мс) butt1.setType(HIGH_PULL); butt1.setDirection(NORM_OPEN); butt2.setDebounce(50); // настройка антидребезга (по умолчанию 80 мс) butt2.setTimeout(200); // настройка таймаута на удержание (по умолчанию 500 мс) butt2.setClickTimeout(600); // настройка таймаута между кликами (по умолчанию 300 мс) butt2.setType(HIGH_PULL); butt2.setDirection(NORM_OPEN); // #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) // clock_prescale_set(clock_div_1); //#endif // END of Trinket-specific code. pixel_1.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) pixel_2.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) } void L_light(){ pixel_1.clear(); for(int i=-1; i<NUMPIXELS; i++) { pixel_1.setPixelColor(i, pixel_1.Color(150, 0, 0)); pixel_1.show(); delay(DELAYVAL); } } void R_light(){ pixel_2.clear(); for(int i=-1; i<NUMPIXELS2; i++) { pixel_2.setPixelColor(i, pixel_2.Color(150, 0, 0)); pixel_2.show(); delay(DELAYVAL); } } void dlight2(){ pixel_1.clear(); pixel_1.setPixelColor(4, pixel_1.Color(150, 0, 0)); pixel_1.setPixelColor(5, pixel_1.Color(150, 0, 0)); pixel_1.setPixelColor(6, pixel_1.Color(150, 0, 0)); pixel_1.setPixelColor(7, pixel_1.Color(150, 0, 0)); pixel_1.show(); delay(10); } void stoplight2(){ pixel_1.clear(); for(int i=-1; i<NUMPIXELS; i++) { pixel_1.setPixelColor(i, pixel_1.Color(0, 0, 0)); pixel_1.show(); delay(10); } } void stoplight3(){ pixel_2.clear(); for(int i=-1; i<NUMPIXELS2; i++) { pixel_2.setPixelColor(i, pixel_2.Color(0, 0, 0)); pixel_2.show(); delay(10); } } void loop() { butt1.tick(); // обязательная функция отработки. Должна постоянно опрашиваться butt2.tick(); // обязательная функция отработки. Должна постоянно опрашиваться pixel_1.clear(); pixel_2.clear(); if (butt1.isClick()) L_light(); return; // проверка на удержание if (butt2.isClick()) R_light(); return; // проверка на удержание //if (butt2.isRelease())stoplight3(); //if (butt1.isRelease())stoplight2(); //dlight2();return; pixel_1.clear(); pixel_2.clear(); } void stoplight(){ pixel_1.clear(); for(int i=-1; i<NUMPIXELS; i++) { pixel_1.setPixelColor(i, pixel_1.Color(250, 0, 0)); pixel_1.show(); delay(DELAYVAL); } }
помогайте пожалуйсто.
Какой именно помощи Вы ждёте?
1. Пожелать Вам удачи? Желаю!
2. Ответить на Ваши вопросы? Вы забыли их задать.
3. Написать код вместо Вас? Для таких запросов на форуме есть специальный раздел.
Какой именно помощи Вы ждёте?
3. Написать код вместо Вас? Для таких запросов на форуме есть специальный раздел.
а ведь придётся, а то внуки гоняют на тележке без ДХО )))