Mi ebben a hiba? Többi lent.
#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?
Eloszor is toltsd fel valami kodmegosztora ami a behuzasokat meghagyja, mert ezt szenvedes olvasni.
Itt a peldakod:
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.
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]
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!