Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Hátulról/alulról kell dugni
A hozzászólás módosítva: Okt 19, 2025
Alulról az UNO féle csatlakozó kiosztás nem érhető el, kizárólag felülről. Cserébe alul van rengeteg kivezetése a panelnek, amik meg 1,8 V-osak. Érdekes koncepció.
Tüske/hüvelysor ráforrasztható alulra utólag, nem?
Persze, megoldható (Kellő ügyességgel, de nem hinném, hogy szakszerű lenne, mivel egy eleve beforrasztott csatlakozósor forrasztási pontjaihoz kellene forrasztani az új csatlakozót. Vagy kiveszed az eredetit és alulra nézve forrasztasz be tüskesort.), de akkor valójában nem férsz hozzá a többi csatlakoztatási ponthoz, pont azokhoz, ami miatt érdemes beruházni egy ilyen lapkába.
A lényeg az, hogy ha két folyamatnak két külön állapotgépet csinálsz két külön függvénnyel megvalósítva, akkor egymástól függetlenül fognak párhuzamosan működni. Tehát a process2 állapotgépet önmagában nézheted. Az eredeti hozzászólásod nem olvastam elég figyelmesen, hogy lényeges, hogy a különböző időzítéseket hogyan valósítod meg. Csak a process2-t átírva tetszőleges idő mintát meg lehet valósítani, amit leírtál, az kb így nézhet ki. 5 állapotunk van, a kikapcsolt állapot, és minden várakozás 1-1 állapotnak felel meg.
Nagyjából ez lenne a blokkoló megvalósítás pszeudókóddal, ami ugyanezt csinálja:
Köszönöm, ez szimpatikus megoldás. Még tanulmányozom, de elsőre jónak tűnik. Köszönet a fáradozásért mindenkinek!
Uno qMeg is vettem a uno q, majd mondom eljátszadozom vele, persze a program nem indul ami hozzá van az App Lab, csak az ide 2.x, szép egy start
Jött egy frissítés ami megoldotta a gondot!
Nem igazán tetszik
Lehet két hét után már nem aktuális , de azért volna egy tippem a gomb figyelés-20 másodperces kihagyására .
void gombfigyelés() { if(!gnyomi) { bool x=digitalread(gomb); if(x) gnyomi=true , húszmásodperces() ; // kizárod magad a gombfigyelő eljárásból } } void húszmásodperces () { végevan=false; .....tevékenység..... if (végevan) gnyomi=false; // engedélyezed a gombfigyelést. } Nyílván ez csak egy ötlet ezt ki kell dolgozni és a részletekben megbújó ödögöt pedig kizavarni belőle. Villogtatás és egyebek: A mikros() függvénnyel tudsz pontos időmarkereket létrehozni (a millis egy rakat sz.... azzal ne foglalkozz ) unsigned long ms = micros(); idoalap=ms/100000 ; // időalap változód minden tizedmásodpercben fog egyet lépni előre. Ha változtatod az osztót akkor más időalapot kapsz. /1000 =1mS (és ez pontos is) Erre alapozva annyi egymástól független időzítést villogtatást , programrészlet lefutást tudsz létrehozni amennyit csak akarsz (illetve amit a chip elbír). Ja és a delay is mehet a kukába. Gombfigyelés: Sokszor láttam már azt a módszert amikor a belső felhúzó ellenállást bekapcsolják és ráakasztanak egy gombot a bemenetre amely gombnak a prellezése miatt írnak egy k@rvára bonyolult eljárást, mellyel kiküszöbölik a nyomigomb okozta problémát. Hát lehet így is de egy kerámia kondi meg két ellenállás is megoldja , főleg ha minden le van időzítve a programban. Ott a módszer fentebb . Ha tizedmásodpercenként egyszer nézel rá a gombra és a mellékelt fotón látható módon kötöd be akkor a prellezést és a kapcsolódó programozási hókuszpókuszt el is felejtheted végleg. üdv
Közben írtam egy használható verziót, de ebben is van, ami szimpatikus. A delay eleve kiesett, a millis szóba jöhet, mert nem kritikus az idő. Ezzel együtt köszönöm a fáradozásod!
Ha szabályos időközönként foglalkozol a nyomógombokkal (te tizedmásodpercenkéntit írsz, én általában harmincadmásodpercenkénti lekérdezést szoktam használni, de ez részletkérdés), akkor szerintem teljesen felesleges a hardvert kondikkal és ellenállásokkal bonyolítani, nem okoz gondot a gombok prellezése. Én külön eseménykódot szoktam hozzárendelni a gomb lenyomásához, meg a gomb felengedéséhez, sőt nem sokkal bonyolultabb megoldani, hogy kezelve legyen a gomb ismétlése meg a rövid/hosszú gombnyomás utáni felengedés megkülönböztetése. Ezzel a PC billentyűzetéhez hasonló működést lehet megvalósítani.
Szia!
Gondolom már minden megy, és akkor az jó, de miért nem használtál timer-eket? Azok erre vannak kitalálva, bár a milis() is ere épül. De ha jól tudom az Arduino-ban is több timer van. Ha a timer 8 bites, akkor hamar lefut, azaz számlálók kellenek bele, nem túl bonyolult. A ComparA és társai is hasznosak lehetnek ekkor, de a sima overflow -val is megoldható, csak akkor a timer kezdeti értékét kell megadni. A másik: Tömbökbe ki leht szervezni a bekapcsolt és kikapcsolt időtartamokat, így a tömb indexeivel kell lépni csak. Másik: Ha a szünetek ideje számtani sorozat mentén nő, akkor egy sima változó, ami mindig x értékkel nő. Ebben az esetben tömb sem kell. Valójában nem bonyolult annyira szerintem, mert egy olyan timer kell, amivel megoldod a 20s időt és egy másik, ami ezzel együtt indul, majd az szabályoza a ki/be kapcsolásokat. Ha a 20s lejár, akor ez a timer kinulláz, overflow flag 0, és leállít (illetve maga a 20s timer is leáll, alaphelyzetbe téve). Gombnyomásra logikai változó átáll, indulnak a timerek. Ezt a lábat simán lehet interruptra tenni is, így a fő ciklusban nem kell if a láb figyelésére. Szóval pár volatile logikai és egyéb változó és a timer-ek megoldják, igen kevés processzor időt felhasználva, így a fő main-be lehetnek még egyéb kódok. A timer-ek az órajellel vannak összekötve, számlálók valójában és bizonyos esetekben (overflow, comparA, stb) esetekben megszakítást kérnek, azaz addig, míg ez nem történik meg, a cpu futhat gond nélkül. Ezek a feladatok nem terhelik meg a cput annyira, hiszen más áramkörök dolgoznak a háttérben ekkor. (bár ebben az esetben a sima serial olvasás írás lehet gondban lenne, mert ha jól emlékszem az is megszakításokkal operál, lehet ebből gond lehet, ezt nem tudom pontosan) De: Sima milis()-el is simán megoldható, interruptok nélkül is akár. A lényeg, hogy a milis() a timer0-t használja. Ezért több nem lehet ha jól sejtem, de nem is kell feltétlenül. De inkább kipróbálom, megpróbálom megírni. Ha sikerül bemásolom ide. REmélem menni fog!
Ezt hoztam össze, ez sima millis()-el megy:
Bővebben: Link A kód úgy megy, hogy a gomb megnyomása után 20 másodpercig villogtatja a piros LED-et, a zöld LED jelzi, hogy a 20 másodpercben vagyunk. Ha a 20 másodperc nem telt le, akkor a gombot hiába nyomjuk meg, nem veszi figyelembe. A piros LED 1 másodpercig világít, utána 0.2s ig nem, majd megint 1 s de utána 0.4s-ig nem. A növekmény 200ms minden lépésben. Könnyen átírható lenne akár tömbben tárolt időkre is szerintem. A változók nevei azért ilyen hosszúak, mert így sokkal érthetőbbé válik szerintem, de 1-2 helyen hosszú lesz.. A szimuláció remélem elérhető, de a kódot ide is bemásolom:
Régen írtam Arduino kódot, ráadásul Timer-ekkel szoktam megoldani, ezért lehet ezt még egyszerűsíteni esetleg, illetve nem tudom pontosan, hogy maradt-e benne felesleges váltizó vagy sem.
És ez a rész már nem is kell bele:
Mikor elkezdtem akkor kellett csak, ezt nem feltétlen kell már bele. A fejlesztés elején kellett, de a későbbi változók mint például a "Piros_LEDnek_kell_vilagitania" megoldja ezt a problémát. A hozzászólás módosítva: Okt 25, 2025
Köszönöm szépen a fáradozásod!
Arduino UNO Q és használataArduino UNO Q – Az új korszak kezdete: Linux és valós idejű vezérlés egy lapon.Hátha egyszer még előkerül... Bővebben: Link Valakinek van tapasztalat vele? Az USB C-re rakott video nélül már el sem indul?
En meg nem lattam megvasarolhato peldanyt, kiveve ezt az Aliexpress-en.
Bar nekem jok a tapasztalataim az ottani (Aliexpress) rendelesekkel, de ezt meg nem mertem bevallani
18 rugó: Bővebben: Link
Igen, én is láttam, de legalább "natív" forrás
Igen, lattam , de ez egyelore csak elorendeles. Mondjuk nekem nem olyan surgos, mostanaban van mit epiteni, sorban allnak a hobby projectek
Egyet mindenkepp kell majd vennem, csak hogy lassam mit tud, mire tudom (tudnam, ha lenne idom) hasznalni..
Vajon a Raspberry kihívójának szánták az UNO Q-t?
Nekem 3 darab Pi 4-en (8GB) fut itthon egy kubernetes cluster, teljesen megbizhato. Nem hasznalom low level, idozites-kritikus celra, csak mint altalanos 'szerver'-t.
Ez az Unu Q egy uj kategoria, egyelore nem nagyon latom mivel lehetne osszehasonlitani
Kipróbálom, ha nem felejtem el ezt az USB-C dolgot.
Dehogy új. Évek óta vannak ilyen pici Linuxos cuccok. Nekem például kb 6 éve itt van egy Onion Omega 2.
Ezen valóban nincs plusz MCU.
Olyan megoldást viszont láttam többet is, ahol egy tokon belül van egy CPU és egy teljes mikrokontroller. A CPUn fut a komplex OS, hálózatkezelés, stb. Az MCU pedig intézi a realtime feladatokat. Az ST is kínál ilyeneket.
Az messze nem ilyen kepessegu, mint ez board.
En is regota hasznalok BeagleBone (Black)-et, ez ugye mosolyogva viszi a QBUS es UNIBUS kartyak emulalasat regi PDP 11-es gepekben.
Itt le van írva minden Bővebben: Link
Kedves tki. Végre sikerült rászánni magamat, és PUTTY segítségével ezeket az alap kódokat beírtam próbaként. ÉS sikerült előrébb lépnem... Amint látom, jó sok dolgom lesz átírni a programomat ilyen működésre. És biztosan kell a gondolatmeneten is változtatni. Már előre égnek áll a hajam, de valamikor veszek egy nagy levegőt és nekilátok. Persze a programot is át kell néznem, mert azt is elfelejtettem... Hmm. Köszönöm a néhány útmutatást.
|
Bejelentkezés
Hirdetés |













