Официальный сайт компании Arduino по адресу arduino.cc
Подскажите где ошибка в коде?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сб, 09/01/2021 - 15:24
Приветствую уважаемые коллеги!
Пытаюсь использовать библиотеку microLed.
Стоит задача при подаче на вход Ардуинки 0, должна бежать тень красным, при подачи 1 должна бежать тень зеленым.
Вроде бы все работает, но...
При подаче 0 тень бежит красным, от 11 до 0 светодиода..
При подаче 1 тень бежит зеленым, от 11 до 0 светодиода и! красным от 24 и до 11 светодиода.
Подскажите как это можно поправить?
И еще вопрос: тень бежит от последнего (11) светодиода к первому, как сделать, чтобы бежала от первого к последнему (11)?
Спасибо!
Код:
#define STRIP_PIN 6 // пин ленты #define NUMLEDS 12 // кол-во светодиодов #define COLOR_DEBTH 2 #include <microLED.h> // подключаем библу microLED < NUMLEDS, STRIP_PIN, -1, LED_WS2812, ORDER_GRB, CLI_AVER > strip; void setup() { strip.setBrightness(75); pinMode (2, INPUT_PULLUP); //подтянутый к + INPUT, вход 0 - красный, 1 - зеленый. strip.clear(); // Выключить всю ленту strip.show(); delay (1000); // Задержка 1сек } void loop() { if (digitalRead(2) == 0); //Если на входе 0, включить бегущие точки красным { static byte count; count++; strip.begin(); for (int r = 0; r < NUMLEDS; r++) { strip.send(mWheel8(255, count + r * 255 / NUMLEDS)); } //strip.end(); delay(3); } if (digitalRead(2) == 1) //Если на входе 1, включить бегущие точки зеленым { static byte count; count++; strip.begin(); for (int g = 0; g < NUMLEDS; g++) { strip.send(mWheel8(100, count + g * 255 / NUMLEDS)); } strip.end(); //delay(5); } }
во первых у тебя двойное описание
static
byte
count
вполне возможно когда программа зайдет в оба условия (во время выполнения первого контакт меняется)
во вторых использовать static в цикле - сильно не советую, банально загубишь ардуинку
Брал пример из https://alexgyver.ru/microled/.
К сожалению, сам не программер..., поэтому хотелось бы конкретики... Спасибо!
во вторых использовать static в цикле - сильно не советую, банально загубишь ардуинку
Можно с этого места поподробнее? Чем это ей может не понравиться?
Брал пример из https://alexgyver.ru/microled/.
Тогда Вам лучше задать свой вопрос на https://community.alexgyver.ru/
во вторых использовать static в цикле - сильно не советую, банально загубишь ардуинку
Можно с этого места поподробнее? Чем это ей может не понравиться?
вроде как статик - это выделение во флеш памяти, а у нее количество циклов записи ограничено
Нет, это не выделение во флеш памяти, используйте и ничего не бойтесь.
А можно что-то по сути моего вопроса?
Немного изменил код. Теперь работают только указанные 12 светодиодов. Но, к зеленому теперь добавляется красный цвет и его количество зависит от момента переключения уровня на входе... Чуйствую, я уже близок к цели, помогайте...
По сути вашего запроса может ответить тот, кто нестандартно работает с адресными светодиодами - гайвер. Тут в его носках копаться любителей пока что нет.
По сути Вашего вопроса я Вам уже ответил в #4. Вы читаете, что Вам пишут?
5 строка феерическая
Вопрос разрешился! Поле первого условия убрал ;
5 строка феерическая
А что там феерического? Строка как строка.
Брал пример из https://alexgyver.ru
Гы...ы, ну ты попал! Тут Гайвера малость не уважают...
Тут видимо многих не уважают, ИМХО. Надо было задать вопрос следующим образом: $100 тому, кто подскажет как решить проблему?
Бабло заберут, но проблему не решат.
К гайверу обратись :) Он тебе бесплатно поможет :)
ТС, тебе до цели как до луны, ибо ты не понимаешь что делаешь, а для старта взял кусок горячечного бреда.
Бабло заберут, но проблему не решат.
Не суди по себе :)
во вторых использовать static в цикле - сильно не советую, банально загубишь ардуинку
Можно с этого места поподробнее? Чем это ей может не понравиться?
вроде как статик - это выделение во флеш памяти, а у нее количество циклов записи ограничено
С такими знаниями вам советы давать рановато.
static в данном случае указывает на продолжительность жизни переменной. Она тупо будет создана один раз и будет жить в ОЗУ всегда. Ну или до тех пор пока что нибудь не прибьет.
Этакий аналог глобальной переменной , к которой есть доступ только из одного места(блока где она используется).
Именно поэтому может быть таких "static count" объявлено множество(в каждом блоке своя) и никаким местом они пересекаться не будут.
В общем идите курите матчасть
Надо было задать вопрос следующим образом: $100 тому, кто подскажет как решить проблему?
Ответ неправильный. Надо было поступить так, как я написал в #4