потонциометр и светодиоды

Kaston
Offline
Зарегистрирован: 13.01.2018
помогите в чём тут проблема?
#include "IRremote.h"
IRrecv irrecv(10);
decode_results results;
int led1=0;
int led2=0;
int led3=0;
int led4=0;
int led=0;
int pwm;
int led5=0;
int led6=2;
int led8=0;
#include <TimerFreeTone.h>

#define TONE_PIN 9
int melody[] = { 262, 196, 196, 220, 196, 0, 247, 262 };
int duration[] = { 250, 125, 125, 250, 250, 250, 250, 250 };

void setup (){
  pinMode(3,OUTPUT);
  pinMode(2,OUTPUT);
pinMode(4,OUTPUT);
pinMode(9, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn();
}
void loop() {
  if ( irrecv.decode( &results )) { 
    Serial.println(results.value, HEX);
    
if (results.value==0xFF30CF&&led1==0){
  digitalWrite( 2, HIGH );led1=1;results.value=0;
}
if (results.value==0xFF30CF&&led1==1){
  digitalWrite( 2, LOW );led1=0;results.value=0;
}   
if (results.value==0xFF18E7&&led2==0){
  digitalWrite( 3, HIGH );led2=1;results.value=0;
}
if (results.value==0xFF18E7&&led2==1){
  digitalWrite( 3, LOW );led2=0;results.value=0;
}
if (results.value==0xFF7A85&&led3==0){
  digitalWrite( 4, HIGH );led3=1;results.value=0;
}
if (results.value==0xFF7A85&&led3==1){
  digitalWrite( 4, LOW );led3=0;results.value=0;
} 
if (results.value==0xFFA25D){
   digitalWrite( 2, HIGH );
   delay(200);
   digitalWrite( 2, LOW );
     delay(200);
        digitalWrite( 3, HIGH );
   delay(200);
   digitalWrite( 3, LOW );
     delay(200);
        digitalWrite( 4, HIGH );
   delay(200);
   digitalWrite( 4, LOW );
     delay(200);
           digitalWrite( 4, HIGH );
   delay(200);
   digitalWrite( 4, LOW );
     delay(200);
     digitalWrite( 3, HIGH );
   delay(200);
   digitalWrite( 3, LOW );
     delay(200);
      digitalWrite( 2, HIGH );
   delay(200);
   digitalWrite( 2, LOW );
     delay(200);

if (results.value==0xFFC23D){
  for (int thisNote = 0; thisNote < 8; thisNote++) { 
    TimerFreeTone(TONE_PIN, melody[thisNote], duration[thisNote]); 
    delay(25);
    }
  results.value=0;
  }
}
 if (results.value==0xFFA857FF6897&&led8==0){
  led8=1;
  }
  if (led8=1){
   pwm = analogRead(0);
pwm = map(pwm, 0, 1023, 0, 255);
pwm = constrain(pwm, 0, 255);
analogWrite(led6, pwm); 
if (results.value==0xFF629D){
led6++;
}
if (led6 == 4)
{led6 == 2;}
    }
if (results.value==0xFFE01F&&led8==1){
  led8=0;
  }
}

 irrecv.resume();
 }

DIYMan
DIYMan аватар
Онлайн
Зарегистрирован: 23.11.2015

Проблема в отсутствии вопроса, как мне видится. Вернее, вопрос-то есть, но он не такой, каким должен был бы быть. Что не так-то? Код не компилируется? Не работает? Или работает, но не так, как надо вам? 

Никто из вас клещами вытягивать ВАШУ проблему не будет ;)

Kaston
Offline
Зарегистрирован: 13.01.2018

DIYMan пишет:

Проблема в отсутствии вопроса, как мне видится. Вернее, вопрос-то есть, но он не такой, каким должен был бы быть. Что не так-то? Код не компилируется? Не работает? Или работает, но не так, как надо вам? 

Никто из вас клещами вытягивать ВАШУ проблему не будет ;)

проблема в том что код компелируеться но ардуина не реагурует на сигналы. Без этого кусочка кода всё работает

if (results.value==0xFFA857FF6897&&led8==0){

  led8=1;

  }

  if (led8=1){

   pwm = analogRead(0);

pwm = map(pwm, 0, 1023, 0, 255);

pwm = constrain(pwm, 0, 255);

analogWrite(led6, pwm);

if (results.value==0xFF629D){

led6++;

}

if (led6 == 4)

{led6 == 2;}

    }

if (results.value==0xFFE01F&&led8==1){

  led8=0;

  }

 

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

Kaston пишет:
Без этого кусочка кода всё работает
Так, либо выбросьте этот кусочек и пусть всё работает, либо объясните толком проблему. По объяснением толком понимаетеся - чтобы кто-то ещё, кроме Вас, мог понять. Т.е. для начала, "что и как должно делаться", потом "что не так". 

Kaston
Offline
Зарегистрирован: 13.01.2018

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

Kaston пишет:
Без этого кусочка кода всё работает
Так, либо выбросьте этот кусочек и пусть всё работает, либо объясните толком проблему. По объяснением толком понимаетеся - чтобы кто-то ещё, кроме Вас, мог понять. Т.е. для начала, "что и как должно делаться", потом "что не так". 

