Не работает код поогите пожалуйста.

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

В коде ошибка и у меня не получается её исправить

#include "Adafruit_NeoPixel.h"
 
// Указываем, какое количество пикселей у нашей ленты.
#define LED_COUNT 50
 
// Указываем, к какому порту подключен вход ленты DIN.
#define LED_PIN 6
 
// Создаем переменную strip для управления нашей лентой.
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
 
void setup()
{
  // Инициализируем ленту.
  strip.begin();
}
 
void loop()
{
  int i0i = (A0/4);
  int i1i = (A1/4);
  int i2i = (A2/4);
  // Включаем все светодиоды.
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip.setPixelColor(i, strip.Color( i0i, i1i, i2i)); // Подаём на ленту цвет.
  }
  // Передаем цвета ленте.
  strip.show();
  // Ждем 30 мс.
  delay(30);
  
}

Лента не светится так как мне надо

 

 

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

vo0ov пишет:

В коде ошибка и у меня не получается её исправить

#include "Adafruit_NeoPixel.h"
 
// Указываем, какое количество пикселей у нашей ленты.
#define LED_COUNT 50
 
// Указываем, к какому порту подключен вход ленты DIN.
#define LED_PIN 6
 
// Создаем переменную strip для управления нашей лентой.
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
 
void setup()
{
  // Инициализируем ленту.
  strip.begin();
}
 
void loop()
{
  int i0i = (A0/4);
  int i1i = (A1/4);
  int i2i = (A2/4);
  // Включаем все светодиоды.
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip.setPixelColor(i, strip.Color( i0i, i1i, i2i)); // Подаём на ленту цвет.
  }
  // Передаем цвета ленте.
  strip.show();
  // Ждем 30 мс.
  delay(30);
  
}

Лента не светится так как мне надо

 

 

У кого есть адр. свет. лента проверьте.

Она горит белым светом.

sadman41
Offline
Зарегистрирован: 19.10.2016

Вот это что?

  int i0i = (A0/4);
  int i1i = (A1/4);
  int i2i = (A2/4);

 

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

sadman41 пишет:
Вот это что?

  int i0i = (A0/4);
  int i1i = (A1/4);
  int i2i = (A2/4);

 

переменные

sadman41
Offline
Зарегистрирован: 19.10.2016

И для чего они?

svm
Offline
Зарегистрирован: 06.11.2016

Элементарно, Ватсон. Если ардуина глюкнет, может быть появятся цветные огоньки. А так все вроде логично. Нельзя делить на 0, а 0 делить можно, но почему на 4?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

vo0ov, в соседней теме Вы довыпендривались до того, что её (тему) снесли. Но, похоже, так ничему и не научились. Попробуйте для начала нормально задать вопрос. И заодно подумайте, почему человек обратил Ваше внимание на строки кода в посте #2. Может, чем ему "ехидно отвечать", Вы немного подумаете, что именно там его привлекло? Или (если думать нечем), то хотя бы ответите нормально - что за переменные, что в них хранится и для чего они нужны? Глядишь и поймёте что-нибудь. А будете хамить - и эту тему снесут.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

И для чего они?

Ну, как для чего. Цвета задают, см. строку №26.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

svm пишет:
0 делить можно, но почему на 4?
Почему 0? Разве A0/A1/A2 - нули?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

vo0ov пишет:

В коде ошибка и у меня не получается её исправить

#include "Adafruit_NeoPixel.h"
 
// Указываем, какое количество пикселей у нашей ленты.
#define LED_COUNT 50
 
// Указываем, к какому порту подключен вход ленты DIN.
#define LED_PIN 6
 
// Создаем переменную strip для управления нашей лентой.
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
 
void setup()
{
  // Инициализируем ленту.
  strip.begin();
}
 
void loop()
{
  int i0i = (A0/4);
  int i1i = (A1/4);
  int i2i = (A2/4);
  // Включаем все светодиоды.
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip.setPixelColor(i, strip.Color( i0i, i1i, i2i)); // Подаём на ленту цвет.
  }
  // Передаем цвета ленте.
  strip.show();
  // Ждем 30 мс.
  delay(30);
  
}

Лента не светится так как мне надо

 

 

Программа всегда работает в точности так, как ее написали. Ваша - не исключение.

Никто кроме Вас не знает, как Вам нужно, а программа при этом работает так, как Вы написали. Так что, отличается одно от другого и, если отличается, то чем именно, никому кроме Вас неизвестно.

А то получается: "Сажусь в машину, давлю на газ, давлю на тормоз, кручу руль, а приезжаю совсем не туда, куда мне нужно. Что я делаю не так?"

