4

Продолжение поста «Ардуино помощь»1

ребят, выручайте, недавно вы мне помогали с проектом по ссылке, там требоволось простое последовательное включение адресных светодиодов, мне помогли с кодом для ардуино, в пятницу после установки инсталяции, выяснилось что начальник ошибся,  и включение светодиодов должно быть немного другое, а завтра мне надо ехать туда и все чинить, и честно не понимаю как получить эфект который они хотят, попробую ниже приложить видео как должно выглядеть

и вот код который мне дали прошлый раз

#include <Adafruit_NeoPixel.h>
#include <Adafruit_ADXL345_U.h>
const int Pin = 2; // пин Ардуино, к которому подключена лента
const int CountLed = 37; //кол-во светодиодов в ленте
Adafruit_NeoPixel strip = Adafruit_NeoPixel(CountLed, Pin, NEO_GRB + NEO_KHZ800);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup() {
strip.begin();// гасим ленту, т.к. могут рандомно включаться отдельные светодиоды
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
strip.show();
}
void loop()
{
for (int i=0; i<CountLed; i++ )
{
strip.setPixelColor(i, strip.Color(250,250,200)); // белый цвет, яркость от 0 до 255, берем 200
strip.show();
delay(1000); // пауза между включениями светодиодов, например, 1 сек = 1000мсек
}
delay(2000); // пауза между циклами, например, 2 сек = 2000мсек
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
}

Arduino & Pi

1.5K поста20.8K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

2
Автор поста оценил этот комментарий

А вы за все хвататься будете, потому что "единственный кто держать умеет"? На вас едут, а вы пытаетесь поехать на сообществе. Это так не работает. Умейте говорить нет и объяснять, что паять и программировать - две совсем разные вещи. И для второго, если надо, руководство пусть за небольшие деньги (тут цена вопроса до 5 т.р.) наймет фрилансера в инете, раз так надо и в штате программиста нет.

PS: Для Arduino есть алгоритмические конструкторы, не требующие кодинга для создания прошивки  - XOD, Ardublock и т.п. Попробуйте с ними разобраться, раз программировать не умеете. Только давайте сами, без "напишите мне прошивку", потом "поправьте мне прошивку". Сообщество не для решения рабочих задач создано.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Больная тема, научиться говорить нет, а так вы правы. За рекомендацию софта, спасибо, надо глянуть
2
Автор поста оценил этот комментарий
выяснилось что начальник ошибся, и включение светодиодов должно быть немного другое, а завтра мне надо ехать туда и все чинить,

Ниче не понимаю - а почему вы на работе занимаетесь тем, чем не умеете?
И у вас несколько постов таких - "начальнику надо -> я не разбираюсь -> помогите".
Я честно не понимаю. Или это ваша работа или нет, но уж точно не рандомных людей за бесплатно, раз речь о работе. Любая работа должна быть оплачена.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

попробую объяснить, это не моя прямая обязанность на работе, но так получилось что единственый кто умеет держать паяльник в руках это я, в итоге все подобные проекты падают на меня

показать ответы
0
Автор поста оценил этот комментарий
Что это будет если не секрет?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Декорации на стену копании insightec (изготавливает медицинское оборудование ), если завтра все доделаю, приложу фото

0
Автор поста оценил этот комментарий
Проверил количество делеев??
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Проверил, вроде все работает как надо, щас гоняю немного по кругу, и можно будет резать ленту, и паять. Спасибо огромное
показать ответы
3
Автор поста оценил этот комментарий
В последнем коде все delay(500) меняем на delay(1000)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо огромное, вы очень выручаете
показать ответы
2
Автор поста оценил этот комментарий
#include <Adafruit_NeoPixel.h>
#include <Adafruit_ADXL345_U.h>
const int Pin = 2; // пин Ардуино, к которому подключена лента
const int CountLed = 35;
const int CountLed2 = 19;//кол-во светодиодов в ленте
Adafruit_NeoPixel strip = Adafruit_NeoPixel(CountLed, Pin, NEO_GRB + NEO_KHZ800);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup() {
strip.begin();// гасим ленту, т.к. могут рандомно включаться отдельные светодиоды
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
strip.show();
}
void loop()
{
for (int i=21; i<CountLed; i++ )
{
strip.setPixelColor(i, strip.Color(250,250,200)); // белый цвет, яркость от 0 до 255, берем 200
strip.show();
}
for (int j=0; j<CountLed2; j++ )
{
strip.setPixelColor(j, strip.Color(250,250,200)); // белый цвет, яркость от 0 до 255, берем 200
strip.show();
delay(1000);
}
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
delay(500);
for (int i=0; i<CountLed; i++ )
{
strip.setPixelColor(i, strip.Color(250,250,200));
strip.show();
}
delay(500);
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
delay(500);
}
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

