Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   857 / 872
(#) cua válasza vargham hozzászólására (») Ápr 5, 2025 /
 
Dehogy, olcso klonokat hasznaltam (es foleg ATMega2560-t a sok IO miatt), azokon ch340 van. Arduino kategoriaban nekem jo tapasztalatom van a kinai klonokkal, nem ugy mint az stm32 csaladnal.
Mondjuk egy ideje (tavaly ota) ravakultam a PICO panelekre, azota nem nagyon volt a kezemben mas..
(#) vargham válasza cua hozzászólására (») Ápr 5, 2025 /
 
Nekem is jó a tapasztalatom. De nem ez volt a kérdés.
Az eredeti kérdésfeltevőnek próbálunk segíteni, ahhoz pedig tudni kellene, hogy NEKI milyen hardvere van.
(#) cua válasza vargham hozzászólására (») Ápr 5, 2025 /
 
Igazad van, en felteteleztem, hogy klon-rol beszelunk, nem is emlekszem, hogy Arduino-bol lattam-e valaha hivatalos gyari valtozatot.
De egy kep valoban sokat segitene ezugyben
(#) vargham válasza cua hozzászólására (») Ápr 6, 2025 /
 
Munkahelyi POC hardverhez eredetit veszünk. Úgyhogy elég sokfélét láttam már.
(#) cua válasza vargham hozzászólására (») Ápr 7, 2025 /
 
Ha munkahoz kellene en sem jatszadoznek a klonokkal Egyszeruen nem eri (erne) meg fejlesztesi idot pazarolni a klonok esetleges problemaira.
Nekem szerencsere ez mind hobby, igy nem tragedia ha belefutok ilyen-olyan hibakba, korlatokba, azzal is tanulok valamit. A legfontosabb tanulsag az volt, hogy legyen mindenbol legalabb egy eredeti is, igy konnyu osszevetni, ha valami gyanus.
Nem akarok belegondolni mennyi penzt dobtam mar ki az ablakon mindenfele fejlesztoi panalekre. Cserebe szinte minden van a fiokban ami kellhet, sosem kell varnom a postasra
A hozzászólás módosítva: Ápr 7, 2025
(#) baloghvl hozzászólása Ápr 9, 2025 /
 

arduino shield programfeltöltés

Sziasztok!

Megépítettem az itt található kapcsolást. A demó és a voltmérő programot ki is próbáltam, de az óra programot nem tudom betölteni az uno-ba. Milyen fájl vagy fájlok kellenének még hozzá?

Előre is köszönöm a segítséget!
(#) KoblogPerGyok válasza baloghvl hozzászólására (») Ápr 9, 2025 /
 
Szia!

Az oldalon az is szerepel, hogy a szükséges lib-ek elérhetőségét a programok kommentjeiben megtalálod.

Ez a VFD_shield_ordinary_clock.ino -ban van:

Required library: http://www.pjrc.com/teensy/td_libs_Time.html

Nem tudom pontosan melyik is a programod, de szerintem ez. Azaz nézd meg az eredeti kódban, hogy mi kell neki.

A linkelt oldalon a step 21 után van egy kép, ami alatt ez van:

Idézet:
„Every library that you will need is in the comments at the beginning of every sketch.”


Azaz le kell töltened a megfelelő lib-et, és azt kell betenni az Arduino IDE-be. Azt hiszem a mai IDE-k már elég rugalmasak ezen a téren, de simán lehet include-al a saját meghajtód azon mappájából is betenni, ahol a fő ino fájlod van.
(#) baloghvl válasza KoblogPerGyok hozzászólására (») Ápr 10, 2025 /
 
Szia!

A library-t letöltöttem. De az idő beállítást hova, hogyan kellene? Elvileg egy ilyen paranccsal kellene megmondanom hogy honnan indul az idő: T 1431472660.

Köszönöm!

2.JPG
    
(#) baloghvl válasza (Felhasználó 32034) hozzászólására (») Ápr 10, 2025 /
 
Nem gondolok semmire, nem értek a programozáshoz. Először van a kezem közt arduino uno. Gondoltam hogy csak bele kell tölteni a programot és működik.

Ezt hiányolja ahhoz hogy működjön: Axiris IV-3 Arduino Shield as a clock.

This program listens to incoming commands on the serial port (9600 baud). A command
is processed when a CR (13) or LF (10) character arrives.

- Command 'T': Set the date and time by means of a Unix epoch value. The command
must be followed by a decimal value. For example:

T 1431472660

Sets the date and time to 2015-05-12 23:17:40.

See also: http://www.epochconverter.com/

iv3clock.ino
    
(#) Lamprologus válasza baloghvl hozzászólására (») Ápr 10, 2025 /
 
Az előző hozzászólásodat elnézve még le sem fordul a program.
Tele van hibákkal!
Először azokat kell kigyomlálni.

Majd ha sikeres a program feltöltése utána jöhet az, hogy a soros porton keresztül beállítsd az időt!
(#) baloghvl válasza Lamprologus hozzászólására (») Ápr 10, 2025 /
 
Jól látod a helyzetet. Ezért fordultam ide segítségért.
(#) Lamprologus válasza baloghvl hozzászólására (») Ápr 10, 2025 /
 
Akkor kéne a teljes forráskód és hibalista, elejétől a végéig!
Valamint kéne tudni, hogy a szükséges libraryt telepítetted-e?
(#) baloghvl válasza Lamprologus hozzászólására (») Ápr 10, 2025 /
 
Itt van már feltöltve a forráskód és a hibalista is a korábbi hozzászólásaimban. Azóta egy könyvtárleíró lett még letöltve.

TimeLib.h
    
(#) Lamprologus válasza baloghvl hozzászólására (») Ápr 10, 2025 /
 
Valóban! Volt egy hibalista, de nem lehetett tudni melyik forráshoz tartozik!

És azt mondtad, hogy a szükséges libeket letöltötted, de azt nem hogy telítetted is őket, eléri a fordító?
(#) baloghvl válasza Lamprologus hozzászólására (») Ápr 10, 2025 /
 
Az egy teljes error-report. A fő lényeg a 'setTime not decleared', szerintem. A 11:44-kor írott hozzászólásban lévő képen látszik a letöltött library, meg egyebek. Gondolom így akkor eléri az IDE a library fájlt.
(#) vargham válasza (Felhasználó 32034) hozzászólására (») Ápr 10, 2025 /
 
Azért ez létező dolog.
Pontosan utánépíted a vasat, vagy akár megrendeled a PCB-t.
Akkor csak rá kell tölteni, és működik. (BlueSCSI, ACS2STM, stb)
(#) KoblogPerGyok válasza baloghvl hozzászólására (») Ápr 10, 2025 /
 
Ok, nem vágom, mert kellene minden, de minden hozzá. Szóval a lib tuti fent van? Csak mert a .h fájlt ide is feltetted, de a c++ fájl is megvan hozzá?
Az Arduino IDE-ben ez a lib fent van rendesen?

A teljes projektedet kellene feltenned egy zip-ben. Egy korábbi Ardunino IDE-ben megnézhetem, hátha megy.

Vagy elég lenne, ha a linkelt oldalról letölteném és az IDE-ben lefordítanám, azaz eddig jutottál te is?
(#) baloghvl válasza KoblogPerGyok hozzászólására (») Ápr 10, 2025 /
 
Innen van nekem is minden amit bele lehet tölteni. Az oldal alján vannak a betölthető programok. Az IDE programból a v2.3.5 van meg ami elvileg a legújabb. A demó-t betöltöttem az működik, és a feszmérő is. Tehát a megépített panel működőképes.

Ezután jött volna hogy az óra programot beletöltöm, ekkor jöttek a hiányosságok. Elvileg a program jó, kipróbált csak kellenek hozzá egyéb 'dolgok' is.

Aztán jött a TimeLib.h letöltése, amit az IDE lát is. De ez még mindig kevés neki. Egyenlőre itt tartok...
(#) vargham válasza (Felhasználó 32034) hozzászólására (») Ápr 10, 2025 /
 
Hirtelen ezek jutnak eszembe, amik nálam tökéletesen működnek: BlueSCSI, ACSI2STM, SD2IEC, PS/2 egér átalakító C64-hez, Párhuzamos->IEC nyomtató átalakító, pong klón, Amiga floppy->USB adapter, IEC floppy->USB adapter
(#) KoblogPerGyok válasza baloghvl hozzászólására (») Ápr 10, 2025 / 1
 
A TimeLib.h nem elég. A c++ fájl is kell hozzá szerintem, ami tartalmazza azoknak a függvényeknek a kódjait, amit a .h fájl tartalmaz. A .h fájl csak mint függvény deklarációként van jelen, míg a hozzá tartozó kódokat a .c, vagy a .cpp fájlok tartalmazzák.

Bár lehet, hogy most már másképpen is van, de nekem a PIC-ből ez maradt meg, én így készítem a fájljaimat. Az include megmondja a fő programnak, hogy a .h fájlban milyen nevű függvények lesznek, azok mit kérnek bemeneti változókként és mikkel tér vissza, vagy épp megmondja, hogy semmivel. Az IDE tudni fogja a fordításkor, hogy lesznek majd ilyen kódok.
A .c fájlok meg tartalmazzák a függvényeket és a kódokat hozzá, amiket meg a .h fáj alapján beránt a fő programba majd a fordító.

De lehet tévedek, már 2 éve írtam a kódjaimat Arduino-ban.

Ennek nézz utána hogyan is megy ez.

De simán lehet nem ez a gond, de én erre tippelek, hogy nincs rendes lib hozzá, vagy a lib változott, vagy a lib nincs berántva a fő kódba.
Nem tudom, mert a lib-eket is saját magamnak írom így azok mindig megvannak és tudom is mi miért megy.
A hozzászólás módosítva: Ápr 10, 2025
(#) B0nsh44 válasza baloghvl hozzászólására (») Ápr 10, 2025 / 3
 
Githubrol az egészet le kell tölteni.

https://github.com/PaulStoffregen/Time

Zöld "CODE" gomb ra katt és a download zip et kell választani.

A letöltött Time-master.zip -et az Arduino Ide ben a Sketch -> Inlude Library -> Add ZIP Library... n keresztül lehet telepitteni.
(#) baloghvl válasza B0nsh44 hozzászólására (») Ápr 10, 2025 /
 
Köszönöm! Így már lefordítja a programot és hajlandó betölteni az uno-ba. Élesben viszont majd csak holnap tudom kipróbálni...
(#) kameleon2 válasza baloghvl hozzászólására (») Ápr 11, 2025 /
 
Ez a progi szerintem kifejezetten arra a shieldre, vagy kalapra, rátétpanelre, ki, hogyan szereti van megkomponálva. Ahhoz azért kell némi rutin, hogy ezt máson is tudd használni. Meg az sem árt, ha tudod, mit csinálsz. Egyébként valóban elég csak rátölteni az arduinóra, na de melyikre? Mert ugye ez egy közös platform kismillió mikrokontrollerrel és rengeteg libbel. No meg melyik fordító? A régi vonalas, vagy az új 2-es? Egy ideje már tanulgatom, használom, de mindig van valami meglepi. Egy Uno R3-al is elég sok mindent meg lehet oldani. Egyre több C fordító jön létre. Már vannak sokkal kisebb, egyszerűbb platformok is. Amúgy fordítsuk meg a dolgot. Mire szeretnéd használni? Talán könnyebb lenne előrelépni.
(#) baloghvl válasza kameleon2 hozzászólására (») Ápr 12, 2025 /
 
Ha megnézed az oldalt akkor láthatod mire lehet használni ezt a 4 csöves rátétpanelt. A programok ehhez vannak írva. Csak még kell hozzá egyéb is. Nekem most a sima óra működik benne. De ez így nagyon 'gépfüggő'. Ha elveszed a tápfeszt akkor elfelejt mindent és lehet sorosporti parancsokkal újra beállítani. Úgyhogy a következő lépés majd az okosabb óra program lesz, rtc-vel. De a hőmérős program is érdekel majd.
A programverziókkal nekem nem volt gondom. A panel már eléggé régen megvan, de most a legújabb Arduino IDE -vel fordítottam bele.
(#) jocoka hozzászólása Ápr 14, 2025 /
 

Arduino óra

Sziasztok!
Szeretnék segítséget kérni, építek egy arduinos órát és sajnos a másodperc kijelzése néha ugrik egyet, olyan mintha gyorsabban váltana a másodperc számlálás. Csatolom a kódot és előre is köszönöm szépen ha valaki ránéz és kideríti a hibát.
További szép napot kívánok!

code.ino.ino
    
(#) lalca válasza jocoka hozzászólására (») Ápr 14, 2025 /
 
Tipp: talán a 336 sor, delay(500), csúszik el az időzítés, lehet rövidebbre kéne venni.
De ez csak tipp, nem akarom megérteni az egész programot, főleg nem törökül.
(#) jocoka válasza lalca hozzászólására (») Ápr 14, 2025 /
 
Szia
Köszönöm megnézem. ?
(#) kameleon2 válasza jocoka hozzászólására (») Ápr 15, 2025 /
 
Bedobtam a gemininek a kódodat. Szerintem próbáld ki te is. Elég lényegre törő megoldási javaslatokat kaptam. A soros port kezelés időzítési hibái és a delay használata okozhat ilyen sleepeket. Ha gondolod mellékelem a teljes választ, de nem akarom feleslegesen szaporítani a szót.
Idézet:
„Íme néhány megfigyelés és lehetséges ok a másodperc ugrására, valamint javaslatok a javításra:

delay() használata a loop() függvényben: A kód több helyen is használja a delay() függvényt (pl. a pont villogtatásánál, az animációnál, a colorWipe, rainbow stb. függvényekben). A delay() blokkolja a program futását a megadott ideig. Ez azt jelenti, hogy amíg egy delay() lefut, az Arduino nem tudja olvasni az RTC-t vagy frissíteni a kijelzőt. Ha ezek a késleltetések elég hosszúak vagy gyakoriak, az befolyásolhatja az időmérés pontosságát és a másodperc léptetésének ütemét.
Javaslat: Próbáld meg elkerülni a hosszú delay() hívásokat a loop() függvényben. Helyette használj nem blokkoló technikákat, például a millis() függvényt az időzítéshez. Így a program továbbra is futhat és rendszeresen ellenőrizheti az időt az RTC-ről, miközben más feladatokat is elvégez.

Soros port olvasása (Serial.available() és Serial.readStringUntil()): A soros portról érkező adatok olvasása a loop() függvényben történik. Ha lassan érkeznek az adatok, vagy ha a Serial.readStringUntil() függvény hosszabb ideig vár a befejező karakterre (.), az szintén blokkolhatja a programot, és befolyásolhatja az időzítést.
Javaslat: Gondold át, hogy mennyire kritikus az azonnali adatfogadás a soros porton. Ha nem feltétlenül szükséges, hogy minden karakter azonnal feldolgozásra kerüljön, érdemes lehet pufferelni az érkező adatokat, és csak bizonyos időközönként feldolgozni őket, vagy nem blokkoló módon olvasni a soros portot.

Neopixel frissítések: A Neopixel LED-ek frissítése is időigényes lehet, különösen ha sok pixel van. Bár a kódban csak 7 pixel van vezérelve csatornánként, a sok show() hívás egymás után (különböző pixelekre) a yaz() és más függvényekben összeadódhat.
Javaslat: Minimalizáld a show() hívások számát. Ha több pixel állapotát is megváltoztatod, érdemes lehet az összes változtatást elvégezni, majd egyszerre meghívni a show() függvényt az összes pixel frissítéséhez.

GameOfThrones() függvény: Ez a függvény több másodpercig blokkolja a program futását a tone() és delay() hívásokkal. Amíg ez a függvény fut, az idő nem frissül a kijelzőn, és ha a függvény befejeződésekor az RTC éppen átlép egy másodpercet, az ugrásnak tűnhet.
Javaslat: Ha a pontos időmegjelenítés kritikus, akkor a GameOfThrones() függvényt is érdemes lehet nem blokkoló módon megvalósítani, vagy ritkábban futtatni, vagy ha fut, akkor is rendszeresen frissíteni a kijelzőn az aktuális időt (bár ez a zenei effektus szempontjából nem biztos, hogy ideális).

A másodperc kijelzése: A másodpercet a d4 és d5 változók tárolják, és a yaz() függvény frissíti a kijelzőt. A loop() függvényben az idő lekérdezése (t = rtc.getTime() és a yaz() függvény meghívása nem történik szigorúan másodpercenként. A közbeiktatott if feltételek, soros port olvasás és a pont villogtatása (delay(500)) befolyásolhatják a frissítés gyakoriságát.
Javaslat: Érdemes lehet egy dedikált időzítőt használni a másodperc kijelzésének frissítéséhez. Például a millis() függvény segítségével ellenőrizheted, hogy eltelt-e 1000 milliszekundum az utolsó frissítés óta, és csak akkor frissítsd a d4, d5 változókat és hívd meg a yaz() függvényt.

Konkrét lépések a hibakereséshez:

Kommenteld ki a delay(500) sort a pont villogtatásánál a loop() elején, és figyeld meg, hogy a másodperc ugrása továbbra is jelentkezik-e.
Kommenteld ki a soros porttal kapcsolatos kódrészeket (if(Serial.available()) { ... }) ideiglenesen, hogy kizárd annak hatását.
Ha a hiba továbbra is fennáll, próbáld meg a GameOfThrones() függvényt kikommentelni.
Adj hozzá soros portra kiíratást a másodpercről a loop() függvényben minden iterációban, hogy lásd, a belső időváltozó (t.sec) ugrik-e, vagy csak a kijelzőn látható a probléma. Például: Serial.println(t.sec);. Ez segíthet eldönteni, hogy az RTC olvasásával vagy a kijelzéssel van-e a gond.
Vizsgáld meg a yaz() függvényt. Bár nem tűnik közvetlenül hibásnak az időfrissítés szempontjából, ha más, időigényes műveletek is lennének benne, azok is okozhatnának problémát.

A legvalószínűbb ok a sok delay() használata, ami megakadályozza a programot abban, hogy rendszeresen és pontosan olvassa az RTC-t és frissítse a kijelzőt. A nem blokkoló programozási technikák alkalmazása valószínűleg megoldja a problémát.

Ha elvégzed a fenti lépéseket és megosztod a tapasztalataidat, tovább tudunk segíteni a hiba pontosabb beazonosításában!”
(#) asch válasza jocoka hozzászólására (») Ápr 16, 2025 /
 
Belenéztem. Honnan szerezted az alapot? Jó nagy benne a káosz.

Vannak benne NOTE_ konstansok: eredetileg ez zenélt is? De most nem zenél, ugye?

Mit kellene csinálnia? Ha nem jön a serialon semmi, akkor két LED villog egyszerre? A loop 322-340. sora erre utal, a look többi része nem aktiválódik sejtésem szerint. Én is a delay-re gyanakszom, delay alapú időzítéssel nem lesz pontos az 1 másodperced hosszú távon.

Ha valahonnan vetted a programot, akkor én úgy csinálnám, hogy fordítva indulnék el: egy minimál programból indulnék ki, és onnan építgetném fel a funkciókat, nem egy "kész" programot próbálnék gyúrni. Abból lehet tanulni, ebből nagyon nehéz. Nagyjából ebben a sorredben haladnék:

Blinky alap program - a beépített LED-del
Egyetlen Adafruit_NeoPixel, ami együtt villog a LED-del
delay helyett millis() alapú időzítés, hogy a periódusok fázisa ne mászkáljon időben.
a millis alapú időzítés rtc-hez való szinkronizálása
A konkrét érték kiírása LED villogtatás helyett
RTC beállítás funkció megvalósítása Serial-on keresztül

Az alap programodból ki lehet másolni a releváns részeket mindig egyből kipróbálva, és csak azt átemelve, ami valóban kell is. Nem minden a legjobban van megvalósítva, például nem használnék String osztályt az input kezelésére, de nem ez a legfontosabb kérdés, és ha működik akkor tulajdonképpen jó így.
(#) Bakman válasza kameleon2 hozzászólására (») Ápr 16, 2025 /
 
Ebből is látszik, hogy mennyire "használható" az AI.

Csak belekukkantottam a programba, kapcsolási rajz nincs. Ha minden igaz, DS3231 az RTC. Ha annak az 1 Hz-es kimenete nincs használva, akkor soha nem lesz jó, amennyiben másodperc kijelzés is kell. Az RTC és a kontroller soha nem fognak tökéletes szinkronban futni. Akkor kell kiolvasni az időt a DS3231-ből, amikor az jelez, hogy frisstve van (SQW kimenet, lefutó él).

Ha a kiolvasási periódus rövidebb a kelleténél, előfordulhat, hogy kétszer ugyan azt az időt olvasod ki. Ha a hosszabb, akkor meg látszólag kimaradnak másodpercek. Nincs mese, az RTC-hez kell szinkronizálni a programot.
Következő: »»   857 / 872
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem