- sziku69: Fűzzük össze a szavakat :)
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Rap, Hip-hop 90'
- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Meggyi001: RTX 5060 - Az új népkártya?
- eBay-es kütyük kis pénzért
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
LOGOUT
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
Ez azért van, mert a loop() másodpercenként több ezerszer lefut és amennyiben egy ciklus idejénél tovább tartod nyomva a gombot (
), úgy ki-bekapcsolgat a led, aztán mikor felengeded akkor teljesen random, hogy épp melyik állapotban lesz.
Ezért szokás egy változóval figyelni a gomb állapotát és minden ciklusban összehasonlítani az előző állapottal, ami ha megegyezik a jelenlegivel, akkor nem futsz fölösleges köröket. Ha nem egyezik meg a jelenlegivel, akkor ez alkalommal lett lenyomva a gomb, mely átállítja a változót is és a következő körben már nem fog beaktiválni.
Én ezt a módszert szoktam alkalmazni gombnyomásra, vagy bármi egyéb digitális jelzésre:
//button press
if (digitalRead(button) == LOW && !pressed) {
buttonOn = !buttonOn;
pressed = true;
Serial.println("Pressed");
}
else if (digitalRead(button) == HIGH) pressed = false;Ezzel a kóddal pontosan úgy fog működni a gomb, ahogy azt az ember várná. Már ha kapcsolóként akarod, nem pedig "nyomvatartósként". Utóbbinál nyilván nem kell akkor szűrni a jelet, elég annyi, hogy a buttonOn változót nem csak átbillented, hanem konkrétan meghatározod milyen értéket vegyen fel lenyomott és felengedett állapotban.
(#4200) Tankblock
Ez nem erre van kitalálva.
A kolléga egy-egy gombnyomásra akarja ki- és bekapcsolni. A késleltetéssel a prell-t szűrőd, viszont a feladatot nem oldja meg, hisz nyomva tartásnál villogtatni fogja a ledet, ha X időközönként újra és újra átbillenti a buttonOn változót, amíg tartod a gombot. -
Tankblock
aktív tag
Hello
Timert tegyél hozzá. mert így looponként fogsz váltani.
unsigned long timer = 0;
az if feltételét egészítsd ki millis()-timer > X ahol X lehet játszani
az ifben meg timer = millis();
így a változás csak X enként van követve.
Szerk: Annyire nem is volt rossz az ötletem : [link]
Új hozzászólás Aktív témák
- Sony Xperia 1 V - kizárólag igényeseknek
- Milyen NAS-t vegyek?
- Kerékpárosok, bringások ide!
- Gaming notebook topik
- sziku69: Fűzzük össze a szavakat :)
- Titan Quest II
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Windows 11
- Szappanos topik (Dettol, Xiaomi, Lebath...)
- Samsung Galaxy A56 - megbízható középszerűség
- További aktív témák...
- Canon EOS 1200D gépek, +objektívek +kiegészítők (1400 / 3424 / 6600 / 9575/ 11700 / 14600 expoval )
- HP Envy x360 14-fa0026ne - 2-in-1 ultrabook - Ryzen 7
- Canon EOS 550D gépek, objektívekkel és kiegészítőkkel
- IPhone 12 Pro 256GB gyári független megkímélt Grafit / ezüst
- Lenovo Thinkpad T14s Gen1 (1) /i5-10310U vPro/16GB/512GB M.2
- Új és újszerű 17.3" Gamer, irodai, üzleti készülékek nagyon kedvező alkalmi áron Garanciával!
- Bomba ár! Toshiba Satellite Pro R50-C - i3-6G I 4GB I 128GB SSD I 15,6" I HDMI I Cam I W10 I Gari!
- Amazfit Active okosóra / Számla / Garancia /
- Tomb Raider I-II-III Remastered Deluxe Edition / Bontatlan/ Számla /
- LG 32SQ700S-W - 32" VA Smart - 3840x2160 4K UHD - 62Hz 5ms - WebOS - Wifi + BT - USB-C - Hangszórók
Állásajánlatok
Cég: FOTC
Város: Budapest