#1 2018-02-22 13:30:06

Week
Участник
Зарегистрирован: 2018-02-22
Сообщений: 5

Непонятное поведение светодиодов

Почему зажигаются два светодиода при получении только одного сигнала?

pinMode(4,OUTPUT);
pinMode(8,OUTPUT);

  Serial.begin(9600);
  irrecv.enableIRIn();
}
boolean x = LOW;
boolean y = LOW;
void loop() {
  if ( irrecv.decode( &results )) {
    Serial.println(results.value, HEX);

if ( results.value==0xFF6897)  {
 
  x = !x;
  digitalWrite( 4, x );results.value=0;

}
if ( results.value==0xFF9867)  {
 
  y = !y;
  digitalWrite( 8, y);results.value=0;
 
}
delay(100);
irrecv.resume();

Редактировался Week (2018-02-22 13:37:37)

#2 2018-02-22 14:19:34

vvr
Участник
Зарегистрирован: 2015-04-12
Сообщений: 493

Re: Непонятное поведение светодиодов

а в планах нет отформатировать код и по нормальному вставить

#3 2018-02-22 14:53:36

Week
Участник
Зарегистрирован: 2018-02-22
Сообщений: 5

Re: Непонятное поведение светодиодов

Помоему я просто не знаю о чем ты говоришь.

#4 2018-02-22 15:09:47

NoName
Customer
Из Київ
Зарегистрирован: 2014-07-08
Сообщений: 1,404

Re: Непонятное поведение светодиодов

results наверное оприделено как  пользовательская структура. и не совпадает с описанием в decode

но мы это не видим. потому что автор вырвал кусок кода со спионеренного скетча. где ни начала, ни конца  )
и даже не постарался кореткно задать вопрос,  т.е. корретно оформить тот код о котором он говорит.

типа как

if ( results.value==0xFF6897)  {
  
  x = !x;
  digitalWrite( 4, x );results.value=0;

}
if ( results.value==0xFF9867)  {
  
  y = !y;
  digitalWrite( 8, y);results.value=0;
  
}

Week, you understand? )
по логике вещей

add

сначала приняли 0xFF6897 потом 0xFF9867 лог то не приложили
вот и светятся 2 шт

Редактировался NoName (2018-02-22 15:25:47)

#5 2018-02-22 15:33:25

Week
Участник
Зарегистрирован: 2018-02-22
Сообщений: 5

Re: Непонятное поведение светодиодов

NoName пишет:

но мы это не видим. потому что автор вырвал кусок кода со спионеренного скетча. где ни начала, ни конца  )
и даже не постарался кореткно задать вопрос,  т.е. корретно оформить тот код о котором он говорит.




add

сначала приняли 0xFF6897 потом 0xFF9867 лог то не приложили
вот и светятся 2 шт

Во первых ничто не вырвано. Это вес код и он должен вроде как работать. Во вторых я не знал как коректно оформить код. уж простите.
И какой лог не приложили?

Спасибо всеравно что ответили

#6 2018-02-22 16:40:09

NoName
Customer
Из Київ
Зарегистрирован: 2014-07-08
Сообщений: 1,404

Re: Непонятное поведение светодиодов

это однозаночно не вся функция setup

pinMode(4,OUTPUT);
pinMode(8,OUTPUT);

  Serial.begin(9600);
  irrecv.enableIRIn();
}

оформить просто
жмете кнопку code и в нее вставляете свой код  я предпочитаю стиль Undefined

#7 2018-02-22 16:54:45

Week
Участник
Зарегистрирован: 2018-02-22
Сообщений: 5

Re: Непонятное поведение светодиодов

Спасибо. Вот теперь полный код

#include "IRremote.h"
IRrecv irrecv(3);
decode_results results;


void setup() {
  pinMode(4,OUTPUT);
  pinMode(8,OUTPUT);

  Serial.begin(9600);
  irrecv.enableIRIn();
}
boolean x = LOW;
boolean y = LOW;
void loop() {
  if ( irrecv.decode( &results )) { 
    Serial.println(results.value, HEX);

   


if ( results.value==0xFF6897 or 0xC101E57B)  {
  
  x = !x;
  digitalWrite( 4, x );results.value=0;
 
  
  
}
if ( results.value==0xFF9867 or 0x97483BFB)  {
  
  y = !y;
  digitalWrite( 8, y);results.value=0;
  
}
delay(500);
irrecv.resume();


  
  }
  
}

#8 2018-02-22 17:13:07

NoName
Customer
Из Київ
Зарегистрирован: 2014-07-08
Сообщений: 1,404

Re: Непонятное поведение светодиодов

что в  Serial ?

для меня это  странная запись, 
value==0xFF9867 or 0x97483BFB

я предпочитаю придерживатся ANSI C

if ( (results.value==0xFF6897 ) ||  (results.value==0xC101E57B))
{
}

if ( (results.value==0xFF9867 ) ||  (results.value==0x97483BFB))
{
}

а delay зачем ?

Редактировался NoName (2018-02-22 17:14:07)

#9 2018-02-26 10:52:40

Week
Участник
Зарегистрирован: 2018-02-22
Сообщений: 5

Re: Непонятное поведение светодиодов

Спасибо ! Все работает!!!

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела