Hirdetés

2024. június 1., szombat

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

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.

Összefoglaló kinyitása ▼

Hozzászólások

(#8501) Attix70 válasza Aryes (#8499) üzenetére


Attix70
aktív tag

Igen, LM358, R1 nem kell (10K), valamint az R3-VR1 közös ponttól az IC 2-es lába közé kell egy 1uF (nem polaritásos) kondi. Eztán már az általad felvázolt pontok közé kell berakni egy potit majd ha a beállított erősítés megfelelő akkor helyette egy fix ellenállást majd a D0 után egy kicsatoló kondit.

Próbáljuk meg a mondatokat NAGYbetűvel kezdeni

(#8502) Aryes válasza Attix70 (#8501) üzenetére


Aryes
nagyúr

A kicsatoló kondi miért kell? Nem viszi az a jelszintet GND alá? Nem hiszem, hogy az jót tenne az analóg bemenetnek.

(#8503) Attix70 válasza Aryes (#8502) üzenetére


Attix70
aktív tag

Ha közvetlenül kötöd mikrokontrollerre akkor nem fontos, de ha a mikrokontrolleren állítod be az egyenkomponenst (lehet nem 2.5V mint itt) akkor lehet hogy könnyebb feldolgozni a jelet.

Próbáljuk meg a mondatokat NAGYbetűvel kezdeni

(#8504) ZTE_luky


ZTE_luky
aktív tag

Sziasztok! Előre is, de ne haragudjatok hogy úgy írok hogy még nem próbáltam ki amit javasoltatok, de sajnos visszajöttem koliba, és se ellenállás, se forrasztó vagy fölös vezeték :)

Viszont.. AMire jutottam a mikrofonnal kapcsolatban, igazatok volt, analógon semmi az ég világon nem jön át, viszont a dig outot a0-ra kötve máris csoda, mégegyszer kihangsúlyozom se ellenállás, se átkötés semmi.

viszont a probléma hogy a jeltartomány nem az igazi. igazság szerint ha a hangszóró amiből jö na zene 1 centi távolságban van a mikrofontól ráfoghatjuk hogy működik, de amint egy centinél messzebb kerül szintén semmi.

[link]

természetesen amint lesz rá lehetőségem kipróbálo mamiket javasoltatok, de szinte biztos vagyok benne hogy amihez nekem kell ahhoz valami vezetékes kompatibilítást kell kitalálnom, esetleg valaki tud 3,5 jack kábeles modult arduino nanohoz ami a zene hangerejére növeli a jelet?

(#8505) ZTE_luky válasza ZTE_luky (#8504) üzenetére


ZTE_luky
aktív tag

bocs, már nem tudtam szerkeszteni, más kérdés:

teljesen mindegy hogyha minden egybe van kötve (szalag, arduino nano, mikrofon) hogy az egész rendszer az arduino betápján kap áramot, vagy a mini usb porton? egy fa szerkezetbe vésném bele, kevesebb munka is lenne vele, meg szebb is lenne ha csak a mini port "jönne ki" a fából (az meg az animáció feltöltés miatt úgy is kell)

(#8506) Teasüti


Teasüti
nagyúr

Tudtok ajánlani olyan 16 portos I2C I/O expander chip-et, amin a portok egy az egyben úgy működnek, mint egy tisztességes mikrokontrollerben? Gondolok itt push-pull kialakításra legalább 20 mA terhelhetőséggel current-source módban, esetleg kapcsolható fel-, lehúzó ellenállással.

PCF8575-tel terveztem idáig egy projektet amit az Arduino Playground ajánlott, de alaposabban tanulmányozva a chip-et úgy néz ki kuka lesz a dizájn az open-drain portok miatt. Megnöveli a szükséges alkatrészek és a csatlakozók számát a buta kialakítás. :U
Akkor már egyszerűbb keresni másik chip-et, mint átszabni az egész NYÁK tervet.

Köszönöm!

[ Szerkesztve ]

(#8507) Teasüti válasza Teasüti (#8506) üzenetére


Teasüti
nagyúr

PCA9555 :K

(#8508) gyapo11 válasza ZTE_luky (#8504) üzenetére


gyapo11
őstag

Ezen a modulon erősítést már nem tudsz növelni, mert maxon erősít. De ha lehetne is, akkor is egy távolságra lenne jó, mert a hang ereje a távolság négyzetével arányosan nő vagy csökken. Vagyis valóban jobban jársz egy vezetékes csatlakozással.
Pl. ez a modul sztereo fejhallgató erősítő, trimmerrel beállítod a kimenő szintet, és a mikrofon helyére kondival becsatolod. Akár a két csatornára két ledszalaggal, ha bírja a feldogozást az arduino.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#8509) Aryes válasza gyapo11 (#8508) üzenetére


Aryes
nagyúr

És mi lenne, ha egy sima piezo csipogót kötne rá az analóg bemenetre? Erősítés nélkül is elég magas feszültségszinteket tud produkálni, inkább limitálni kellene, hogy ne lépje túl az 5V-ot.

[ Szerkesztve ]

(#8510) _q válasza Teasüti (#8506) üzenetére


_q
addikt

Korábban szó volt vagy SPI vagy I2C-ről hogy mekkora hatóvon használható. Akkor én azt mondtam, hogy emlékeim szerint több méteren már kelleni fog valamilyen expander vagy felhúzó ellenállás. Emiatt kerested az IC-t amit ahogy látom közben megtaláltál?

(#8511) Teasüti válasza _q (#8510) üzenetére


Teasüti
nagyúr

Neeem, ez az IC maga lesz kihelyezve az uC-től vagy egy-másfél méterre (két másik I2C eszköz társaságában).
Szimplán csak azon okból, mert kellenek a plusz portok.
Hogy az 5V-os busz hogy fogja bírni a távolságot - ami miatt nem aggódok egyáltalán -, azt majd szkóppal ellenőrzöm.
Egy 5 méteres 300 ledes szalagon esik a fesz 1V-ot kb ha jól emlékszem. És ott azért nem kicsi áramok mennek. Az I2C buszon meg uA-mA tartományban vagyunk, nem számítok feszültségesésre. Kalkulátor szerint 2 méteren 5V 10mA 0,02%-ot esik. Szerintem kár aggódni. A busz kapacitása lesz inkább érdekes.
18 AWG becsléseim szerint 30-40 pF lesz a kellő hosszúságon.
Mindkét végén lesznek felhúzók és szintillesztők, abban bízom majd azokkal szépen be lehet hangolni a jelet.
De ha nagyon sokat esne, akkor még mindig megemelhetem a busz feszültségét is akár 12V-ra is. A mosfet-ek 20V-ig bírják elvileg (ha nagyon perverz akarok lenni, akár ráakaszthatnám a jármű elektromos hálózatára közvetlenül is a felhúzókat. ;] Szerintem).

[ Szerkesztve ]

(#8512) _q válasza Teasüti (#8511) üzenetére


_q
addikt

Nem teljesen értem, I2C buszra talán valami 100+ eszköz köthető, milyen port kevés?

(#8513) Teasüti válasza _q (#8512) üzenetére


Teasüti
nagyúr

Kevés a GPIO az ESP32-n. Ezért kell az expander. 3 másik I2C eszköz mellett.

(#8514) _q válasza Teasüti (#8513) üzenetére


_q
addikt

Áh, benéztem. A kommunikáció I2C az expanderrel, már meg van :D

Egyébként hogyan fogyott el a közel 25-30 GPIO?

(#8515) ZTE_luky válasza gyapo11 (#8508) üzenetére


ZTE_luky
aktív tag

oké, köszönöm!

(#8516) gyapo11 válasza Aryes (#8509) üzenetére


gyapo11
őstag

Ezzel az a gond, hogy szerintem inkább csak a magas hangokat lehet vele detektálni, másrészt el kellene választani a két oldalát egymástól nyomás szempontból. Így a hangnyomás mindkét felét éri, és nem lesz deformáció.
Másrészt ha mindez megvan, akkor is mikrofon, tehát nagyon érzékeny lesz a hangforrás erejére és a távolságra, esetleg még az irányra is, mint egy mikrofon. A videón meg azt láttuk, hogy a kijelzés hangerőfüggő.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#8517) Aryes válasza gyapo11 (#8516) üzenetére


Aryes
nagyúr

A jack bemenetes megoldásnak viszont pont a kábel a hátulütője. Ha közel teszi a hangforráshoz, akkor rövid kábel kell, de akkor meg éppen, hogy a mikrofon is megtenné bemenetnek. Én ha ilyet csinálnék, biztos, hogy addig mesterkednék, míg nem tudnám mikrofonnal megoldani. A kábel a lehetőségeket is behatárolja, pl más hangforráshoz (pl. tv) mindig át kellene dugni.

(#8518) Teasüti válasza _q (#8514) üzenetére


Teasüti
nagyúr

Nagyon egyszerű. Túl sok a periféria. :D A 16 bites expanderen is be van kötve 15 port a motor kezelőszerveinek beolvasásához, két ledes nyomógombhoz, meg egy dupla usb töltő vezérléséhez.
Ehhez hozzájön még I2C buszon egy numerikus led kijelző és egy UV/IR/Light szenzor.

[ Szerkesztve ]

(#8519) Tankblock válasza Teasüti (#8518) üzenetére


Tankblock
aktív tag

Lehetek kíváncsi egy kicsit jobban?

Mi lesz ez?

Miért kell a LED Strip front, back, 1-4 et 2 helyre is bekötni?
Ha címezhető akkor 1 el is megoldható, ha nem akkor sem látom át miért kell 2 helyre kötni.

Release the Beast....

(#8520) Teasüti válasza Tankblock (#8519) üzenetére


Teasüti
nagyúr

Motor projekt. Dekor világításnak indult, de aztán kicsit felokosítom a gépet mindenféle vezérlésével. Pl saját tervezésű 5630 ledekből épített pwm vezérelt féklámpa 2000 lumenes fényerővel.
6 külön csatornán mennek a szalagok, és csak azért nem 8 mert ha jól értem az ESP32-t, akkor az RMT csatornákon zajlik a hardveres pulse counter is, amiből kell kettő a fordulatszám és sebesség jeladókhoz.
És miért van szétdobálva 6 csatornára? A fizikai kialakítás miatt. 4 különböző helyen vannak elhelyezve szalagok, ezen kívül az irányjelzők is ws2812b alapú RGB ledek lesznek. Hátul egy-egy 8 ledes stick, nyomtatott burkolattal. Elől meg még vizsgálom a lehetőségét vagy egy 120 led/m szalag elhelyezésének a fényszórókban, vagy egyedi formájú panel készítése 5050 RGB chip-ekkel.

Persze megoldható lenne az egész hóbelebanc felfűzése egy láncba, de az nem volna praktikus. Na meg ws2812b lévén nem árt ha nem az egész lánc döglik meg egy pixelhibánál. :D

[ Szerkesztve ]

(#8521) _q válasza Teasüti (#8518) üzenetére


_q
addikt

Szép rajz, elég összetett lesz ahogy látom :D így már érthető a kevés gpio. Egyébként miért ezt a tervezőt használod?

(#8522) Teasüti válasza _q (#8521) üzenetére


Teasüti
nagyúr

Mert lusta vagyok megtanulni még egy CAD-et. Meg itt felhőben van minden, integrált online alkatrész adatbázis, könnyű használni és eddig még nem volt igazán szükségem ennél többre.
A nyákokat meg úgyis tőlük rendelem.

(#8523) Tankblock válasza Teasüti (#8520) üzenetére


Tankblock
aktív tag

Aha,

W2813 a W2812 helyett?? [link]

Én még mindig felfűzném 2v4 pl index kört egybe. Praktikusabbnak tűnik a kód is lehet egyszerűbb is. PL vészvillogó megoldása 1 állapotgéppel.....

remélem gondoltál a biztonságra is, HW & SW watchdog mindenképpen legyen, én ugyanazt a kódot is futtatnáma 2 külön magon és nézném h ugyanazt számolják-e......
Mire kell a RF (Wifi, BT) része?

a másik vége h ez nem legális.....

Release the Beast....

(#8524) Teasüti válasza Tankblock (#8523) üzenetére


Teasüti
nagyúr

Az irányjelzők oldalanként össze lesznek fűzve, az nem nagy távolság. Előre/hátra nyilván külön ágakat húzok ki. Jó, hogy nem 20 méter vezetéket rakok fel a motorra, hogy mindent láncba fűzzek! :C
Ezért van ennyi GPIO, hogy használjuk őket.
A kódot nem bonyolítja nagyon. Most lesz 6 külön példány a szalagból, a számolása meg ugyanaz csak más változókba pufferelek.
Igen, erre fel lesz készítve a rendszer úgy mint a féklámpa esetében: van saját 555 vezérlés a panelen és átkapcsolható külső pwm vezérlésre. A prototípust még relé kapcsolja, de a végleges változaton már hardveres watchdog kapcsol át, amit a külső pwm jel etet.
Az indexek meg redundánsak lesznek, az RGB mellett lesz normál borostyán színű analóg led is, ami szintén átkapcsolható bármikor.
Az hogy nem legális... Nincs benne E betű, de ilyen huncutságokkal itt műszakin nem foglalkoznak amíg megfelelően látja el a feladatát - természetesen a teszt idejére minden extra funkció kikapcsol. Az előírásoknak meg megfelel, sőt meg is haladja majd teljesítményben.
A féklámpára pl 800 lumen a rendelet szerint a megengedett fényerő. Na ezt 40% kitöltöttségnél teljesíti a féklámpám. Na jó, a sötétített búra miatt jó lesz az nagyobbnak is, de érted.
Fogok látszódni verőfényes napsütésben is, meg ködben is. :K

A BT az a telefonos vezérléshez kell. Leginkább csak a beállításokhoz, a legfontosabb funkciókra két nyomógombot helyezek el a kezelőszerveknél.

[ Szerkesztve ]

(#8525) Aryes válasza Teasüti (#8524) üzenetére


Aryes
nagyúr

Ez nagyon jól hangzik. :K

(#8526) _q válasza Tankblock (#8523) üzenetére


_q
addikt

"remélem gondoltál a biztonságra is, HW & SW watchdog mindenképpen legyen"

Ez mit jelent és hogy kellene megvalósítani általában, nem feltétlen ennél a konkrét esetnél?

(#8527) Teasüti válasza _q (#8526) üzenetére


Teasüti
nagyúr

[link]

SW watchdog amikor az ESP32 újraindul, mert szarul írtad meg a programot és az egyik mag túl nagy időszeletet kap a program számolására és nem adja vissza a vezérlést az oprendszernek.
Atmel328p-n is lehet készíteni egyfajta SW watchdog-ot - van rá kész könyvtár is. Én sikerrel debug-oltam vele a programjaimat, amik megakadtak mondjuk egy végtelen ciklusban vhol.

HW watchdog meg az, amikor egy külső chip a proci működését figyeli és ha az kifagy, akkor reset-eli a rendszert.
ESP32-n úgy rémlik van SW és HW watchdog is. Így az én esetemben csak meghibásodásról beszélhetünk.

A HW watchdog-ot én egy monostabil 555 chip-el oldottam meg, amit a kontroller pwm jele triggerel és fent tart egy relét, ami a bemenetek közt vált (külső vagy belső pwm).

[ Szerkesztve ]

(#8528) _q válasza Teasüti (#8527) üzenetére


_q
addikt

Köszi :R

(#8529) Tankblock válasza _q (#8526) üzenetére


Tankblock
aktív tag

Hello

Sw watchdog is van sokféle, pl lehet monitorozni adott idő alatt hányszor futott le adott szál, illetve minden fontos szál lefutott-e. Esp-idf ben volt rá példa.

Másik amikor 2 magon futtatod ugyanazt a számolást és megnézed hogy az eredménye ugyanaz e.

Hw wachdog legegyszerűbb megvalósítása N555 ahogy Teasüti leírta, de vannak bonyolultabb megoldások is, pl időre kérdés válasz elvén egy másik uC nézi h pl adott szám komplemensét kapja e vissza...

Biztonságkritikus alkalmazásnál a tervezéskor is a biztonság az első. Monitorozásokat kell beépíteni és informálni a vezetőt ha valamelyik részkomponens nem megbízhatóan működik, és funkciót letiltani.

Szép szakma ez :)

Release the Beast....

(#8530) _q válasza Tankblock (#8529) üzenetére


_q
addikt

Köszi, ahogy látom nem ez az első hogy ilyennel találkoztál :D sajnos nekem az egyszerűbb feladatoknál megakadt a tudásom.

Pl. most megakadtam a nyomógomb prell mentesítésénél. Valahogy nem akar szoftveresen összejönni. Interruptal történő nyomógomb prell mentesítésére is van ötleted?

[ Szerkesztve ]

(#8531) Aryes válasza _q (#8530) üzenetére


Aryes
nagyúr

Illeszd be ide a kódot és kitaláljuk, hol a hiba.

(#8532) Attix70


Attix70
aktív tag

Látom sokan vágják az analóg elektronikát is :DDD

Próbáljuk meg a mondatokat NAGYbetűvel kezdeni

(#8533) DrojDtroll


DrojDtroll
addikt

Kaptam egy feladatot.

Hálózati feszültség ingadozását kellene vizsgálnom. Egyenlőre nem tudom milyen gyakorisággal.

NodeMcu küldené az adatot egy addatbázis szerver felé.

Milyen szenzort érdemes erre hasnálni?

(#8534) tvamos válasza DrojDtroll (#8533) üzenetére


tvamos
nagyúr

Mennyi a keret erre a projectre? Elvileg 3 ellenállás is elég.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#8535) DrojDtroll


DrojDtroll
addikt

A nodemcu-n kívül 5k.

Közben kiderült hogy 3v pontosság kell.

(#8536) tvamos válasza DrojDtroll (#8535) üzenetére


tvamos
nagyúr

5 ezer Ft? Az nem sok.

Nagyon regen csinaltam ilyet, ARM7-tel, el fogom kuldeni a nagyon bonyolult kapcsolasi vazlatot.

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#8537) // Chaka // válasza DrojDtroll (#8533) üzenetére


// Chaka //
tag

Trafót? :)
szerk: Vele sorosan egy ellenállás, a negatív oldal vágására egy pici Shotky dióda. 230/3-as trafónál kb. 4.5V a csúcs. Ha ez sok, akkor még egy ellenállás a föld felé. Nem tudom, milyen az a/d felbontása, de ha 10 bites, akkor akkor erőlködés nélkül az 1V felbontás is elérhető. Persze ahány trafó, annyi, szóval egyedenként kell így bemérni. De legalább nem ráz.

[ Szerkesztve ]

Több ezer telefonszámot tudok fejből, csak azt nem tudom, hogy melyik kié.

(#8538) // Chaka // válasza // Chaka // (#8537) üzenetére


// Chaka //
tag

... hopszi, a pontossága nem is olyan biztos, hogy 3V lesz a teljes tartományban. Nem tudom, hogy a terheletlen trafó mennyire lineáris ....

Több ezer telefonszámot tudok fejből, csak azt nem tudom, hogy melyik kié.

(#8539) ZTE_luky válasza Aryes (#8517) üzenetére


ZTE_luky
aktív tag

ez nem feltétlen igaz, a mikrofonnak számos hátránya van. Pl ha van háttérzaj bezavar a jelbe, amíg kábelen a tiszta jelet kapná csak.

(#8540) Aryes válasza ZTE_luky (#8539) üzenetére


Aryes
nagyúr

De te nem CD felvételt akarsz vele csinálni, csak egy lámpát vezérelni. ;]
Szerintem egyáltalán nem lenne gáz, ha pl. tapsra is felvillanna, de te tudod.

(#8541) _q válasza Aryes (#8531) üzenetére


_q
addikt

Hát nem nagyon van mit beillesztenem. Ezért szeretnék ötletet kérni. De akkor vázlatosan:

void setup() {
pinMode(buttonPin, INPUT);
attachInterrupt(digitalPinToInterrupt(buttonPin), buttonInterrupt, FALLING);
....
Hőmérő inicializálás;
....
}

void loop() {
óra kiíratása;
....
Hőmérséklet kijelzőre küldése;
...
}

//gomb megszakítás függvény
void buttonInterrupt() {

clockHour++;

if(clockHour > 23)
{
clockHour = 0;
}
Serial.println(clockHour);
//delay(200);
}

Lényeg az lenne, hogy kiíratom az időt és a hőmérsékletet. Egyelőre a hőmérséklet része jó, az óra részét pedig még nem egyből a konkrét idő kiíratással oldanám meg, hanem a nyomógombot tesztelném, hogy be lehessen állítani vele egy konkrét időt, jelen esetben 0-tól 23-ig úgy hogy közben a loop-ban megy hőmérséklet kiolvasás és kiíratása a kijelzőre.

Sajnos amikor nyomom a nyomógombot, akkor ha egy pillanatra nyomom is le akkor is folyamatosan írja ki a számokat, mint ha folyamatosan nyomtam volna le a gombot. Erre kellene egy prell mentesítés szeirntem.

(#8542) _q válasza _q (#8541) üzenetére


_q
addikt

detachInterrupt(buttonPin);

Ezzel a függvénnyel kikapcsoltam az gomb megszakítást majd a ha lefut a loop bekapcsolom ismét. Így most nem prelleg viszont így lassan fut le, mivel a hőmérséklet lekérdezés 2 másodpercenként megy,így a megszakítás is 2 másodperc múlva kapcsol vissza. Lehet érdemes megszakítással kezelni a hőmérséklet lekérdezést és a loop-ba csak a kijelző frissítést tenni.

(#8543) weiss válasza _q (#8541) üzenetére


weiss
addikt

Interrupt függvénybe nem rakunk komolyabb dolgot, mint egy változó beállítása, kiíratást meg delayt végképp nem.

I did nothing, the pavement was his enemy!

(#8544) Aryes válasza _q (#8541) üzenetére


Aryes
nagyúr

"megakadtam a nyomógomb prell mentesítésénél. Valahogy nem akar szoftveresen összejönni. "
Nem csodálom, mivel nincs szoftveres prellmentesítés egyáltalán a kódban. :)

(#8545) _q válasza weiss (#8543) üzenetére


_q
addikt

A delayt csak próba miatt tettem bele, nem szép, de rá akartam jönni hol csúszik el a dolog. A kijelzős részt nem teljesen jól írtam le, úgy gondoltam, hogy egy timerrel számolom a 2 másodpercet és az megszakításként változtatna egy változót, ami mondjuk egy if szerkezeten belül végrehajtaná a kijelzést.

Ha már itt tartunk ESP32-re van jó timer leírás megszakítással egybekötve? Uno-hoz jól le van írva több helyen is hogy timer0 millis és delay-ért felelős, timer1 és timer 2 pedig szabadon használható. Mi a helyzet ESP32 esetében?

(#8544) aryes
Igen mert amiket próbáltam nem működött, ezért nem is tettem bele, csak a kódot magát hogy látszódjon amiből kiindulnék.

(#8546) Gergosz2 válasza weiss (#8543) üzenetére


Gergosz2
veterán

azért tegyük hozzá ez az atmega8 sajátossága miatt van itt így.

Meg azért komolyabb dolgot is lehet oda tenni, csak számolgatni kell mennyit fut az interrupt, ne hogy egymásra fussanak.

[ Szerkesztve ]

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#8547) Atti777 válasza _q (#8530) üzenetére


Atti777
senior tag

És ha nem mechanikus nyomógombot használnál? Például

[ Szerkesztve ]

Путин, иди нахуй!

(#8548) _q válasza Atti777 (#8547) üzenetére


_q
addikt

Köszi. Gomb volt kéznél, ez nem is jutott eszembe. ESP32 kezeli a touch bemeneteket így ez is lehetne opció. Mondjuk nem tudom hogy ilyen esetben hogyan lehetne megoldani, mivel csak a touch PCB kellene vagy nem is tudom hogy szokás.

[ Szerkesztve ]

(#8549) Aryes válasza _q (#8541) üzenetére


Aryes
nagyúr

Próbáld meg ezt a kódot:

volatile unsigned long lastDebounceTime = 0; 
   
void setup() {
pinMode(buttonPin, INPUT);
attachInterrupt(digitalPinToInterrupt(buttonPin), buttonInterrupt, FALLING);
....
Hőmérő inicializálás;
....
}

void loop() {
óra kiíratása;
....
Hőmérséklet kijelzőre küldése;
...
}

//gomb megszakítás függvény
void buttonInterrupt() {
if ((millis() - lastDebounceTime) > 50) {

clockHour++;

if(clockHour > 23)
{
clockHour = 0;
}
Serial.println(clockHour);
//delay(200);
}
lastDebounceTime = millis();
}

Ha még ezzel is pereg a nyomógomb, az 50-et növeld addig, amíg megszűnik a probléma. Szerintem 200-ig simán lehet növelni, cserébe másodpercenként 5 gombnyomástól többet nem fog regisztrálni (mondjuk annál gyorsabban úgysem igen lehet gombot nyomogatni :DDD).

[ Szerkesztve ]

(#8550) _q válasza Aryes (#8549) üzenetére


_q
addikt

Tökéletes, köszi :R

Amivel próbálkoztam az mind a loop-on belül figyelte a gomb állapotát, sajnos az eredmény részben javult de nem oldotta meg teljesen. Ez amit linkeltél viszont igen.

Egy kérdés merült fel, a millis() függvény úgy emlékszek talán 32 napig képes elszámolni. Lényeg hogy van egy véges ideje. Az unsigned long el tudja tárolni az egészet? Illetve ha eléri a max értékét a millis() függvény, túlcsordul és kezdi 0-ról ismét, tehát nem lesz gond sose akár más esetben se ha millis() függvényt ilyenre használom, hogy mennyi idő telt el 2 állapot között?

[ Szerkesztve ]

Copyright © 2000-2024 PROHARDVER Informatikai Kft.