мне нужен этот кусок кода. суть кода в том еслина пульте нажимаеться 1 led8 == 1. И если крутить потонциометр то яркость первого светодиода меняеться. Если нажать на другую кнопку то переключаеться светодиод (тоесть led6++) и если led6 == 4 тоесть последнему светодиоду то led6 опять становиться 2. и принажатии на вторую кнопку led8 == 0 и если крутить потенциометр то ничего не происходит. Что не так?

Ответ : когда я добавляю этот кусок кода у меня ничего не включаеться (имею виду другие функции)

Kaston
Offline
Зарегистрирован: 13.01.2018

DIYMan пишет:

Проблема в отсутствии вопроса, как мне видится. Вернее, вопрос-то есть, но он не такой, каким должен был бы быть. Что не так-то? Код не компилируется? Не работает? Или работает, но не так, как надо вам? 

Никто из вас клещами вытягивать ВАШУ проблему не будет ;)

суть кода в том еслина пульте нажимаеться 1 led8 == 1. И если крутить потонциометр то яркость первого светодиода меняеться. Если нажать на другую кнопку то переключаеться светодиод (тоесть led6++) и если led6 == 4 тоесть последнему светодиоду то led6 опять становиться 2. и принажатии на вторую кнопку led8 == 0 и если крутить потенциометр то ничего не происходит. Что не так?

Ответ : когда я добавляю этот кусок кода у меня ничего не включаеться (имею виду другие функции)

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

Прочитайте это сами как бы со стороны. Если Вы понимаете, что там написано, значит проблема во мне и моей тупости, значит я ничем помочь не могу. Если всё же не совсем понимаете, то напишите, наконец внятно.

Ну, поймите, ну не нужны мне Ваши  led8 == 1! Вы нормальными словами напишите что куда подключено и что должно делаться.

Kaston
Offline
Зарегистрирован: 13.01.2018

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

Прочитайте это сами как бы со стороны. Если Вы понимаете, что там написано, значит проблема во мне и моей тупости, значит я ничем помочь не могу. Если всё же не совсем понимаете, то напишите, наконец внятно.

Ну, поймите, ну не нужны мне Ваши  led8 == 1! Вы нормальными словами напишите что куда подключено и что должно делаться.

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

xDriver
xDriver аватар
Онлайн
Зарегистрирован: 14.08.2015

У меня пятилетний племяник яснее излогает свои мысли.

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

Я сдаюсь :(

Надесь, кто-нибудь Вас поймёт и поможет Вам.

5N62V
Offline
Зарегистрирован: 25.02.2016

Kaston пишет:

проблема в том что код компелируеться но ардуина не реагурует на сигналы. Без этого кусочка кода всё работает

if (results.value==0xFFA857FF6897&&led8==0){

  led8=1;

  }

  if (led8=1){

   pwm = analogRead(0);

pwm = map(pwm, 0, 1023, 0, 255);

pwm = constrain(pwm, 0, 255);

analogWrite(led6, pwm);

if (results.value==0xFF629D){

led6++;

}

if (led6 == 4)

{led6 == 2;}

    }

if (results.value==0xFFE01F&&led8==1){

  led8=0;

  }

 

Вы уверены, что в 7й строчке написано именно то, что Вам бы хотелось?

 

ПС. Сам не раз так косячил. :)

 

Kaston
Offline
Зарегистрирован: 13.01.2018

5N62V пишет:

Kaston пишет:

проблема в том что код компелируеться но ардуина не реагурует на сигналы. Без этого кусочка кода всё работает

if (results.value==0xFFA857FF6897&&led8==0){

  led8=1;

  }

  if (led8=1){

   pwm = analogRead(0);

pwm = map(pwm, 0, 1023, 0, 255);

pwm = constrain(pwm, 0, 255);

analogWrite(led6, pwm);

if (results.value==0xFF629D){

led6++;

}

if (led6 == 4)

{led6 == 2;}

    }

if (results.value==0xFFE01F&&led8==1){

  led8=0;

  }

 

Вы уверены, что в 7й строчке написано именно то, что Вам бы хотелось?

 

ПС. Сам не раз так косячил. :)

 

вобще да. А что вы имели виду?

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

Kaston пишет:

вобще да. А что вы имели виду?

Т.е. Вы действительно хотели присвоить переменной led8 значение 1? Ну, тогда ладно.

b707
Онлайн
Зарегистрирован: 26.05.2017

Kaston пишет:

вобще да. А что вы имели виду?

Диагноз ясен - код своровали в инете, а сами в нем ни бум-бум. Когда найдеите ошибку в этой строке - приходите снова.

5N62V
Offline
Зарегистрирован: 25.02.2016

Kaston пишет:

5N62V пишет:

Вы уверены, что в 7й строчке написано именно то, что Вам бы хотелось?

вобще да. А что вы имели виду?

Тогда зачем Вы применили оператор if ? Писали бы просто led8 = 1;

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

5N62V пишет:

Тогда зачем Вы применили оператор if ? Писали бы просто led8 = 1;

Не, ну как, if сработает и выполнится то, что под ним - полезная вещь.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Вам просто стесняются порекомендовать почитать описание функции сравнения и присвоения.
Подскажу "=" и "==" не то, что бы немного разные вещи, а скорее абсолютно разные.