Kezdőoldal » Számítástechnika » Programozás » Mi ebben a hiba? Többi lent.

Mi ebben a hiba? Többi lent.

Figyelt kérdés

#include <IRremote.h>


int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;


const int led=8;


int leds=0;


void setup() {

pinMode(led,OUTPUT);

Serial.begin(9600);

irrecv.enableIRIn();

}


void loop() {

irrecv.decode(&results);

delay(100);

if(results.value == 0xFF30CF)

{

leds=1;

}

if(leds>10)

{

leds=0;

}


if(leds==0)

{

digitalWrite(led,LOW);

}else if(leds==1)

{

digitalWrite(led,HIGH);

}

delay(1000);

results.value=0;

Serial.println(leds);

}



Arduinora programozok és azt akarom, hogy a remote controller tehát a távírányitónak megnyomom az egyes gombját akkor elkezd világítani a lámpa, ha pedig mégegyszer akkor meg elalszik, de sehogyse akar müködni mindig megmarad az a jel és ismételi, nem tudom miért és magátol váltakozik 1 és 0 között. Mi lehet a gond, vagy valaki tudna erre egy jó programot írni?



#LED #Arduino #távírámyitó #1 és 0
2017. nov. 30. 19:52
 1/3 anonim ***** válasza:

Eloszor is toltsd fel valami kodmegosztora ami a behuzasokat meghagyja, mert ezt szenvedes olvasni.


Itt a peldakod:

[link]

irrecv.resume(); // Receive the next value

Ezt a sort nem latom a kododban


A leds valtozodat gondolom novelni akartad valahol, de az is kimaradt.

Jelenleg a leds elindul 0-val, a jelre 1-re all, aztan sehol nem lesz ujra 0.

Emiatt alapbol a led kikapcsolt, a jelre bekapcsol, ennyi.


A delay is rossz helyen van, a loop elejere vagy vegere erdemes tenni, nem a kozepere.

2017. nov. 30. 22:07
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

Ha egy adott gomb nyomásakor akarod változtatni a led státuszát (egy gomnyomás -> LED be; újabb gombnyomás -> LED ki - és így tovább), akkor egyszerűsítenék:

1. A leds egész változó helyett boolean-t használnék - inicializálása:

boolean ledOn = false;


2. Amikor a megfelelő jelet kapjuk, megváltoztatjuk a változó státuszát:

if (results.value == 0xFF30CF) {

ledOn = !ledOn

}


3. Majd ezután ennek fényében döntjük el, hogy a LED-et be- vagy kikapcsoljuk:

if (ledOn) {

digitalWrite(led,HIGH);

} else {

digitalWrite(led,LOW);

}


Olvasgatnivaló: [link]

2017. nov. 30. 22:09
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Köszönöm a segítséget, de idővel végül rájöttem hogyan kell és találtam a neten is kodot a megoldáshoz ami teljesen más. De ahogy nézem végül rossz kodot adtam meg. Az a resume sor is belekerült már meg a leds értéke nő eggyel csak nem tudom miért így van ez a kod most.
2017. dec. 1. 00:16

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!