вроде все работает, единственное извините за наглость, а можно как то немного изменить задержки в конце цикла с морганием примерно так - загорается послдедний светодиод, через секунду все светодиоды гаснут на секунду включаются и начинается цикл, (извините если я вас достал, понимаю что тз кривое

показать ответы
1
Автор поста оценил этот комментарий
#include <Adafruit_NeoPixel.h>
#include <Adafruit_ADXL345_U.h>
const int Pin = 2; // пин Ардуино, к которому подключена лента
const int CountLed = 35;
const int CountLed2 = 19;//кол-во светодиодов в ленте
Adafruit_NeoPixel strip = Adafruit_NeoPixel(CountLed, Pin, NEO_GRB + NEO_KHZ800);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup() {
strip.begin();// гасим ленту, т.к. могут рандомно включаться отдельные светодиоды
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
strip.show();
}
void loop()
{
for (int i=21; i<CountLed; i++ )
{
strip.setPixelColor(i, strip.Color(250,250,200)); // белый цвет, яркость от 0 до 255, берем 200
strip.show();
}
for (int j=0; j<CountLed2; j++ )
{
strip.setPixelColor(j, strip.Color(250,250,200)); // белый цвет, яркость от 0 до 255, берем 200
strip.show();
delay(1000);
}
delay(2000); // пауза между циклами, например, 2 сек = 2000мсек
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
}
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

почти все работает, кроме моргания всеми 36 диодами в конце цикла ( извините я не умею в програмирование, голова вообще не варит )

показать ответы
1
Автор поста оценил этот комментарий
#include <Adafruit_NeoPixel.h>
#include <Adafruit_ADXL345_U.h>
const int Pin = 2; // пин Ардуино, к которому подключена лента
const int CountLed = 35;
const int CountLed2 = 19;//кол-во светодиодов в ленте
Adafruit_NeoPixel strip = Adafruit_NeoPixel(CountLed, Pin, NEO_GRB + NEO_KHZ800);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup() {
strip.begin();// гасим ленту, т.к. могут рандомно включаться отдельные светодиоды
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
strip.show();
}
void loop()
{
for (int i=21; i<CountLed; i++ )
{
strip.setPixelColor(i, strip.Color(250,250,200)); // белый цвет, яркость от 0 до 255, берем 200
strip.show();
}
for (int j=0; j<CountLed2; j++ )
{
strip.setPixelColor(j, strip.Color(250,250,200)); // белый цвет, яркость от 0 до 255, берем 200
strip.show();
delay(1000);
}
delay(2000); // пауза между циклами, например, 2 сек = 2000мсек
for (int i=0; i<CountLed; i++ ) strip.setPixelColor(i, strip.Color(0,0,0));
}
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Сейчас попробую на стенде, спасибо заранее, ( мой маленький мозг уже вскипел )
1
Автор поста оценил этот комментарий
Судя по картинке светодиоды подключены не друг за другом? Т.е грубо говоря есть лента из 8 диодов, 1,3,5,7 горят постоянно, 2,4,6,8 загораются друг за другом?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я планирую их подключить соответственно нумерации на картинке, и те которые не пронумерованны, будут с 21 по 36
показать ответы
3
Автор поста оценил этот комментарий
В чем проблема собсно? Просто уменьшилось количество светодиодов? Или нужно еще моргнуть всеми светодиодами в конце??
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

уменьшть не проблема, но нужно получить как я понимаю два цикла, или я не знаю, весь цикл выглядит так : светодиоды с 21 по 36 загораются все вместе и продолжают гореть пока светодиоды с первого по 20 загораются по одному, когда загорается светодиод номер 20, все светодиоды с первого по 36 моргают один раз и цикл начинается с начала

показать ответы
0
Автор поста оценил этот комментарий
Как можно добавить второй цикл ( войд луп) на определенные светодиоды ( тоесть первый цикл поочередной включение светодиодов с первого по 20, второй цикл включение светодиодов с 21 по 36, и выключение
0
Автор поста оценил этот комментарий
Или может можно в этом коде оставить нудное количество светодиодов, и попробовать прописать новый цикл который будет управляться другим цифровым выводом ардуино ?