Hirdetés
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
balintarduin
újonc
Sziasztok!
Nekem egy olyan kérdésem lenne, milyen megoldással tudok olyan programot készíteni, aminek annyi a lényeg, hogy egy adott idő pl 04:55 ig számoljon vissza az aktuális pontos időtől.
DS3231 Real Time modult használok. Egyáltalán hogy tudok visszaszámlálást csinálni.Előre is köszönöm a segítséget!
-
balintarduin
újonc
Sziasztok! Tapasztalt programozót keresek, menü készítési feladat miatt, én nem tudom megcsinálni, de sürgős lenne! Annyira, hogy kifizetem, ha megírja azt a programot amit szeretnék, az alapokat biztosítani tudom!
-
balintarduin
újonc
Sziasztok!
Korábban már a menürendszert sikerült elkészítenem, változókkal és amelyekben tömbökben tárolom a kiírt adatot. Most tovább lépni szeretnék, és egy olyan kérdésem lenne, hogy hogyan tudom megcsinálni azt, hogy beírok egy idézőjelbe előre beírt számot, pl,43 és ezt kiírja a kijelzőre, ahogy begépelem a 4x3-as membrános billentyűzeten és utána az ehhez a számhoz tartozó parancsot végrehajtja. Amennyiben nem írtam be ezt, vagy jót, akkor nem történik semmi.
És valahogy úgy gondoltam, hogy tömbökbe teszem az összes számot amire szeretnék cselekvést, és egy ifekbe beírkálom a számát, hogy ha ezt adom be neki, akkor az ahhoz tartozó függvényt, parancsot, (pl kapcsoljon be egy ledet) fusson le.Előre is köszönöm a segítséget!
-
balintarduin
újonc
válasz
tibi-d
#10308
üzenetére
Rendben, köszönöm a segítséget! Még fel merült bennem, hogy hogyan tudok olyan if szerkezetet csinálni, hogy ha a 4x3 membrános billentyűzeten beírok egy számot, pl. 51 akkor ehhez a számhoz elolvassa az adott feladatot, pl, hogy megnyissa a menüt. Ezt egy egyszerű váltózóval meg lehet oldani? Ráadásul nekem nem csak egy szám kellene, hanem elég sok (buszjárat számok), pl, az 45-ös számot beírom akkor annak a menüjét hozza be. Vagy ha az 53-as akkor az ugyan ilyen számmal jelzett menüt hozta be.
-
balintarduin
újonc
válasz
Teasüti
#10304
üzenetére
Itt van menümnek a kódja. Azt csinálja, hogy a kijelzőn a fel le gomb hatására 1-et hozzáad és így le megy a ">" jel a kijelzőn.
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
int upButton = 48;
int downButton = 44;
int selectButton = 28;
int menu = 1;
void setup() {
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(selectButton, INPUT_PULLUP);
Menu1();
}
void loop() {
//első menü fügvényei
if (!digitalRead(downButton)){
menu++;
Menu1();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
Menu1();
delay(100);
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
Menu2();
Menu1();
delay(100);
while (!digitalRead(selectButton));
}
// második menü függvényei
if (!digitalRead(downButton)){
menu++;
Menu2();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
Menu2();
delay(100);
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
Menu3();
Menu2();
delay(100);
while (!digitalRead(selectButton));
}
}
void Menu1() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(">MenuItem1");
lcd.setCursor(0, 1);
lcd.print(" MenuItem2");
break;
case 2:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" MenuItem1");
lcd.setCursor(0, 1);
lcd.print(">MenuItem2");
break;
case 3:
lcd.clear();
lcd.print(">MenuItem3");
lcd.setCursor(0, 1);
lcd.print(" MenuItem4");
break;
case 4:
lcd.clear();
lcd.print(" MenuItem3");
lcd.setCursor(0, 1);
lcd.print(">MenuItem4");
break;
case 5:
menu = 4;
break;
}
}
void Menu2() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(">Staticmenu1");
lcd.setCursor(0, 1);
lcd.print(" Staticmenu2");
break;
case 2:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" Staticmenu1");
lcd.setCursor(0, 1);
lcd.print(">Staticmenu2");
break;
case 3:
lcd.clear();
lcd.print(">Staticmenu3");
lcd.setCursor(0, 1);
lcd.print(" Staticmenu4");
break;
case 4:
lcd.clear();
lcd.print(" Staticmenu3");
lcd.setCursor(0, 1);
lcd.print(">Staticmenu4");
break;
case 5:
menu = 4;
break;
}
}
void Menu3() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(">Thirdmenu1");
lcd.setCursor(0, 1);
lcd.print(" Thirdmenu2");
break;
case 2:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" Thirdmenu1");
lcd.setCursor(0, 1);
lcd.print(">Thirdmenu2");
break;
case 3:
lcd.clear();
lcd.print(">Thirdmenu3");
lcd.setCursor(0, 1);
lcd.print(" Thirdmenu4");
break;
case 4:
lcd.clear();
lcd.print(" Thirdmenu3");
lcd.setCursor(0, 1);
lcd.print(">Thirdmenu4");
break;
case 5:
menu = 4;
break;
}
}
} -
balintarduin
újonc
Sziasztok! Egy Arduinos projektem kapcsán kérdeznék tapasztaltabbakat. Egy menü rendszert próbálok készíteni, ahol egy 2x16-os lcd kijelzőn váltogatom a képet egy Fel és Le nyomógombbal. Sikerült addig eljutnom, hogy egy Enter gomb megnyomására tovább lép egy ugyan olyan menübe. A problémám ott van, hogy ha lefelét nyomok, nem tudja eldönteni, hogy melyik menüben menjen le. Az elsőben vagy a másodikban. Értem, hogy azért csinálja ezt, mert mindkettő menü kezelő if utasítása a loop-ban van benne, és nem tudom, hogy hogy tudnám megmondani neki, hogy az első menüben van akkor ott menjen le, ha megnyomom a lefelét, ha pedig a másodikban van, akkor ott menjen lefele.
Köszönöm a segítséget, előre is.
Új hozzászólás Aktív témák
- Dell Precision M6600 (működik, de alkatrészként hirdetem)
- BenQ Zowie XL2586X+ Profi eSport, 600 Hz-en!
- Lenovo ThinkPad P15 Gen 1 Tervező Vágó Laptop -50% 15,6" i7-10750H 16/512 QUADRO T1000 4GB
- Lenovo ThinkPad P15 Gen 1 Tervező Vágó Laptop -50% 15,6" i7-10750H 16/512 QUADRO T1000 4GB
- Boya BY M1/AV Jefe TCM-100 lavalier mikrofonok
- GYÖNYÖRŰ iPhone 12 mini 128GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3856, 100% Akksi
- 0% THM 4 havi részlet beszámítás! RX 9060 XT / 9070 / 9070 XT videokártyák készletről KAMATMENTESEN
- BESZÁMÍTÁS! MSI Katana15 HX B14WEK notebook - i7 14650HX 16GB DDR5 1TB SSD nVidia RTX 5050 8GB WIN11
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- Xbox Game Pass Ultimate előfizetések kedvező áron
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
ekkold

