-
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
-
Teasüti
nagyúr
Nyomógomb épp most volt terítéken nálam, itt egy konkrét példa.
Az utolsó oldalon láthatod a teljes kódot, amiben benne hagytam egy már nem használatos részletet is, ami a nyomvatartást kezeli.
Ha további magyarázatra lesz szükséged, írj bátran!(#10176) Imy
Itt némi zavart érzek az erőben. Miért szeretnéd leállítani a loop()-ot? Ha azt megállítod, akkor csak reset után fog újraindulni a program. Amúgy ki tudsz lépni belőle egy simareturn;
paranccsal, de innentől megáll működni a processzor. Ha egy feltételes várakozás kell (feltételes program stop, ha ez ismerős), akkor azt csinálhatod egy while ciklussal, ami végtelenül fut amíg nem teljesül a feltétele. De ezekre igazán semmi szükség, hisz maga a loop() is végtelenül ismétlődik, viszont ha a gombnyomásodtól függően indítasz el feltételeket, akkor megcsinálhatod úgy, hogy egész egyszerűen átugorja a parancsokat az if-ben egészen addig, amíg nem teljesül vmeyiknek a belépési feltétele. Ilyen formában nem áll meg a program működése, mégis kvázi üresen fut a loop().(#10170) ecaddsell
Pulse counter kellene frekvencia méréshez. Hardveres lehetőleg. És Arduino IDE-ben.(#10171) vargalex
Igen, természetesen. A működő példaprogramból emeltem át a szükséges sorokat egy az egyben, természetesen a helyüknek megfelelő sorrendben elhelyezve.
A második fülön lévő header fájl hívja meg az MPU6050.h könyvtárat, amiben meg definiálva van az MPU6050 osztály. Ez így ebben a formában simán lefordul a párhuzamosan megnyitott példaprogramban. Ötletem sincs itt miért nem. -
gyapo11
őstag
Nálam úgy volt, hogy a gomb benyomására egy változóba került a millis() értéke, indult egy while ciklus, ami figyelte a gomb felengedését, amikor ez bekövetkezett, akkor a jelenlegi és eltárolt millis összehasonlításából kiderült a nyomvatartási idő. Hátránya ennek a megoldásnak, hogy amíg a while fut, addig a loopban levő többi teendő nem fut, de nálam ez nem volt gond.
Ha fontos, hogy közben a loop pörögjön, akkor kicsit bonyolultabb.
Gomb benyomása után változóba millis, ezután olvasgatni a millist meg a gomb állapotát, 50 ms-en belül nem kell nézni a gomb felengedését, az még prell idő, utána már igen, és a felengedéskor kiszámolni a jelenlegi és a tárolt millis értékéből a nyomvatartási időt.
Hogy mikor mit csináljon a pörgő loopban, azt egy változóval lehet vezérelni, értékétől függően pl. egy switch egy-egy ága fut. Ha a változó 1, akkor mondjuk várja a gomb benyomását. Ha benyomódott a gomb, akkor a változóba 2, ekkor várja a felengedést. Ha felengedted, akkor változóba megint 1, és ismét várja a megnyomást.
Vagy vannak időzítő libek is, amikkel talán egyszerűbb, még nem próbáltam ilyeneket.
Új hozzászólás Aktív témák
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
- Csere-Beszámítás! Asus Számítógép PC Játékra! R5 1600X / GTX 1080 8GB / 32GB DDR4 / 256SSD + 2TB HDD
- Konzol felvásárlás!! Xbox Series S, Xbox Series X
- Bomba ár! Lenovo ThinkPad T490s - i7-8GEN I 16GB I 256SSD I 14" WQHD HDR I Cam I W11 I Gari!
- BESZÁMÍTÁS! ASUS B450 R7 2700X 16GB DDR4 512GB SSD RTX 2060 Super 8GB Zalman i3 FSP 600W
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest