Hirdetés
- Mi történik a szemeddel, ha napi 8 órát monitort nézel? | Orvos válaszol
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Házimozi haladó szinten
- OLED TV topic
- Milyen billentyűzetet vegyek?
- Milyen egeret válasszak?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Hobby elektronika
- Milyen házat vegyek?
- Milyen Android TV boxot vegyek?
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
-
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
-
Miért fontos, hogy a gombot röviden vagy hosszan nyomod meg? A leírásod szerint semmi különbség nincs ha csak röviden egyszer lenyomod akkor indul, még egyszer meg nyomod akkor meg leáll. Így programozás szempontból is egyszerűbb lenne.
Itt egy egyszerű példa interruptra.
Loop-ba belerakod a led és a motor vezérlő részt. interrupt függvénybe csak 1 változó értékét változtatod. 1x lenyomod a gombot belép példa szerint void blink, változó állít "HIGH" mondjuk, loop-ban if turn on == 1 akkor motor forog, led bekapcsol.
Ha megint lenyomod akkor meg változó void blink-en bleül LOW-ra áll és leáll a motor, led kikapcsol. -
Teasüti
nagyúr
Átírtam neked a programod.
Lefuttatni nem nyilván nem tudom, de ránézésre kb jónak tűnik.
Elvileg bekapcsolásra oda-vissza jár a léptetőmotor (feltéve ha ez a része jól működött az eredeti programnak) és felvillantja a led-et a mozgás végén. Majd két másodperc múlva újra.
Hosszú gombnyomásra megáll és két másodperces villogtatásba kezd, majd 1 perc elteltével újraindul a motor.Amúgy a Stepper.h könyvtár blokkolja a program futtatást, amíg mozgásban van a motor. Vagyis addig nem ugrik a következő sorra, amíg be nem fejezi a mozgást. Ez problémás lehet. Pl. nem tudom ez a könyvtár milyen hardvert használ (Timer, Int, stb.). Ha kikapcsolja a megszakításokat, akkor a millis() nem fog számlálni a motor léptetése közben.
-
Teasüti
nagyúr
Ez így jelenleg halva született. Ennyi delay() mellett nem lehet időt számolni. Ezzel így max billenőkapcsolót tudnál használni, azt nem kell időzíteni. Ha gombnyomást akarsz mérni, ahhoz másodpercenként többször ellenőrizni kell a gombot, vagyis gyorsnak kell lennie a programnak. Ennyi delay()-el 4-5 másodperc legalább, mire egyszer lefut a loop(). A lineáris gondolkodás még hiányzik, de majd kialakul ha megérted, hogy nem muszáj minden egyes ciklusban végigmenni az összes parancson.
Ezért használunk feltételeket, hogy szabadon ki-be ugrálhassunk az elágazásokba. Így lehet, hogy egy If parancs csak minden századik ciklusban fut le. Vagy ezredik. Vagy százezredik... Ha millis()-el időzítesz, akkor eltelt időt számolsz milliszekundumokban. Ezt feltételben vizsgálod, hogy igaz-e a reláció:if (millis() > temp + 1000) { }
. Ideális esetben nincs megakasztva a program ennyi delay-el és mire teljesül pl. az 1000 ms várakozási idő, addigra akár sokezerszer ismétlődhet a loop(). Futhat akár üresen, ha egyik elágazásba (feltételbe) se ugrik bele, vagy csinálhat addig akármi mást is. -
Tankblock
aktív tag
Új hozzászólás Aktív témák
- LG 77C4 - 77" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - 1000 Nits
- Apple iPhone 14 Pro 128 GB Graphite 12 hónap Garancia Beszámítás Házhozszállítás
- Seagate Exos X18 16TB SAS merevlemez
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest