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.
Gyorskeresés
Legfrissebb anyagok
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
- Tudástár AMD Radeon undervolt/overclock
- Tudástár RTX3070 16 GB VRAM-mal?
Általános témák
LOGOUT.hu témák
- [Re:] [ubyegon2:] Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- [Re:] A mágusmester 1. rész
- [Re:] PLEX: multimédia az egész lakásban
- [Re:] [Evil Snowman:] Egér bemutató - Keychron M1 Wireless
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [Mr.Jesus:] RTX VSR: a fícsör, amiről senki sem beszél
- [Re:] Autóvásárlás Németországban
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [Tamás88:] 2025 a PC-s szemétdombok éve lesz?
- [Re:] [aquark:] Milyen „light” RPG-t ajánlanátok kezdőnek?
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Útvonal
Fórumok » Egyéb hardverek » Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)Téma összefoglaló
Hozzászólások
Janos250
őstag
Nekem mostanában Aliról 2-3 hét alatt megjönnek a cuccok. Ritka, ami nem. (Például elvileg Olaszországból 2 hónap is volt)
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Költői túlzás volt
Novemberi rendelésemből szintén minden megjött 3 hét alatt, kivéve azt az egy alkatrészt, amiért az egész rendelés volt, amit legjobban vártam karácsony előtt, na annak kellett 2 hónap.
cigam
félisten
Csatlakozóról jut eszembe: Hol lehet kapni szerelhető USB-A és USB-B dugót?
Furán hangzik, de nem találok olyan "printer kábelt", amit nem valami félvezetőből készítettek. 5V és ~400mA hatására 1V esik rajta, és 4V-al már nem röffen be a ketyere. Lehet rosszul kerestem rá de nem találtam olyan szerelhető csatlakózót, amiből tápkábelt tudok faragni.
[ Szerkesztve ]
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
dew28
aktív tag
cigam
félisten
Köszi!
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
Postas99
senior tag
Múltkor panaszkodtam, hogy a LittleFs nincs támogatva Arduino 2.1 alatt.
Most találtam egy jó leírást hozzá és plug-int is
[Itt]
köszi!
És stabil?
[ Szerkesztve ]
Postas99
senior tag
Nem voltam körültekintő:LittleFS Filesystem Uploader
ERROR: Only Arduino-Pico RP2040 and ESP8266 supported.
Nekem már nincs ilyen régi cuccom.
Vagyis RP2040-el teli van a ház. Azzal meg nem akartam vacakolni mert azt meg python-ban meg lehet oldani és még barkácsolni sem kell hogy az MP3 fájl felugorjon a készülékre, viszont abból meg nincs ekkora kapacitácú cuccom, csak a 2 megás.
[ Szerkesztve ]
Tankblock
aktív tag
Milyen Boardhoz kellene?
Release the Beast....
Postas99
senior tag
DE huszárvágással megoldom. Van még 1.8 Arduino környezet. Ott feltolom a LittleFs-re az mp3 fájlokat, és a kódot lehet akár 2.1-ből is feltenni. Bár maradhatnék 1.8-on is.
Hétvégén már nem volt kedvem ezzel játszani, szárítógépet szedtem szét és még csak nem is jutottam a végére. Összeraktam és majd tavasz után amikor már nem lesz szükség rá, szétkapom és kitakarítom a vízgyűjtő szivattyú motort, addig meg add üvöltsön.
Tankblock
aktív tag
Most értettem meg, te a filokat szeretnéd feltölteni, a sketch mellé...
[link] az vagy a régi 1.x ide vagy parancssorból lesz elérhető, vagy vársz mire elkészül/megírod te :-)
Release the Beast....
Gergosz2
veterán
Sziasztok!
Nincs valakinek elfekvőben egy W5500 vagy enc28j60 modulja, amit nem használ és megválna tőle?
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
ViZion
félisten
Hát... ezek... hááát... megérkeztek és qrva jók
Még nem szereltem be, de már fogásra is komolyabb. Aki mini projectekbe van, annak nem ez lesz a kedvence. Én már próbálok inkább a tartósság/szerelhetőség felé menni, a kis méret rengeteg lemondással jár. Ezek sem szekrény méretűek, de dupla hely, mint az átlag kínai sorkapocs. De itt lehet rögzíteni a vezetéket normálisan, nem csak 0,0001 mm átmérőig használható....
Gergosz: [link] ha nincs senkinek. Esetleg aprón keresés? Néha vannak kincsek, fiókürítős akciókban.
[ Szerkesztve ]
Hold on, trying to give a fuck... Nope, not Happening • Powered by Fedora Linux • "Az élet olyan sz@r, szerencsére a felén már túl vagyok" Al Bundy
Gergosz2
veterán
már mindegy, rendeltem
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
Postas99
senior tag
Örülök, hogy tudtam segíteni.
cog777
senior tag
Van egy uj projektem. Egy kezi radio audio kimenetet kellene monitoroznom, es szamolnom hanyszor nyitott ki a zajzar. Szerintem egy meglevo esp32-ot hasznalok fel, annak van kijelzoje, fogyasztas mindegy, mert usb-rol taplalom.
Kerdes hogy hogyan kossem ossze fizikailag az esp32-vel, talan vezetekekkel es proba panellal?
Mekkora lehet a max feszultseg egy kezi radio audio jack csatlakozojan? (Quansheng k5-k6-rol lenne szo) Szerintem az ESP32 3V-ot visel el, asszem...
Az egesznek az a lenyege, hogy ha nem vagyok radiokozelbe, akkor is tudjam kesobb, hogy valaki kereshetett (amolyan nem fogadott hivas szamlalo).
HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
Én egy ellenállás + 3,3V zener diódát használnék.
cog777
senior tag
köszi!
HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
cigam
félisten
Esetleg ez a leírás segíthet adatkapcsolaton keresztül kommunikálni/figyelni/ vezérelni a rádiót.
[ Szerkesztve ]
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
Béééla
őstag
Biztos, hogy nem az itt tartózkodóknak fog első renden tetszeni, de csak van mindenkinek egy kis kocka ismerőse: terveztem egy kifejezetten abszolút kezdőknek szánt shieldet. Anyagára tokkal-vonóval nagyjából 2000 Jó Magyar Királyi váltóból kijön. Nem árulom, mielőtt valaki átirányítana az apró részre a dizájn szabadon elkérhető. Hátha valami iskolai foglalkozáson vagy hasonlón hasznos lenne valakinek!
Bélabá
cog777
senior tag
wow, koszonom, meglesem mit lehet kihozni.
HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
tibi-d
tag
Sziasztok!
Hogy egy kis programozás is essen szóba.
Hogyan tudnék String tömböt létrehozni. (String myString[2] = {"string1", "string2"};) ezt nem fogadja el a fordító. Mi a helyes szintaktika?
cigam
félisten
Miért rakod az egészet zárójelbe? Vagy csak a példa kedvéért?
Milyen nyelven?
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
Szerintem először deklaráld a tömböt, és a setupban töltsd fel adattal. Úgy emlékszem így fog menni.
Gergosz2
veterán
Mivel a string egy char array, ezért string vectorhoz egy char mátrixot kell deklarálnod. Erre azért lesz szükséged mert ahogy te próbáltad, úgy nem azonos hosszú is lehet egy egy sor, amire hisztizni fog a compiler.
Példa
char myStrArray[3][10]= {"asd", "asd1","asd12"};
Értelemszerűen a "" miatt a /0 is ott lesz mindegyik végén
B opció, ugyanez pointerrel :
char *myStrArray[3]= {"asd", "asd1","asd12"};
[ Szerkesztve ]
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
Janos250
őstag
Biztos, hogy nem fogadja el?String myString[2] = {"string1", "string234"};
Én nem látom a logikáját, mivel a myString[2]
önmagában pointer.
Majd holnap kipróbálom.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
tibi-d
tag
Megint bebizonyosodott, hogy a figyelmetlenség mekkora galibát is okozhat. Mindenkinek igaza volt, mindegyik verzió helyes, csak azért dobta vissza a fordító, mert duplikált változónév volt a rendszerben, amit nem vettem észre.
Köszi mindenkinek.
5150head
senior tag
Sziasztok. Melyik arduino uno klón az ajánlott pl amazonról?
Egy, majd később kettő db nema17 léptetőt szeretnék róla hajtani.
Ezekhez milyen motor vezérlőt ajánlotok?
Köszönöm
JulianSinulf
senior tag
Szia!
Hogyan szeretnéd hajtani?
Számítógép nélkül vagy számítógéppel?
Ha számítógéppel, akkor érdemes egy Mega-t választani, azon van több serial port.
Persze megoldható Uno-val is, de, akkor szoftveresen kell megcsinálni a serial portot, mert a hardverest a számítógéppel való kommunikációra használja. Úgy olvastam, hogy ez nem mindig jó.
Ha számítógép nélkül csinálod, akkor csak addig kell lehúzni a meghajtót, amíg felprogramozod az Uno-t.
Én TMC2209 meghajtót használtam.
GitHub-on elérhető a library.
Sajnos nincs benne hogyan lehet adott lépésre vezérelni. Legalábbis én nem találtam meg. Így maradt az adott sebesség alatt megtett út beállítása és a működtetési idő változtatása a kívánt távolság eléréséhez. Elméletileg.
Egy lézervágó állítható magasságú asztalát csináltam meg vele.
Számítógépről állítható.
Azért ezt a meghajtót választottam, mert erről tudom, hogy csendes.
Viszont lehet, hogy egy A4988-ban több a lehetőség programozás szempontjából. Érdemes utánanézni. Én nem tettem, csak tudtam 3D nyomtató tapasztalatból, hogy ez hangos meghajtó, míg a TMC2209 halk.
Én csak vettem pár különböző arduino darabot ebay-en rákeresve. Hogy pontosan milyen klón, nem tudom. Működnek.
Van köztük Mega wifivel is.
Már miért kellene ehhez serial port? Vannak olyan stepper driverek, amit nem is neked kell vezérelni gpio-n keresztül, hanem i2c-n át lehet programozni, például a wemos d1 mini motor shield, ami TB6612 drivert használ. Emiatt nem hogy mega, de az uno board-ról is lebeszélném, hacsak nem ragaszkodik hozzá oktatási vagy egyéb okból, inkább egy wemos board két ilyen shield-del (lehet stack-elni és akkor még nagyon jumperelni sem szükséges).
Bár most nézem, hogy ez csak dual motor shield, de van shield kimondottan stepperhez, illetve a dual H-bridge is alkalmas stepper vezérlésére, csak nem tudom a wemos shield i2c/library szinten támogatva van-e.
[ Szerkesztve ]
5150head
senior tag
Semmi extra. Egy adott sebességen forgó steppert akarok csak egy csillagászati mechanikához. Visszakeresve volt itt olyan aki már épített, de ha jól emlékszem ő go-tot, ami magától rááll egy objektumra. Neki írtam már pm-et de eddig nem válaszolt. Én egyelőre csak annyit szeretnék, hogy a föld forgását kövesse le.
Wokwiban ezt hoztam össze, nyilván lelesve innen-onnan a kódot, most kezdtem csak foglalkozni a dologgal. [link]
Esetleg annyit jó lenne még megoldani, hogy két gombbal tudjam csak egy pillanatra ameddig nyomom a gombot gyorsítani/lassítani a forgást, meg lenne mondjuk egy on/off.
Később majd a másik tengelyt is motorizálnám.
JulianSinulf
senior tag
Tök jó!
Én erről még nem hallottam.
És ez tud olyat, hogy adott lépést megy a motor?
Janos250
őstag
Attól függ, mit akarsz. Azt hiszem nem meglepő, hogy én nem az ezeréves UNO-val hanem nagyjából ugyanannyiba kerülő, vagy olcsóbb, de jóval korszerűbb, hosszabb távon is megfelelő ESP32-vel csinálnám. Lehet hozzá kapni kicsi panelt, amivel lehet csatlakozni.
https://vi.aliexpress.com/item/1005005677080016.html
Én is vettem ilyet, de nem használom, mert korábban készíttettem JLCPCB-n eléggé univerzális 100x100 mm-es ESP32 panelt, aminek lefelejtettem egy vezetékét, ezért a túloldalán van egy vezeték, így már snassz megmutatni valakinek, kidobásra lettek szánva, de tökölődésre megteszi, így ezeket használom, sajnálom kidobni.
Van konkrét példa is ESP32 és léptetőmotor hajtására, pl.:
https://www.youtube.com/watch?v=JQGnLW6SB8M
A TMC2209 jó, korszerű, hosszabb távon is lehet rá számítani, de drágább, mint az egyszerűbbek, mint például az általánosan használt A4988.
Vannak persze mindenféle kész shieldek is, de én nem olyat használnék, de ízlés dolga.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Erre sajnos nem emlékszem.
JulianSinulf
senior tag
Ezzel a videóval csak az a baj, hogy ez sem a TMC2209-et mutatja be.
A múltkor is néztem egy videót, ahol éppen csak a végén megemlítették, amúgy meg az A4988-at használták. Mérges is voltam, mert fölöslegesen néztem meg. Persze a címbe, meg a kezdő képbe bele kellett tennie a TMC-t is.
Egy blogbejegyzés és videó alapján indultam el a dologgal. Tudtommal az illető a mai napig nem tette közzé, hogy befejezte e az asztalt vagy sem. Ha tippelnem kellene, akkor nem fejezte be.
Ráadásul ma már jó pénzért lehet olyan lézervágókat kapni, aminél nem kell vacakolni a fókuszbeállítással, mert megcsinálja a gép magától.
5150head
senior tag
Nyitott vagyok bármire, mivel nincs berögzülve nálam semmi.
Azért unora gondoltam mert ahhoz rengeteg leírás, guide van. Gyorsan és egyszerűen össze lehet dobni.
Nyilván ha gotosítani szeretném akkor ahhoz kell egy pc vagy egy astroberry szerver.
A lényeg, hogy hamit írtam, azt a lehető legegyszerűbben és legolcsóbban megoldani.
Ha nem muszáj pl nyákra nem forrasztanék, annyira nem vagyok gyakorlott.
Janos250
őstag
" ez sem a TMC2209-et mutatja"
Nem, persze, de az elve ugyanaz. Mert akkor még valószínűleg nem volt divat a TMC2209.
A TMC2209 kétségkívül jó, tavaly én is azt vettem, mert "a következő ötéves tervben" szerepel egy ESP32-vel megépített, panel, ami tartalmaz léptetőmotor meghajtókat, érzékelő kapcsolókat, FET-es "nagy áramú" kimenetet, SD kártya olvasót, stb.
(vagyis, ami egy CNC-hez kell)
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Amit linkeltél, az is jó. Az az egyszerűbb olcsóbb léptetőmotor vezérlő is jól használható. Gyakorlatilag egyformák ezek. Megvan, mit kell a tekercsekhez kötni, van irányt megadó bemenete, és "lépj egyet" bemenete. Van pár pinjük, amivel be tudod fixen, drótozni, hogy milyen legyen a microstep, ha akarod (microstep, amikor nem egész lépést tesz, hanem valahol közte megáll)
A többi szoftver kérdése. Meg kell csinálnod egy szabályt, algoritmust, hogy milyen időközönként léptessen. Olyankor ad egy "lépj egyet" jelet. Ennyi. Az ESP32 annyival jobb, mint az UNO, hogy korszerűbb, hosszabb távon is jó. Ami program az UNO-n megy, annak általában az összes többin (pl. ESP32-n is) kell mennie, hiszen az is Arduino.
ESP32-nek még előnye, hogy van benne WiFi, így később ha kedved szottyan, tehetsz rá WEB szervert, és telefonon keresztül állíthatod a paramétereket.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
5150head
senior tag
Akkor vissza a kályhához
Van ajánlott klón ami tuti jó lesz, vagy csak válasszak valamit aliról és ennyi?
Ha jól értem, akkor az ESP32 az unot váltaná fel, csak korszerűbb kivitelben, viszont kell hozzá egy alap board.
A TMC2209 meg halkabb meg újabb mint az A4988, ha jól értem.
Érdemes egyébként starter kitet venni, majd ahhoz még amit kell, vagy csak vadásszam össze ami jó lehet?
Janos250
őstag
Az ESP32-t most néztem Alin:
US $3.59
Price includes VAT
· Free shipping
· Fast delivery 13-day delivery by Apr 03 - 09
Ennyiért UNO-t se kapsz!
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Ha jól értem, akkor az ESP32 az unot váltaná fel, csak korszerűbb kivitelben, viszont kell hozzá egy alap board.
Lehet venni ESP32-t magában is, de senki nem teszi, vannak UNO-hoz hasonló board-ok usb-vel, visszajelző ledekkel, headerrel stb, Janos250 kolléga is ilyen kész board-okat illeszt saját pcb-re, hogy ne kelljen huzalozni/jumper kábelt használni. Ilyen board többféle van, Lolin, Wemos, NodeMCU, XY developer board néven találod meg. Olyat vegyél, ami usb csatlakozót tartalmaz, ahhoz nem kell külön programozót is venni. Például ilyen esp32-s3 board-ot: [kép]. De találsz olyat is, amin van egy kis OLED kijelző, ami szintén hasznos lehet.
Érdemes egyébként starter kitet venni, majd ahhoz még amit kell, vagy csak vadásszam össze ami jó lehet?
Attól függ, mit szeretnél. Ha szükséged van sok kiegészítőre, szenzorra stb mert nem tudod előre, mit szeretnél, akkor jó lehet, de olcsóbb, ha pl az Ali-n összekattintgatsz mindent külön, ami kell.
[ Szerkesztve ]
Undoroid
őstag
Sziasztok Szakik!
Két kérdésem lenne egy ESP01S-el kapcsolatban!
1. Programozás előtt vagy után tegyem fel rá a DEEP SLEEP-es átkötést vagy az teljesen mindegy?
2. Programozni szeretném (megvan a hozzá való eszközöm) de ha jól emlékszem, akkor kell rá valami átkötés (?) is az adatátvitel megkezdése előtt...vagy nem kell és különben se igyak annyit szerelés közben?
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
olli
tag
By cool !
Undoroid
őstag
Szia!
Köszi, ezt már valamikor már olvastam! Viszont nem akarom frissíteni a firmware-t, hanem csak egy önállóan működő programot szeretnék rá telepíteni! Egészen pontosan EZT! Vagy első használat előtt fel kell telepíteni valami boot-loader félét?
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
Janos250
őstag
Hogyan lehet használni C++ -ban a unionban benne lévő másik uniont?
Erre a programrészre:union dataFrame1 {
uint8_t bytes6[6];
union x {
uint8_t code[5];
uint8_t code2;
};
} ;
dataFrame1 proba1 ;
proba1.x.code2 = 1 ;
A következő a hibajelzés:
invalid use of 'union setup()::dataFrame1::x'
Tudom, meg lehet kerülni, de én így szeretném megoldani, hogy egymásba ágyazott unionokkal.
Miért nem jó így?
Hogyan kell?
Közben meglett: a union nevet a végére kell tenni :-(
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Viszont nem akarom frissíteni a firmware-t, hanem csak egy önállóan működő programot szeretnék rá telepíteni
Vagyis frissíteni akarod rajta a firmware-t
Vagyis mi a helyes megfejtés? rájöttem.
[ Szerkesztve ]
Janos250
őstag
Aztán, persze nem igazán sikerült megértenem a lelki világát, hogy pl.union x {
uint8_t a;
uint8_t b;
} y ;
Ebben mi a különbség az x és az y között?
Rendben, hogy x a típus, y meg a változó neve, de azért nem sikerült teljes mélységében magamévá tenni. Például a korábbi mintapéldában.
Bonyolultabb esetben (többszörös beágyazások), ha valami hiba van, és az y helyén nincs semmi, akkor hibajelzésként a unionra nem "unnamed union", hanem "unnamed struct" hivatkozik.
Ezek szerint, a union számára egy struct, csak az elemeit egymásra címzi?
Meg lehet azt adni, hogy egy sima struct elemei ugyanazt a memóriaterületet használják, azaz a fenti példában ha az uint8_t b helyére megfelelőt írok, akkor közösen használják?
Mert rendben van, hogy tömbnél ezt hasznáhatom, hogy megadom a címet, pl:volatile uint32_t* SHA_TEXT_0_REG_array_32 =
((uint32_t *)(0x3FF03000));
És akkor érvényes, értelmes pl. az:SHA_TEXT_0_REG_array_32[i] = 0;
(mert ezt épp most írtam, és jó)
viszont, ha nem tömb, hanem egyszerű változó, akkor is meg tudom adni, hogy egy konkrét címre, vagy egy mások változó "tetejére" rakja?
Structnál is megy, de egyszerű változónál hogyan?
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
ekkold
Topikgazda
Lényegében egy pointert hoztál létre, amit utána úgy indexeltél egy változóval, mintha egy tömb lenne. Ezt megteheted, de tudni kell, hogy ilyenkor nem történik memória foglalás, mint egy tömb vagy sima változó esetén (csak a pointer számára foglal memóriát), tehát ha nem jó címre írsz, elszállhat a programod.
Ezt megteheted sima változó esetén is, foglalhatsz memóriát dinamikusan, vagy létrehozhatsz konstans pointert is.
uint32_t * kodszam = ((uint32_t *)(0x3FF03000));
*kodszam = 0 //az adott fenti címre beírja a nullát
kodszam[0] = 0 //ez ugyanezt csinálja
[ Szerkesztve ]
Egész délelőtt azon gondolkodtam, hogy milyen gyakorlati értelme lehet ennek a kódnak:
union dataFrame1 {
uint8_t bytes6[6];
union {
uint8_t code[5];
uint8_t code2;
} x;
} ;
azon túl, hogy proof-of-concept.
JozsBiker
aktív tag
Sziasztok !
Van egy Arduino programom ami a SETUP -ban különböző beállításokat végez, delay -eket is használva. Szeretnék egy sátusz LED -et, ami villogna addig amíg végére nem ér a SETUP, ezzel jelezve a használónak hogy még nem üzemkész az áramkör.
Nem vagyok benne túl mélyen a programozásba de úgy olvastam hogy megszakítással lehet az ilyen dolgokat "programfüggetlenül" megoldani. Utána viszont azt is olvastam, hogy a delay utasítás bezavarhat. A SETUP -ban nincs jelentősége a delay -ek pontos idejének, akár pár 100 ms -nak sincs jelentősége, viszont fontos lenne hogy nehogy kiakadjon a program vagy ilyesmi.
Tudnátok valami jó megoldást javasolni ?
[ Szerkesztve ]
Janos250
őstag
Gyakorlati értelme?
Hát az, hogy egy szerűbb példát kérdezzek, és ne ezt:union dataFrame {
uint8_t bytes6[6];
struct {
union {
uint8_t code;
struct {
uint8_t opcode : 4;
uint8_t RSV3 : 1;
uint8_t RSV2 : 1;
uint8_t RSV1 : 1;
uint8_t FIN : 1;
} byte0struct;
}byte0; // byte0
union {
struct {
uint8_t payloadLen : 7;
uint8_t mask : 1;
} maskPayload;
uint8_t byte1data;
} byte1; // byte1
uint8_t masking_key[4];
} dataFramestruct ;
}; // union dataFrame
dataFrame frame1 ;
Ez a WEBsocket data protokolja.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Kösz, de éppen azt szeretném, hogy ne kelljen csillagozni!
Ne *kodszam = 0
hanem kodszam = 0
legyen, de rájöttem, hogy ezt nemigen lehet, mert a fordító nem fog úgy fordítani, hogy a változót az általam megadott helyre tegye, ha nem pointer. :-(
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Mert akkor pl. az opcode-ot így kapom meg:msgtype =frame1.dataFramestruct.byte0.byte0struct.opcode ;
Tudom persze, egyszerűbb bizonyos szempontból,ha rákérdezek, hogy 81 az első byte?
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Ez attól is függ, milyen lapot használsz, mert például ESP32-n biztosan tudom, hogy van szál, ott mehet külön szálon amit a setupban akarsz, és egy másikon a villogás, és bevárják egymást.
Hogy ez mondjuk UNO-n is van, arra nem vennék mérget.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
JozsBiker
aktív tag
Ez még UNO/Nano.
De nem érted, unionba másik uniont tenni, annak mi értelme? Ugyanazt az egy byte-ot 3 különböző néven elérni?
A most linkelt (WEBsocket) példának látom értelmét, mert unionban struct van és fordítva.
Janos250
őstag
A problémám a beírt WEBsocket dataframe-nél volt, mert nem tudtam elérni valamelyik bitet, mert a unionnak csak az elejére tettem nevet, a végére nem. Viszont megpróbáltam a problémát egy egyszerűbb példára leegyszerűsíteni, mert ha a teljeset írom be, szerintem sokan csak vakarták volna a fejüket, hogy mi a fenét is akarok. Annak a példának a gyakorlatban semmi más értelme, mint hogy megkérdeztem, hogy hasonló esetben hogyan kell csinálni.
Azóta már próbáltam a netről tanulni. Ami nevet a union elejére írunk, az típus. Mint például az, hogy "int". Azt csak ugyanarra, vagyis új létrehozására használjuk, mint pl. az int-et.
Viszont a végére írt, az a terület neve.
Példával élve:int pelda ;
Ebben az int-nek "felel meg" a union elejére írt név, a "pelda"-nak meg a union végére írt.
Mivel a példában csak a legkívül álló egységgel hozunk létre, foglalunk le területet, csak ott SZÜKSÉGES a típus név. Ott előre is kell írni. A belsőkben már nem kell, mert azok már a terület egy részét mutatják, az már "változó név", azt a végére kell írni.
"Ugyanazt az egy byte-ot 3 különböző néven elérni?"
Ha másként daraboljuk, például bitekre, akkor van értelme.
A példával (a hosszabbal) élve:
Először beolvasom a 6 byte-ot, mert az a protokoll fejléce, annyi mindenképp jön. Utána az egyes részeket vizsgálom, akár bitenként, mert például a FIN bit azt jelenti, hogy nincs több csomag, ez az utolsó, ha az opcode = 1, akkor egy egyszerű adatcsomag következik, ha meg nyolc, az a close, akkor agyon kell csapni a klienst. (néhány házaló klienssel is szívesen megtenném )
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Ha másként daraboljuk, például bitekre, akkor van értelme
Én is ezt mondom: ha másként darabolod, akkor van értelme, de az eredeti példának nincs.
De értem az egész problémát, és igazad van.
Janos250
őstag
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
ekkold
Topikgazda
Hacsak nem használsz erre #define -t
Pl.
#define kodszam (*kodszampointer)
......
uint32_t * kodszampointer = ((uint32_t *)(0x3FF03000));
......
kodszam = 0;
....
kodszam ++;
.....
[ Szerkesztve ]
ekkold
Topikgazda
Másik lehetőség (lefordul, kipróbáltam):
const uint32_t &kodszam = 0xFFFF0000;
void setup() {
printf ("%ld", kodszam);
}
Ennek annyi a hátránya, hogy így a kodszam csak olvasható, írni (értéked adni neki)nem lehet.
Janos250
őstag
Ügyes!
Majd a másodikat is kipróbálom.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Ez nem teljesen nyerő, mert nem a tartalmat írja ki, hanem magát a címet.const uint32_t &kodszam = 0x3ff0001C;
printf ("kodszam = 0x%X\n", kodszam); // kodszam = 0x3FF0001C
Pedig ennek a tartalma nem a címe, mert ez az SHA CLK engedélyezését tiltását tartalmazza.
Úgy tűnik, * nélkül nem oldható meg, legfeljebb define-al el lehet rejteni a csillagot.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
ekkold
Topikgazda
Dehogynem attól még, hogy nem tömb, lehet így is használni (ha tudod mit csinálsz):
#define kodszam (kodszampointer[0])
Undoroid
őstag
Tehát, akkor Vagy első használat előtt fel kell telepíteni valami boot-loader félét? Lehet, hogy fogalomzavaros a kérdésem, de ez az idegen nyelvezetű megfogalmazás pont arra jó, hogy a kezdő ne értse meg az alap dolgokat...
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
Janos250
őstag
Igen, de épp az volt a kérdés, hogy tömb nélkül lehet-e?
Ha azt írom, hogy:const uint32_t &kodszam = 0x3ff0001C;
És []-teszek mögé, akkor az már töm, és épp az volt a kérdés, hogy:
Mert rendben van, hogy tömbnél ezt használhatom, hogy megadom a címet, pl:volatile uint32_t* SHA_TEXT_0_REG_array_32 =
((uint32_t *)(0x3FF03000));
És akkor érvényes, értelmes pl. az:SHA_TEXT_0_REG_array_32[i] = 0;
viszont, ha nem tömb, hanem egyszerű változó, akkor is meg tudom adni, hogy egy konkrét címre, vagy egy mások változó "tetejére" rakja?
Vagy rosszul értelmezem?
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
ekkold
Topikgazda
Attól még, hogy * helyett [0]-t használsz nem lesz belőle tömb.
...firmware alatt azokat a rögzített, többnyire kis méretű programokat és/vagy adatstruktúrákat értjük, melyek különböző elektronikai eszközök vezérlését végzik el.
Forrás: Wikipédia
Vagyis egy okoskonnektor szemszögéből nézve a benne lévő esp 01-en futó program (mivel a gyakorlatban bele van "égetve") egy firmware.
Mai Hardverapró hirdetések
prémium kategóriában
- LG UltraWide 38WN95C-W Monitor 1 év Garancia
- iMac 2017 27" Retina 5K CTO / i7 4.2 GHz / 40 GB DDR4 / 1 TB SSD + doboz
- iMac 2017 27" Retina 5K CTO / i5 3.8 GHz / 40 GB DDR4 / 1 TB SSD / Radeon Pro 580 8 GB + doboz
- iMac 2017 27" Retina 5K CTO / i7 4.2 GHz / 40 GB DDR4 / 500 GB SSD / Radeon Pro 575 4 GB + doboz
- MacBook Pro 14 M3 Pro, Space Black, 18 GB RAM, 512 GB SSD Bontatlan