Kezdőoldal » Elektronikus eszközök » Egyéb kérdések » Aki jártas arduino programozás...

Kdavid2255 kérdése:

Aki jártas arduino programozásában, illetve IR reciver használatában: egy kedves projekt munkám során mind "if" és mint "switch case" használatával olyan problémába ütköztem hogy szerencsétlen arduino nem hagyja abba a műveletet...??

Figyelt kérdés

program:

#include <IRremote.h>

const int RECV_PIN = 9;

IRrecv irrecv(RECV_PIN);

decode_results results;

#define BUTTON_1 0xFD08F7

#define BUTTON_2 0xFD8877

int alma;


int szam_tablazat [13][7]=

{

{0,0,0,0,0,0,1}, //0

{1,0,0,1,1,1,1}, //1

{0,0,1,0,0,1,0}, //2

{0,0,0,0,1,1,0}, //3

{1,0,0,1,1,0,0}, //4

{0,1,0,0,1,0,0}, //5

{0,1,0,0,0,0,0}, //6

{0,0,0,1,1,1,1}, //7

{0,0,0,0,0,0,0}, //8

{0,0,0,0,1,0,0}, //9

{1,1,1,1,0,0,0}, //10 jobb

{1,0,0,1,1,1,0}, //11 ball

{1,1,1,1,1,1,1} // 12 semmi

};


void NumberDisplay (int sor)

{

int lab = 2;

for (int oszlop = 0; oszlop < 7;oszlop++)

{

digitalWrite(lab, szam_tablazat[sor][oszlop]);

lab++;

}

}

unsigned long LED_1_TIME = 0;

unsigned long LED_2_TIME = 0;

boolean LED_1_status = false;

boolean LED_2_status = false;


void setup() {

Serial.begin(9600);

irrecv.enableIRIn();

irrecv.blink13(true);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9,INPUT);

pinMode(10, OUTPUT);

NumberDisplay(12);

}


void loop() {

doLED_1();

doLED_2();

if (irrecv.decode(&results))

{

Serial.println(results.value, HEX);

irrecv.resume();

}

}


amíg egy másik gombot nem nyomok meg, előre is köszönöm a segítséget.


void doLED_1() {

if (millis() > LED_1_TIME) {


LED_1_TIME = millis() + 1000;

LED_1_status = !LED_1_status;


if (LED_1_status) {

digitalWrite(10, HIGH);


} else {

digitalWrite(10, LOW);

}

}

}


void doLED_2() {


if (millis() > LED_2_TIME) {


LED_2_TIME = millis() + 2000;

if (results.value == 0xFD08F7)

{

NumberDisplay(1);

delay(1000);

NumberDisplay(12);

}

}

}



2022. nov. 15. 13:17
 1/4 Ypszilon1980 ***** válasza:
Szerintem túl bonyolult, túl sok a feltétel és ezt elég nehéz lekövetni. Így most leírva nem tudom mit akarsz pontosan, de most már érdekelne engem is, ha valaki jobban átlátja.
2022. nov. 15. 16:35
Hasznos számodra ez a válasz?
 2/4 Vortrex ***** válasza:

Hát ebből nem sok derül ki. Több támpontot is megadhatnál, például, hogy mit szeretnél csinálni, hol akad meg, mit "nem hagy abba"? Meg legközelebb pastebin-t használj: [link]


Első körben, ami feltűnik, hogy a results.value értéke nem törlődik, az "if (results.value == 0xFD08F7)"-en belül biztos nem ártana egy results.value = 0

2022. nov. 15. 19:24
Hasznos számodra ez a válasz?
 3/4 Vortrex ***** válasza:
2022. nov. 15. 19:29
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Heló, az alap program működik, de ha hosszabb ideig megy egy gomb nyomás egyből elkezd erősen loopolni az adott if ben szereplő utasitoasok, másik gomb után abba hagyja
2023. ápr. 5. 14:06

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, 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!