Fórum témák
» Több friss téma |
Sziasztok!
Nagyon köszönöm a tanácsokat, így már el tudok indulni. Nekem sem volt "komfortos" a relé, így optocsatolóval már okés lesz. Építeni nem fogok (az régebben volt), mostanában inkább"félkész" modulokból építkezem. Üdv: G.
Szegény ember vízzel főz, még szegényebb meg EasyCoding-al programozik!
Folyamatábrás programozóban (igaz hogy NodeMCU ra van optimalizálva a modul de csak a PIN-eket írom át) így néz ki egy "programom" Biztos hogy tele van sallangal, meg valószínűleg formailag sem olyan mint amilyennek kéne lennie, de működik! Ez egy "gombot" azaz egy bemenetet figyel, ( tanács alapján a láb tápfeszre fel van húzva, így azt figyeli mikor lesz alacsony amikor a gomb meg van nyomva és olyankor MQTT szerverre küld egy üzenetet jelen esetben egy "1" vagy egy "0"
még azt kéne elérjem hogy a két GPIO láb kimenet legyen és RX-en és TX-en figyelje a "gombot" a pergésmentesítést most nagyon alpári módon egy fél másodperces késleltetéssel a ciklus végén oldottam meg. Legjobb lenne az lenne ha egy megszakítást tudnék tenni bele ami az rx-tx lábakat figyel.. vagy a GPIO0-2 lábakat és akkor RX-TX a kimenet
Ha az RX-TX-et akarod használni GPIO-nak szerintem a serial.begint kapd ki, vagy ifdefine-old meg.
A prellmentesítésre nem a fél másodperces delay a megoldás szerintem, hahenm az, ha dupla IF függvényt alkalmazol, egymásba írva, egyet a lenyomásra, majd egyet a visszatérésre, így elégséges kb 20-50ms delay is és TELJESEN prell mentes lesz a gombnyomás. Szerk.: gyors átfutottam a kódot, a változók használata így nem annyira célszerű. Ekkora programnál nincs különösebben jelentősége, de ha komolyabb programot írsz és nem csak a program memória számít, hanem a RAM is, akkor ez felejtős. A hozzászólás módosítva: Feb 6, 2019
Hello,
A prellmentesítésre -> Bővebben: Link, kitünő
Arra hol találok útmutatót hogy az RX és TX re hányas lábként hivatkozhatok!
Mert mindenhol csak a csatolt képet találom de az fals... A hozzászólás módosítva: Feb 6, 2019
Szia!
Idézet: „Ha az RX-TX-et akarod használni GPIO-nak szerintem a serial.begint kapd ki” Ezzel konfigurálom hogy sorosportkent menjen a tx rx nem pedig I/O. A "prellmentesítést" még körbejárom.... néztem azt a könyvtárat is.... lehet hogy egy duplatripla nyakatekert IF el fogom megoldani! És igen abba is igazad van hogy a válltozók ilyen jellegű használata "pazarlás" De a komolyabb programoktól én még messze vagyok mint Makó Jeruzsálemtől.... odáig pedig hosszú az út! ![]() Jelen pillanatban a legtöbb dolog amit tervezek egy ESP be paszirozni, az egy hő/pára mérés, meg 1 relé egy gomb vagy hő/pára meg 2 relé...
Igen, de ha serialként használod, nem fogod IO-ként használni, ezért kell levenni róla, de ha "dinamikusan" akarod kapcsolgatni program ujraírás nélkül, maximum ujraindítás útján, akkor ifdefine- al tudod ki-bekapcsolgatni.
A prellmentesítéshez felesleges pocsékolni a program memóriát egy library-vel.(persze ezesetben elfér....) Elég, ha If-be figyeled a gomb lenyomását, ezen belül meg figyeled egy másikkal a felengedést. Nem tud billegni az állapot, ha vár a program az állapotváltozásra. Tudom, itt épp elfér a sok globál változó, ezért írtam, hogy ha esetleg a későbbiekben... ![]() Szerk.: kifelejtettem, TX a GPIO1, RX a GPIO3. A hozzászólás módosítva: Feb 6, 2019
Igazság szerint eddig csak azért használtam hogy a programbeli hibákat tudjam kontrolálni.... minden "eseménynél"irattattam vele sorosporton a PC -re így láttam hogy hol a hiba!
Ugyhogy nem kell de az a plussz 2 láb jól jön! És ha GPIO1 és GPIO3 akkor a pinmodnál pedig egyes és hármasikként "hivatkozok" rá?
Igen.
Ha van szkópod, vagy logikai analizátorod, dugd rá erre a két lábra és nézd meg, pl egy beindításnál mit produkál, ugyanis míg a SETUP funkciód nem végzi el, addig a TX tutira beszélgetni fog. A hozzászólás módosítva: Feb 7, 2019
Akkor Rx/TX et jobb ha gombnak konfigurálom az én esetemben, mert ha relé lenne akkor lehet hogy addig rángatná.
Nagyon köszönöm, sokat segítettél! Most emésztem egy kicsit a dolgokat aztán hétvégén valamit megalkotok
Nem lehet, hanem tuti, hogy rángatná. Gombként nem okoz problémát, így van. Szivesen.
A hozzászólás módosítva: Feb 7, 2019
Perllmentesitésre így jó?
Itt most semmi más nincs a kódba csak a gombfigyelés. Az if-el belép ha a gomb lenyomódik, és elvileg utána azt vizsgálja hogy a gomb váltott e alacsonyra, ha nem akkor vár 25 milliszekundumot és megint megnézi, ha alacsony, akkor kilép az ismétlésből, a gombhoz rendelt segédváltozó értékét átállítja 1-re és fut tovább... Legalábbis ezt szerettem volna elérni, és Folyamatábrásan nekem elvileg jól is néz ki, mert ezt a kódrészletet ebből a blockábrából fordította. A hozzászólás módosítva: Feb 9, 2019
A deklarálásnak nem a Setup részben kellene lennie? Így minden egyes körben megtörténik a változó létrehozása.
Ha nem túl hosszú a programom, szivesebben alkalmazok számlálót prell mentesítésre.
Egy számláló minden loop ciklus lefutásnál nő egyet. ( ez ha jól szervezed többé kevésbé állandó idő) Minden gombnyomás/felengedés nullázza. Ha elér egy bizonyos értéket, akkor a gomb érvényessé válik, tárolható, és prellmentes. Így nem kell a programodnak azzal tölteni az időt hogy a gombra vár.
Hogyan különbözteted meg, hogy gombnyomás, vagy gomb elengedés történt? Beolvasod a szám mellé a gomb állapotát is?
Az nem oda kerül, csak véletlenűl benne maradt,
Ezt a kis részletet csak "kiemeltem" az egészből, hogy meg tudjam kérdezni, a gomb része igy jó e..?? Hosszúnak éppen nem hosszú, de van: 2 gomb állapot figyelés egy net csatlakozás egy MQTT csatlakozás 2 mqtt topic hallgatás / írás 2 kimenet... kicsit rendbe szedem, aztán felteszem ide. Meg még össze kell fésülnöm, mert eddig csak külön külön probáltam a részegységeket, egy egész programként még nem..
Jónak jó, de én a gombot fordítva használnám. Felhúznám tápra ellenállással, majd a gomb lenyomásával tenném le testre. Így amikor nincs használva nem lebegne.
A hozzászólás módosítva: Feb 10, 2019
A gomb állapotváltozásának figyeléséhez eleve tárolva van, így az utolsó tárolt állapot, a gomb aktuális értéke. ( hiszen ha változott volna a számláló törlődött volna. ) Ha meg akkor újra kiolvasom, már nem garantált a tárolt állapottal egyezés. Amire figyelni kell a számláló kezelés, hajlamos túlcsordulni, és újra az előírt értéket elérni.....Így viszont könnyű a hosszú és rövid gombnyomást is megkülömböztetni.
A hozzászólás módosítva: Feb 10, 2019
Sziasztok!
LoLin NodeMCU-t használok, amin ESP12E modul van. Ennek hivatalosan GPIO 0-16 kivezetése van. Viszont előre deklarálva van pár és alapértelmezettként csak 11 GPIO használható fel. Hogyan tudnám megoldani, hogy a maradékot is sima GPIO-ként tudjam használni Arduino keretrendszeren. Magyarul szeretném felülírni az alapértelmezett port felhasználási módot.
Próbálok egy ESP8266-al softAP+station módban játszani (AT parancsokkal). Az
parancsra station módban nagyon helyesen
választ ad az az ESP8266, és utána AT+CIPSEND paranccsal tudok beszélgetni a szerverrel. Ha viszont ugyan ezt softAP+station módban követem el, akkor az AP+CIPSTART-ra ez a válasz:
Miért? ![]() A hozzászólás módosítva: Feb 24, 2019
Mindkét változatban "softAP+station" módot írsz.
Öhhmm... ezt nem értem. De a lényeg: station módban csatlakozik, softAP+station módban pedig nem.
A hozzászólás módosítva: Feb 24, 2019
Ok, már látom, kicsit összefolytak a sorok. Nem érdekes.
Parancs volt már? A hozzászólás módosítva: Feb 24, 2019
Volt, de egyszerre úgyis csak egy eszközzel fog beszélgetni az ESP.
Az internt szerint ez egy bug a Firmware-ben. Frissítés segíthet de közben előhozhat egyéb hibákat is... 22-es csapdája.
Üdv Mindenkinek!
Több ESP8266-ot használok beépítve, OTA-n változtattam a programon amikor szükséges volt, egy win7-es PC-ről. Gépcsere után, win10, újabb Arduino IDE, az OTA nem működik. Idézet: hibát hoz.„[ERROR]: Bad Answer: ERR: ERROR[4]: Not Enough Space” A program mérete nem változott. Valaki találkozott ilyen hibával, vagy van ötlete mi okozhatja?
Prellmentesítés:
Nemrég megmértem egy csomó féle gombot és kapcsolót, hogy mennyi ideig tart a prellegés. A legtöbb gomb esetében 1ms-nél rövidebb idő alatt lejátszódott a prellegés, néhány kivételes esetben eltartott 2...3ms-ig. Ez alapján ha kiolvasom a gombot, és változott az állapota az utolsó olvasás óta, akkor megjegyzem az időt (millis() függvény), amikor újból kiolvasom (akkor megnézem a jelenlegi és a tárolt időpont különbségét) és ha legalább 3...10 ms óta nem változott, akkor elfogadom az új értéket... Ehhez nem kell késleltetés, nem lassítja annyira a programot, és teljesen megbízható módszer a gyakorlatban.
Szia!
Köszönöm a tippet... Ezen már énis gondolkodtam már csak még a megvalósításán gondolkodtam! Eddig én ugy oldottam meg hogy a gomb olvasás után 75 ms késleltetés... de nem is jo... meg sok is... meg... meg... De ez tetszik.
Én nem időt mérek, hanem néhány ms késleltetés után egymást követően beolvasott x darab várt értéket.
Sziasztok!
Egy NodeMCU val szeretnék egy 12 voltos akksit figyelni. Jol tudom hogy az ESP ADC-je 0 és 1 volt között fogad? Ezt a leírást találtam, ez alapján egyszerűen a 2 ellenállás értékével lehet beállítani a tartományt hogy 0 és 1 V közé essen. A kép alapján használható ez a verzió? vagy valami "elegánsabb-biztonságosabb" módszer? Egy ilyen kódrészletet csatoltak mellé
kiolvasásra. A feszültségfigyelést szeretném úgy alakítani hogy kb 9,5v-15,2v közé essen egy tizedes pontosság elegendő. A hozzászólás módosítva: Ápr 4, 2019
|
Bejelentkezés
Hirdetés |