Помощь с кодом и rgb led

MaxPerson
Offline
Зарегистрирован: 30.03.2017

День добрый. С ардуино я только знакомлюсь, и ошибок в коде мне не избежать, посему прошу помощи. Проблема такая: мне нужно rgb led плавно меняющий цвет с одного на другой (цвета в коде выделил жирным). Код вроде как безошибочен, но на практике схема отказывается работать. Так как с другим кодом она работала, следовательно ошибка в нем. Прикреплю его ниже, помогите найти ошибку, буду признателен.

const int redPin = 11;

const int greenPin = 10;

const int bluePin = 9;

void setup() {

   pinMode(redPin, OUTPUT);
   pinMode(greenPin, OUTPUT); 
   pinMode(bluePin, OUTPUT);
 
}
 
void loop() {
  int i, r, g, b;
  r=228;
  g=141;
  b=28;
  color(r, g, b);
  for(i=0; i<200; i++) {
    r=r-1;
    b=b+1;
    color(r, g, b);
     //delay(1000);
  }
  color(28, 141, 228);
  for(i=0; i<200; i++) {
    r=r+1;
    b=b-1;
    color(r, g, b);
     //delay(1000);
  }
  color(228, 141, 28);
}
 
void color (unsigned char red, unsigned char green, unsigned char blue)     // the color generating function  
{    
          analogWrite(redPin, red);   
          analogWrite(bluePin, blue); 
          analogWrite(greenPin, green); 
}
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment... (в том виде, как у Вас читать будет мало кто).

MaxPerson пишет:

Код вроде как безошибочен

Никогда больше так не говорите. Даже если пока не понимаете почему, просто никогда не говорите о безошибочных кодах и всё.

T.Rook
Offline
Зарегистрирован: 05.03.2016

MaxPerson пишет:

 но на практике схема отказывается работать.

в чем это выражается?

Маленький вопросик: а за какое время пролетают циклы изменения цвета?

 

MaxPerson
Offline
Зарегистрирован: 30.03.2017

Прошу прощения. Зарегистрировался только сейчас только ради этого вопроса. Буду знать
А насчет безошибочности - я имел в виду, что встроенная в программу проверка грубых ошибок не выявила, вот и все

MaxPerson
Offline
Зарегистрирован: 30.03.2017

T.Rook пишет:

в чем это выражается?

В полном отсутствии света на диоде
На маленький вопрос не отвечу, так как не знаю, за какое время ардуино выполняет один свой шаг.

T.Rook
Offline
Зарегистрирован: 05.03.2016

Ну вопросик был задан Вам для подумать, а не для ответа мне :)

Ну да ладно. Начнем отладку:

1. Сравниваем типы переменных r,g,b в loop и в вызываемой процедурке. Ничего не настораживает?

2. Если мы в отладке - то обычно смотрим то что непонятно методом вывода в Serial. Переменные r,g,b принимают правильные значения?

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

MaxPerson пишет:

Зарегистрировался только сейчас только ради этого вопроса. Буду знать

Мне всё равно будете Вы знать или нет. Я Вам сказал, что в таком виде Ваш код не будут читать 90% тех, кто мог бы помочь (я вот не читал). Вам нужна помощь? Так выложите код нормально!

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

нормально код, схему соединений, фото своего изделия, на котором видны соединения и марка диода.

Кто ж вас, новичков знает, может вы там 2801 или 2811, как аналоговый подключаете?