WS2812
- Войдите на сайт для отправки комментариев
Пнд, 12/02/2018 - 14:51
И снова здравствуйте...
Опять нужна ваша помощь, уважаемые ардуино -гуру...
Зажигаю линейку от кнопки...все нормально...а вот погасить не могу...
Что не так...подскажите...пожалста...
#include <Adafruit_NeoPixel.h> int PIN = 6; // Это выход #6, куда подключено управление лентой. int BUTTON1 = 2; int NUMPIXELS = 17; uint32_t time; bool BUTTON_1; Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { pinMode(BUTTON1, INPUT_PULLUP); strip.begin(); strip.show(); } void loop() { if (digitalRead(BUTTON1) == LOW) { if (millis() - time >= 100) { time = millis(); if (!BUTTON_1)BUTTON_1 = 1, NUMPIXELS = 0; if (NUMPIXELS <= 17) { strip.setPixelColor(NUMPIXELS, strip.Color(255, 55, 0)); strip.show(); NUMPIXELS ++; } if (digitalRead(BUTTON1) == HIGH) { if (millis() - time >= 100) { time = millis(); if (!BUTTON_1)BUTTON_1 = 1, NUMPIXELS = 17; if (NUMPIXELS = 17) { strip.setPixelColor(NUMPIXELS, strip.Color(255, 55, 0)); strip.show(); NUMPIXELS -- ; } } } } } }
а вот погасить не могу...
Из розетки выдерните. Если и при этом не погаснет, обращайтесь за шведской визой, поедете нобелевскую премию получать.
1. Что написано в строках 25 и 35 - просто и по русски можете объяснить?
2. В каком именно месте Вы собрались её гасить? В каких строках она по-Вашему должна гаситься?
А я помощи прошу...
Ну а Вы, если думаете что блистаете остроумием, сидя на своей высокой ветке программирования,не я Вам судья...
Ведь про millis, а тем более про neopixel, на просторах интернета ни хрена нет...ничего вразумительного...
Тем более связка NeoPixel+millis...
Про NeoPixel нет ничего в интернете? А-ха-ха.... Т.е. мяу. Вы что, из Северной Кореи что ли?
strip.setPixelColor(NUMPIXELS, strip.Color(0, 0, 0));
Выключаем пиксель - "нумпиксель"
Так вот с этим сейча разбираюсь досконально...
По сути, тут должно работать if...else....
Но не работает...
Или опять что-то не так делаю...
Да нет...не из кореи...
А если считать информац ией всю воду по NeoPi el, строящуюся только на затертых эффпктах типа радуги... и фейдера и сканера...тогда я согласен...в корее наверное больше информации...
А stripColor(0,0,0) тоже не катит...
Тупо играть в шашки, перетасовывая все что под руку попадется...не в моем стиле...
Все что получается и работает хоть и считается победой, но достаточно маленькой...
Действительно победа и достижение это добраться до сути...до начала...погонять в разных режимах...изменяя параметры и т.д.
Да суть тут проста: stripColor(к1,к2,к3) где "кааки" от 0 до 255, три нуля не горим, три 255 - сгораем белым цветом...всё остальное Ваше творчество.
Так, а я Вам помогаю!
Я вижу, что написано неправильно, но чтобы иметь возможность объяснить суть ошибки, мне надо знать, что Вы хотели написать. Вот я и спросил Вас
1. Что написано в строках 25 и 35 - просто и по русски можете объяснить?
2. В каком именно месте Вы собрались её гасить? В каких строках она по-Вашему должна гаситься?
Вам нужны объяснения? Тогда отвечайте.
Или что Вам нужно-то?
Так про творчество все понятно...энто знаю и пользуюсь...и с RGB...и с NeoPixel...
Но в данном случае первая часть кода благополучно зажигает линейку...
То погасить не могу...
Смысл конструкции...кнопка нажата...последовательно зажигаемся...кнопка отжата...последовательно гаснем...
Беда...или просто нехватка опыта...ну и знаний...
Извините, господа, не за компом...
В тел. Трудновато общаться...
Для тех, кто за телефоном, повторяю вопрос в третий раз (больше не буду, т.к. три раза даже для тех, кто за телефоном должно хватить):
1. Что написано в строках 25 и 35 - просто и по русски можете объяснить?
2. В каком именно месте Вы собрались её гасить? В каких строках она по-Вашему должна гаситься?
Ответы на первый вопрос типа
И второй вопрос вполне конкретен - не надо объяснять мне "смысл конструкции", просто назовите номера строк.
Или это не Вы писали? И понятия не имеете что там написано? Но если так, то как я могу объяснить Вам ошибки? Если Вы не понимаете что там написано?
Или Вам не нужно объяснение ошибок? Тогда что Вам нужно?
Обязательно отпишусь по всем вопросам...
ЕвгенийП, Вы ждали от меня пояснений по строке...
И при таких условиях все выполняется...т.е линейка зажигается по очереди...ну а дальше...она самая...чем садятся на крыльцо...
ЕвгенийП, Вы ждали от меня пояснений по строке...
И не дождался.
Поскольку я их просил уже трижды - больше не буду. Вам это не нужно, а мне и подавно - разбирайтесь сами.
Что значит не дождался...извините...а в 14 посте 05 строка...
Конечно разберусь...только времени потрачу побольше...
а в 14 посте 05 строка...
Я Вас просил
просто и по русски можете объяснить?
А Вы написали "if ...LOW ... TRUE" - это я и без Вас вижу. Я спрашивал что там делается.
Простым языком преобразуется сигнал с кнопки...ноль в единицу...
Ну, я Вас понял и уже сказал, чтобы разбирались сами. Если Вам в лом объяснить толком для чего Вы сравниваете номер пина с нулём, а потом его изменяете, то мне это и подавно это не нужно.
а в 14 посте 05 строка...
Я Вас просил
просто и по русски можете объяснить?
Сдается мне, что это может кончится только одним - душевным расстройством. Историю Ивана Бездомного помните?
Еще раз повторюсь...
Блистать своей гениальностью никому не запрещено...
Может Вас и обучали программированию на бейсике или ассемблере...или еще на чем-то... и когда-то...
мне к моему большому сожалению не удалось...в 1984 г. была обычная логика...и собрать какое-нибудь устройство о 20-30 корпусах 155 или 176 серии не было большой проблемой...микроконтроллеров тогда не было...
причем для начала на бумаге...а потом перенести на печатку...и только с положительным результатом...
по сути, я упустил целую эпоху...время, когда у нас начали появляться МК и серьезное программирование...
Но все равно...спасибо за общение...в Ваших колючих ответах есть огромное количество указателей на что стоит обратить внимание...
Вспоминать, как в библиотеках ночи просиживали будете?
Причем тут бейсики, ассемблеры?
Вам словами нужно описать, что должно происходить для:
1) зажигания страйпа;
2) выключения страйпа.
Без всяких миллисов и кнопок. Объясните нам, как тупым, а не просто: "зажигаются по-очереди".
Придется наверное...просиживать...
Господа...я не на экзамене...можете помочь и что-то объяснить...помогите и объясните...
Поверьте...если бы в нете по тому же миллису была полная информация, я бы не полез сюда...за помощью...
а когда на всех сайтах тупо перепечатываются фразы типа...миллис возвращает количество миллисекунд с начала работы микроконтроллера...вот это убого...
Всем спасибо за помощь и участие...пока...
Тема закрыта...пойду в библиотеку...на ночь...
с уважением, Xtro...
Господа...я не на экзамене...можете помочь и что-то объяснить...помогите и объясните...
Вы знаете, вот я настолько сильно хочу Вам помочь, что ещё раз попробую, хотя уже зарёкся.
Ну, придушите Вы свою лень и объясните, что Вы делаете в этих несчастных строчках! Я Вам уже намекал, что Вы там номер пина на кой-то хер меняете, но Вы либо не читаете, что Вам пишут, либо понимаете в этом коде даже меньше, чем я думал.
В самый распоследний раз, пытаюсь объяснить. что от Вас требуется. Вот смотрите: есть строчка:
Если объяснять, чо там делается, то можно сказать: "Если сигнал на пине А2 меньше 100, то установить пин 10 в высокий уровень". Это объяснение абсолютно бесполезное и мудацкое. Я и сам вижу, что там делается. От Вас же требуется объяснение типа: "Если уровень освещённости упал ниже 100, то включить аварийное освещение". Разницу видите?
И мой второй вопрос. Вы говорите "не гаснет". Я спросил в каких строках Вы пытаетесь погасить?" Мля - не надо философии, просто скажите "в строках №№ ххх" или "я вообще пока не пытался". НИчего другого.
И, простите, но уже достало. Я в пятый раз задаю простейшие вопросы. Если ответов на оба вопроса опять не не будет, я даже комментировать ничего не буду. Идите Вы .... в библиотеку.
Всем спасибо за помощь и участие...пока...
Тема закрыта...пойду в библиотеку...на ночь...
с уважением, Xtro...
Придется наверное...просиживать...
Господа...я не на экзамене...можете помочь и что-то объяснить...помогите и объясните...
Поверьте...если бы в нете по тому же миллису была полная информация, я бы не полез сюда...за помощью...
а когда на всех сайтах тупо перепечатываются фразы типа...миллис возвращает количество миллисекунд с начала работы микроконтроллера...вот это убого...
Всем спасибо за помощь и участие...пока...
Тема закрыта...пойду в библиотеку...на ночь...
с уважением, Xtro...
Нет ну надо же...
Хорошо, дам Вам самую полную информацию по функции millis():
Функция millis() возвращает в виде длинного целого без знака количество миллисекунд, прошедшее с момента включения микроконтроллера.
Все. Это полная информация по millis(). Полнее быть не может.
PS. Xtro, Вы, наверное, думаете, что есть некоторая тайная информация, которую от Вас тщательно скрывают. Так вот, открою страшную иайну - никакой тайной информации нет. Для того, чтобы написать программу, надо проделать несколько шагов.
1. Сформулировать задачу.
2. Представить, что бы мы сами стали делать, если бы нам пришлось решать эту задачу вместо микроконтроллера.
3. Тщательно и подробно по-русски записать последовательность действий по п.2.
4. Перевести п.3 на Си.
5. Наслаждаться результатом.
Cпасибо за полный и конкретный ответ и совет...
По-моему, это даже для этой конфы уникальный случай - столько постов написать, и при этом НЕ СКАЗАТЬ НИЧЕГО. Видимо, человеку просто скучно и не с кем поговорить.
Xtro, что мешает вам ответить на вопросы?
что мешает вам ответить на вопросы?
Полагаю, что скетч цельнотянутый, в него сделаны вставки методом тыка, понимания - 0.0, вот это и мешает.
ЕвгенийП...приветствую...Вы правы, но отчасти...
вот поэтому и начал разбираться во всем с нуля...это что касается связки ардуино+WS2812+millis...
а ежели пошерстить по сети, то 98% всего кода и написаны куда выведет...эта кривая...получилось - карашо...не получилось...соответственно не шегельме...
не све рождаются с мозгом программиста...
вот поэтому и начал разбираться во всем с нуля...
не све рождаются с мозгом программиста...
Вот и разбирайтесь именно "с нуля". Это значит - оставьте пока Неопиксели и начните с классического примера "блинк без делей" - он поможет понять, что такое миллис и как им пользоваться.
И, уверен - тогда вдруг окажется, что везде в инете про миллис написана не ерунда, а вполне толковые статьи и примеры.
А что касается "разных мозгов" - тут вы правы. Я вот даже не пытаюсь понять, что такое "логика в корпусах" и как она могла существовать без программирования. Я в 1984м уже писал программы для Б3-34
Xtro - еще один совет, может будет полезно.
Когда ищете примеры в инете - не читайте статьи "для пацанов". Ищите для программистов. Первые обычно довольно легко отличить от вторых по стилю и языку. Всякие там инструкции: "как за пару минут сделать новогоднюю гирлянду" или "как приделать к машине крутой переливающийся повортник" - в топку. Эти авторы, как правило, сами ничего не понимают в том, что делают, у них в коде масса ляпов и несуразностей.
Видеоуроки на Ютубе тоже, в большинстве своем - записываются неграмотными дилетантами.
Спасибо, b707...