svm
Offline
Зарегистрирован: 06.11.2016

ЕвгенийП пишет:

svm пишет:
0 делить можно, но почему на 4?
Почему 0? Разве A0/A1/A2 - нули?

А им где-то-что-то присвоили?

sadman41
Offline
Зарегистрирован: 19.10.2016

svm, а вы их напечатайте в Serial

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

svm пишет:

ЕвгенийП пишет:

Почему 0? Разве A0/A1/A2 - нули?

А им где-то-что-то присвоили?

Конечно. По крайней мере - описали, иначе компилятор ругнулся бы, что они не описаны.

svm
Offline
Зарегистрирован: 06.11.2016

sadman41 пишет:

svm, а вы их напечатайте в Serial

Пардон, печатает № порта. Ну, извиняйте, балбес. Зато теперь, буду знать где посмотреть, а то уже без ноопепта никуда.:)

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

svm пишет:

Элементарно, Ватсон. Если ардуина глюкнет, может быть появятся цветные огоньки. А так все вроде логично. Нельзя делить на 0, а 0 делить можно, но почему на 4?

1024/4=255 вот почему

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

svm пишет:

А им где-то-что-то присвоили?

Да потенциометры

Green
Offline
Зарегистрирован: 01.10.2015

Не зря о схемах все говорят.

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Так значение потенциометров ЧИТАТЬ нужно, а ты просто номера портов туда вписал. Ну и чего ты ожидаешь? Вместо 

A0 / 4

нужно писать

analogRead(A0) / 4

И так далее

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

v258 пишет:

Так значение потенциометров ЧИТАТЬ нужно, а ты просто номера портов туда вписал. Ну и чего ты ожидаешь? Вместо 

A0 / 4

нужно писать

analogRead(A0) / 4

И так далее

А точно забыл (мне лень было за книгой лезть)

спасибо

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

vo0ov пишет:

svm пишет:

Элементарно, Ватсон. Если ардуина глюкнет, может быть появятся цветные огоньки. А так все вроде логично. Нельзя делить на 0, а 0 делить можно, но почему на 4?

1024/4=255 вот почему

Точно?

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

andriano пишет:

vo0ov пишет:

svm пишет:

Элементарно, Ватсон. Если ардуина глюкнет, может быть появятся цветные огоньки. А так все вроде логично. Нельзя делить на 0, а 0 делить можно, но почему на 4?

1024/4=255 вот почему

Точно?

ой 256

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

vo0ov пишет:

(мне лень было за книгой лезть)

Завязывали бы Вы с Ардуино - не Ваше это.

svm
Offline
Зарегистрирован: 06.11.2016

andriano пишет:

vo0ov пишет:

svm пишет:

Элементарно, Ватсон. Если ардуина глюкнет, может быть появятся цветные огоньки. А так все вроде логично. Нельзя делить на 0, а 0 делить можно, но почему на 4?

1024/4=255 вот почему

Точно?

Почти,  будем считать недовес  1 единица АЦП.

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

andriano пишет:

vo0ov пишет:

(мне лень было за книгой лезть)

Завязывали бы Вы с Ардуино - не Ваше это.

нет ни как не могу у меня модулей штук 70 и ёщё с алиэкспресса посылка едет и так далее...

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

svm пишет:

andriano пишет:

vo0ov пишет:

svm пишет:

Элементарно, Ватсон. Если ардуина глюкнет, может быть появятся цветные огоньки. А так все вроде логично. Нельзя делить на 0, а 0 делить можно, но почему на 4?

1024/4=255 вот почему

Точно?

Почти,  будем считать недовес  1 единица АЦП.

(максимум 255)

svm
Offline
Зарегистрирован: 06.11.2016

vo0ov пишет:

svm пишет:

andriano пишет:

vo0ov пишет:

svm пишет:

Элементарно, Ватсон. Если ардуина глюкнет, может быть появятся цветные огоньки. А так все вроде логично. Нельзя делить на 0, а 0 делить можно, но почему на 4?

1024/4=255 вот почему

Точно?

Почти,  будем считать недовес  1 единица АЦП.

(максимум 255)

А при чем здесь максимум? 1024/4=256 значений. Арифметика блин!  Ноль, тоже считается.

vo0ov
vo0ov аватар
Offline
Зарегистрирован: 04.01.2021

v258 пишет:

Так значение потенциометров ЧИТАТЬ нужно, а ты просто номера портов туда вписал. Ну и чего ты ожидаешь? Вместо 

A0 / 4

нужно писать

analogRead(A0) / 4

И так далее