Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Ész nélkül semmiképp! A fordítandó projekthez meg szokták adni hogy milyen libet igényel, abból melyik verziót. Jobb helyeken még linkelik is. Ezek nagyon könnyen összeakadnak, érdemes csak azokat feltenni amit nagyon muszáj.
Amúgy nem tudom, van erre valakinek bevált módszere, hogy ha az egyik ezt igényli a másik meg azt, akkor ne vesszenek össze? Vagy minden alkalommal megy a pepecselés hogy leforduljon valahogy??? Én nem használok libeket, vagy ha mégis akkor ragaszkodom ahhoz az egyhez ami már egyszer bevált. Mondjuk nem is szoktam idegen projekteket fordítani... Megvan az a stiklim, hogy megírom magamnak amire szükségem van.
Ha Arduinot használsz, akkor máris használsz idegen kódot. Elég nagy C++ kódbázis maga az Ardunio.
De ha kihagyod az Arduinot, akkor is itt van egy csomó lib. Az AVR-GCC beépítve tartalmaz egy csomó C és ASM kódot a mikorokontrollerek könnyebb kezelésére. A C fordítóhoz is jár egy standard függvénykönyvtár, abból is használsz egy csomó mindent. Library mentes kódban nincs Serial.println() de még memcpy() sem... Idézet: „van erre valakinek bevált módszere” Megoldásom a problémára: Nem használom az Arduino keretrendszer library managerét. Minden projekt saját Git repositoryban van, a szüksége 3rd party kód pedig szubmodulként belinkelve. Munkahelyi projekteknél pedig egyáltálán nincs Arduino, a 3rd party repositorykat pedig forkoljuk, így nem függünk harmadik fél repo törlési akcióitól.
> a szüksége 3rd party kód pedig szubmodulként belinkelve.
Ezt hogy lehet Arduinoban megcsinálni? Én emiatt a probléma miatt elég hamar leszoktam az Arduino-ról. Amolyan "kapudrogként" ezzel kezdtem, de a lib kezelés szerintem is katasztrofális. Az a baj, hogy ezt egy nehéz probléma jól kezelni, az Arduino pedig elrejteni akarja a problémát, nem is nagyon látható, hogy mit csinál belül. Az első alkalommal amikor valami nem úgy működik ahogy kellene, jöhet a fejvakarás, hogy mi is van itt. Az első kézzel írt makefile-omat az Arduino által kiadott parancsok alapján raktam össze, és elkezdtem azzal fordítani a programomat rendes C/C++ programként. Lassanként megszabadultam az Arduino libtől is. Most már csak akkor használok Arduinot, ha valamit nagyon gyorsan össze akarok tákolni és tudom előre, hogy nem fogok vele falba ütközni. Az "iparban" is probléma egyébként a függőségkezeés, és az egyik megoldás hogy virtuális gépeket, vagy Docker konténereket csinálnak projektenként, amiben pontosan az van benne ami ahhoz kell. Így nem ütköznek össze. Véleményem szerint ez egy drága workaround, de legalább működik. Arduino-ból "telepíthetsz" többet, valójában nem kell telepíteni, csak kicsomagolni egy mappába és kész. Tehát nem kell Docker sem. Hátránya, hogy 1GB körül van egy példány, de a mai SSD árak mellett ez nem óriási probléma. Én egy ideig őrizgettem így Arduino IDE-ket, de aztán portoltam mindent sima Makefile-ra és azóta nem is kell Arduino. A külső források kezelésére a saját másolat (mirror) létrehozása jó gyakorlat. Volt ilyen "botrány" valamikor, hogy valaki viccből törölte a 11 soros "leftpad" implementációt, és tömegeknek törtek el a folyamataik, nem tudtak szoftvert kiadni: https://qz.com/646467/how-one-programmer-broke-the-internet-by-dele...f-code
Kipróbáltam mindkét változatot, amit mellékelt képet azt is, és az illesztő nélkülit is.
Egyik verzió se működik
A beépített szintillesztőt tartalmazó modult érdemes megvizsgálni. Hogy miért? Mert sok esetben csak a szint illesztést végzik el és nem foglalkoznak azzal, hogy a MISO vonalra esetleg más eszköz is rá van kötve. A MISO vonalnak ugyanis lebegő állapotban kell lennie abban az esetben, ha az adott eszköz nincs kiválasztva a hozzá tartozó CS vonalon. Ennek az elmulasztása addig amíg egyetlen eszköz van az SPI vonalakra rátéve semmilyen gondot nem okoz, de ha már több eszköz is rákerül akkor kezdődik a szkanderbajnokság a MISO vonalon. Ez ugye jobb esetben csak működésképtelenséget, rosszabb esetben akár valamelyik eszköz meghibásodását is eredményezheti.
De mint írtam, kipróbáltam illesztő nélkül is az sd kártyát és úgy se volt jó, a videoba is így van.
És az MFRC elengedi (azaz lebegő kimenetté állítja) a MISO vonalat akkor amikor a CS vonala magas (tehát inaktív) állapotú?
Odáig el se jut, az SD inicializálás sikerrel lefut (de az se mindig, ez is érdekes)
Az SD cs lába marad magas szinten, az MFRC ss lába lebeg,az MISO láb is. Idézet: „Ha Arduinot használsz, akkor máris használsz idegen kódot.” Félreértettél! Nem állítom hogy 100% natív saját gépi kódot írok, de nem szoktam külön libeket letölteni. Itt a hangsúly megint a szoktam-on van, volt már példa erre is. Csak ahhoz képest hogy sokan csak ollóznak össze-vissza és csodálkoznak hogy nem működik, nekem jóval kevesebb ősz hajszálam van. Tény, hogy cserébe meg kell küzdenem a megvalósítással. Ezért mondtam hogy stikli ![]() szerk.: mondjuk így ebben a formában ez már off, úgyhogy inkább szürkítem is A hozzászólás módosítva: Máj 13, 2023
A videóban lévő 3,3V-os SD kártya olvasót használ ami nem olyan mint a tied. Tieden lévő stabilizátor ic-s verzíónak mindig 1-2 V-al nagyobb tápfeszültség kell a bemenetére mint ami kimenetén van. Ezért tud 5V-ból 3,3V-ot létrehozni. Ha ugyanakkora feszültséget adsz a tápfeszültség bemenetre mint aminek a kimeneten kellene lennie az vagy instabil állapot lesz, vagy nem is fog működni.
Az LVC125A tudja a lebegő állapotot, persze csak akkor ha az OE lába be van kötve. Továbbá össze lehet kötni 3,3V-os eszközökkel tekintve hogy a táp feszültsége max 3,6V lehet. Vagyis nem tud többet kiadni mint a stab ic-től kapott 3,3V, de tud fogadni 5V-ot a bemenetén. Az MFRC522 MISO láb lebegés jó, de a CS láb nem lebeghet. Nézd végig a vezetékezést. MOSI lábnak is lebegni kellene ha az SS vonal HIGH Az MFRC522 tudja az SPI-t és az I2C protokollt is kezelni. Meg lehet próbálni átalakítva használni i2c-1 (bocsi, de a böngésző blokkolta így csak fordítón keresztül működik) i2c-2
Sziasztok! Végül megoldódott a problémám. A megoldást megírom. Talán hasznos lehet másnak is.
Idézet: „Üdv! Segítségre lenne szükségem. Egy excel munkafüzet 5 cellájának értékeivel kellene vezérelnem 5 arduinora kötött ledet. A celák értéke egy nagy adatmennyiség analízise alapján 0, 1, vagy 2 lehet (na eddig vannak kézbentartva a dolgok) az arduino mindig a COM3 portra csatlakozik a ledek a 8,9,10,11 és 12 kimeneteken. Azt kellene megoldani hogy pl. ha A1 cella értéke 1 akkor led8 nem világít, ha az érték 1 akkor led8 1Hz frekivel villogjon és ha az érték 2 akkor folyamatosan világítson. Ugyanígy A2 led9, A3 led10 stb stb. Probáltam mindenféle kódokat vba és arduino oldalról is datastreamert és firmatat de csak egy két össze-vissza villódzás meg vba hibák sikeráltak. Arduinoval még nem foglalkoztam. Ha valki kisegít, akkor a ledek helyet végül agy andon lámpatorony lesz a kijelzés egyszilárdtest relékártyán keresztül, de most teljesen belezavarodtam. Ha tudnátok arduino és vba kódokat javasolni, azt megköszönném. Minden tiszteletem a segítő szándékú szakiké. Köszönöm! Tónyó” Végül ez vált be :
Az excel datastreamer bővítményébe íródnak a parancsok. Bármilyen makró vagy vba kód kimenete lehet bármilyen led variáció. Köszönöm a segítő hozzászólásokat! Tónyó
Kipróbáltam mindkét változatot
(melléklet)Igaz, saját készítés, de működik illesztő chip nélkül, persze nem egyszerre. Az I2c-s módszer, nagyon tetszik, ki is próbálom, ha jól látom annyi a külömbség, hogy egy külön MFRC522_I2C.h kell és inicializálás előtt kell a Wire.begin();,,???
lemaradt a melléklet.
Közbe nézem, hogy egy alakítást is kell csinálni az Mfrc panelján, a hátuljába kéne fúrni egy lyukat, ami azért kicsit homály, mivel ott semmi via nincs, konkrétan belefúrnék pont a chipbe. Idézet: „Just drill a neat little hole from the bottom side of the PC through the trace. I used a 0.9 mm drill in a pin vise (that's a little holder like a jeweler's screwdriver, no motor). Just drill carefully until you hit the copper, then keep on drilling until the copper is gone.” Tehát fúrjak bele a panel hátuljába, de csak a vezetősávig, úgy, hogy az IC-t nem sértem meg vele.... ![]() Ezek a holdról jöttek???
Csináltam már ilyet. Hekkelésnél előfordul.
![]() Ha nem tetszik, akkor vegyél olyan modult, ami neked eleve megfelel.
De itt azért van némi ellentmondás: az egyik azt állítja csak át kell fúrni/vágni az 1-es pin és a test között, a másik , hogy ki kell vezetni + összekötni az 1-2-vel, akkor hol az igazság?
Te melyiket csináltad? A hozzászólás módosítva: Máj 14, 2023
„Az igazság odaát van”
![]() Gondolom CNC-vel fúrtak, amivel nem nehéz tized, század mm-nyi pontossággal fúrni. Ha megnézed az 1-es linknél a képeket látható képeket látható hogy az 1-es és a 32-es láb be van kötve a GND-re egy ki vezetősávval. Fúrással az van meg szakítva. Talán egyszerűbb leforrasztani és kapton szalaggal visszaforrasztani ahogy a leírásban is szerepel. De ezek az RFID-ek kaphatok sokféle verzióban RFID (SPI,I2C, RS232) és még a HSTORE-ban is vannak. A fotón lévő kábel dzsungel szép látvány Ezek elkerülése végett tértem át erre: CARD+ RTC Könnyebb átlátni a helyzetet.Látom van két egyforma RFID is. Ketten tudnak egy ARDUNIO-ra rákötve működni?
Kézzel fúrta ki
![]() Oké, a 1 és a 32 megszakít, de látok egy változatot, amin egy vékony szál kilóg a talán 32-re kötve, de nem derül ki, hogy minek. Lehet, csak kipróbálom, mert még van pár mfrc-m. Azt úgy nem próbáltam, hogy egy UNO-ra 2 mfrc-t bekötni.
Köszi hogy megosztottad a tudásod.
Ki fogom próbálni ha oda jutok.
Kézzel is lehet, csak úgy el kell hallgatni a nem sikerültek számát
![]() Talán így könnyebb lesz a lábak funkcióit beazonosítani 522 verziók vagy 522 áramkör Azt hogy 2 egyformát tegyél az UNO-ra, azért írtam mert úgy könnyebb lesz megtalálni a hibát, hiszen mindkettőn ua. azt a kell mérned. A hozzászólás módosítva: Máj 14, 2023
Nem ezen a modulon csináltam ilyet. A hekkelési technika ismerős.
Adtam egy esélyt a dolognak//nem jött be.
Levettem a chipet, ragasztottam a 32 és az 1-re kaptonszalagot (már ez challange volt) Majd vissza, szerencsére van még pár mfrc-m
Szeretnék segítséget tőletek.
Készítenenék egy félkarú rabló játékgéphez hasonló működésű készüléket. Persze sokkal egyszerűbbet. Három digites hét szegmenses multiplexelt kijelzőn szeretném majd megjelenítetni a külöböző szimbólumokat. Én úgy gondoltam, hogy az egyes szimbólumokat a kijelzőn véletlenszerű digiteken jelenítettném meg véletlenszerűen. Mindegyik szimbólumhoz egy azonosítót rendelnék és a későbbiekben ellenőrizném, hogy ezek a szimbólumok egyszerre szerepelnek-e mind a három digiten. Ha igen, akkor pl. kapcsoljanak fel egy LED-et és álljon meg a kijelzés jelezve azt, hogy három egyforma szimbólum van mind a három digiten. Azonban abba problémába ütköztem, hogy hogyan tudnám megállítani a kijelzési folyamatot, hogy látható legyen három egyforma szimbólum a kijelzőn? Írtam egy kis kódot, ami egymás után véletlenszerű digiteken jeleníti meg a szimbólumokat: Köszönöm a segítséget!
A hozzászólás módosítva: Máj 15, 2023
Én nem igy csinálnám. Ha jol értettem a kérdést.
A 3 display legy A, B meg C. valamennyi displayen 0-9 számot jelenthetsz meg, azaz ezt a tartomány kell randomizálni. int A = random ( 0,9); Majd ugyanezt a B-re meg a C-re. Ha nem csak számokat akarsz kijelezni a displayen, akkor ha elkészült a kép, annak van valamilyen számszerü alakja, pl ugy, hogy az egyes szegmensekhez hozzárendelsz egy számot a = 1 b = 2 c = 3 d = 4 e = 5 f = 6 g = 7. ( ha a decimális pontot is beszámolod). A kijelzett szám meg A = ( a+b+c+d+e+f+g) A sorok közé berakhatsz egyébb randomizálo sorokat. Ha megvan mint a 3 szám, akkor beraksz egy IF funkciot, hogy A=B=C, és ekkor megáll a gép és fizet.. ![]() Bocs ha félreértettelek.
heltec_lora_wifi_esp32 sender cod:
LoRa32u4 receiver cod:
Hogyan módosítsam a kódokat? Most a fogadó nem olvassa a state értéket a packeten belül, és nincs relé kapcsolás.
Igen, ez is jó, amit te írsz.
Azonban... Én itt a SevSeg.h könyvtár-t használnám elsősorban. Itt sajnos nem tudom, hogy hogyan kellene azt megoldani, hogy csak az adott szegmenshez tartozzon egy kijelzett szám vagy karakter. Azért inkább így elsőre azt választottam, hogy inkább a digit változzon , mint az adott kijelzési érték. Tehát adott digiten, adott karakter. Így illetve ide lehetne valahogy beleírni a véletlen karaktert. De nem jövök rá hogyan, mert byte-ot kér. Részlet a SevSeg.h könyvtár leírásából:
De lehet így nagyon nem jó az irány. ![]() Majd írok bele rejtett programkódot, ahol lehet majd kapcsolóval állítani , hogy ne dobálja ki az aprót feleslegesen. ![]() A hozzászólás módosítva: Máj 15, 2023
A SevSeg helyett csinálsz egy tömböt ( arrayt) ahol definiálod a 7(8) szegments egyenként ( ahogy korábban irtam).
Itt teljesen szabadon választhatsz a definiált szegmensek közül. A 10 szám adva van (0-9), ezen felül te definiálhatod számokkal pl a 11. Legyen ||. ( 2 függöleges jelet) 12. 1-3 vizszintes jelet 13. Egy H betüt 14. Egy U betüt 15. Egy n betüt stb. nem sok van. Ezeket mind beviszed a tömbe és már csak a véletlen szerü kiválasztást kell megoldanod 0-x számig, amit fenn bevittél az arrayba.
Valóban lehet a SevSeg nem a legjobb a feladathoz. Megpróbálom tömbökkel.
Szép munka
Sajnálom hogy nem működik.Vannak az i2c_1 link alatt minta programok is. Nem látja az i2c szkenner sem? Hogyan kötötted be. |
Bejelentkezés
Hirdetés |






(melléklet)











