-
GAMEPOD.hu
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.
Új hozzászólás Aktív témák
-
JozsBiker
aktív tag
Úgy látom még nem volt itt téma: vezérlés Android -os készülékről.
A videó végigvisz a teljes - nem túl bonyolult - folyamaton, különösebb angol nyelvtudás nélkül is össze lehet hozni:[ Szerkesztve ]
-
JozsBiker
aktív tag
A dolog lényege, hogy a ketyere léptet egy számlálót ezredmásodpercenként onnan hogy feszültség alá helyezed, egész addig míg ki nem kapcsolod ( jó, nyilván ha a számláló megtelt akkor nullába fordul és onnan folytatja, de az jó sok idő, kb. 50 naponként következik be ). Az időmérés úgy zajlik, hogy amikor el akarod indítani a mérést kiolvasod ennek a számlálónak a pillanatnyi értékét egy változóba a millis() függvénnyel. Ezzel tulajdonképpen "elmented az aktuális időt". Ezután pedig csak annyi a dolog, hogy figyeld, hogy a millis() -el kiolvasott érték és az általad a változóba elmentett érték ( tehát tulajdonképpen az aktuális idő és a lementett időpont ) különbsége elérte-e már az általad kívánt értéket, azaz a Te esetedben az 15000 ms -ot.
Nem kell várakozó ciklusban figyelni, elég ha a loop -on belül van egy lekérdezés és ha még nem teljesül a feltétel mehetsz tovább, a loop maga úgyis ciklikusan végrehajtódik. ( A belinkelt példát tényleg érdemes végigbogarászni, még ha az angol magyarázó szöveg nem is világos, a programot lehet értelmezni. ) -
JozsBiker
aktív tag
Nem tudom a megoldást, de itt
a rajza, alul van egy komparátor és egy FET, ami elvileg úgy működik, hogy a komparátor kimenete kapcsolgatja a FET -et attól függően, hogy jön-e az USB felől feszültség vagy sem. Tulajdonképpen ez határozza meg, hogy az áramkör az USB tápról vagy külsőről működik.
Persze ezzel még nem magyaráztam meg semmit, hiszen - ha jól értem - amikor melegszik csak az USB van rádugva a panelra. A rajz bal felső sarkában vannak a táp IC -k, elvileg üzemszerű hogy az 5 V rájusson a kimenetükre. -
JozsBiker
aktív tag
A rajz szerint érdekes módon éppenhogy az USB táp ágában van a védelem ( lásd rajz közepén az USB csati utáni F1 jelű 500 mA -es fuse ). Illetve nem is érdekes módon, mert az az oka, hogy ne terhelhesd túl amire rádugod, mondjuk a számítógépet.
Egyébként ha a 12 V -ról tényleg jól működik a ketyere akkor elméletileg megoldható amit írsz, hiszen az USB 4 eréből a tápot kell csak valahogy elnyisszantani ( lásd rajzon hogy miről beszélek ), az adat adás és vétel, valamint a föld maradjon. De felelősséget nem vállalok :-) -
JozsBiker
aktív tag
Időközben (én is) szanaszét szívattam magam. A tapasztaltabbak biztos mosolyognak, de hátha valaki okul belőle.
Nemrég rendeltem egy HC-06 bluetooth modult, és persze szerettem volna ki is próbálni. Kerestem egy szájbarágós videót ami alapján életre tudom kelteni, ezt találtam:Összeraktam eszerint a kapcsolást, feltettem az appot, összelőttem, és ... sehogy sem akart rendesen működni. Utánakeresgéltem a neten, és először akkor izzadtam le mikor azt írták, hogy a BT modul Rx ágának bizony túl sok az 5 V -os szint amit az UNO panel ad, hanem le kell osztani 3,3 V -ra. Na, gondoltam, el is küldtem az újdonsült BT modulomat. De kiderült hogy kibírta. ( Sőt, azóta már láttam több példában is közvetlenül összekötve, szóval nem tudom mi az igazság. )
No akkor mi lehet a gond, hiszen mindent úgy csináltam ahogy a videóban van, ill. a benne hivatkozott oldalon. Furán villogott a 13 -as pin -en levő led amikor 1 -et küldtem, és a vett adatban is duplán szerepelt a "LED: on". De miért ? Aztán mikor a kiküldött adatot egyszerűen visszafordítottam a vételbe és a soros monitor ablakon megláttam, megvilágosodott. Ezt láttam:42
49
50
124
57
57
124
57
57
124
49
35Vagyis amikor én azt hittem hogy egy 49 -es ASCII kódú '1' megy ki, akkor a fenti számsort kapta a panel. Nosza, nézzük meg mi van ha 0 -t küldök:
42
49
50
124
57
57
124
57
57
124
48
35Látható, hogy benne van a 48, azaz a 0 ASCII kódja, node a videóban szereplő rövidke program ezt a kódsort gyakorlatilag nem kezeli le, szinte csak a véletlen műve hogy működik a led kapcsolgatás.
A korrekt Arduino kódot ittlehet megtalálni. Pöttyet összetettebb azért.
-
JozsBiker
aktív tag
válasz DrojDtroll #472 üzenetére
Ha van rá lehetőséged próbáld meg másik gépről ill. másik madzaggal. Ha abszolút semmi életjelet nem ad próbáld ki esetleg külső tápról is.
Persze sajnos maga az Arduino is meghibásodhatott, pl. ha sztatikusan feltöltődve oda nyúltál ahova nem kellett volna. -
JozsBiker
aktív tag
válasz DrojDtroll #472 üzenetére
Még esetleg azt is nézd meg a gépeden, hogy az Arduino -s USB porthoz az a COM port szám van-e rendelve amit gondolsz.
[ Szerkesztve ]
-
JozsBiker
aktív tag
Ha jól értem itt nem(csak) az az igény, hogy egyszerre legyenek írva a portok, hanem - gondolom - minden szervónak van egy kezelő rutinja, és azokat kvázi párhuzamosan kellene futtatni.
Esetleg készíteni lehet minden szervónak egy-egy függvényt ( funkciót, szubrutint, ki hogy szereti ), amiket a főprogramból ( loop ) egymás után meg lehet hívogatni. Ezek ugyan nem egyidejűleg futnak, de talán be lehet úgy lőni, hogy egy-egy függvény csak kevés ideig fusson, utána induljon a következő, majd a következő, stb, ciklikusan.
Vagy ha nagyonnagyon időkritikus az egész, és árban belefér, akkor minden szervóhoz külön Arduino ( mini v. nano ). -
JozsBiker
aktív tag
Szia !
Azért nem értem a kérdésed, mert ha egy ilyen programot sikerült összehoznod ( amihez nyilván kellett a telefon oldali rész is, ami szintén nem annyira egyszerű ), akkor miért nem tudod könnyűszerrel átírni több LEDesre :-)
Első közelítésben az jutott eszembe, hogy az adatcsere legkisebb egysége a byte, aminek ugye 256 különböző állapota lehet, tehát bőven el lehet benne kódolni 4 LED állapotát.
Vagy ha mégsem, akkor egymás után küldözgetni. Van egy elválasztó karakter, pl. * , utána szépen sorban küldöd a 4 LED állapotát. Olvasáskor a * -ból tudod hol tartasz.Épp nemrég fejeztem be egy "projektet", ami 64 db LED -det vezérel Androidról. Igaz, itt csak egyirányú a kommunikáció. Ennél úgy oldottam meg, hogy minden kigyújtásnál ill. oltásnál el van küldve a LED sorszáma, és egy + vagy - karakter attól függően hogy kigyújtani v. eloltani kell-e.
Tökre ugyanaz lett, mint ebben a videóban :
-
JozsBiker
aktív tag
Szerintem is igaza van Danex -nek, a feladat leírása alapján tipikusan while -lal kellene operálnod. 6 db while ciklus és kész. Az első addig fut, amíg az első tag -et meg nem kapja. Ha nem azt kapja akkor hibaüzenet. Ha megkapta megy a második while -ra ami a második tag -et várja, és így tovább.
Abban is igaza van Danex -nek, hogy így strukturálatlanul képtelenség áttekinteni a kódot.Valahogy így:
idnumber = ""; // Adunk egy indulóértéket ami biztosan nem egyezik egyik UID -vel sem
while ( idnumber != myUID1 ) // Amíg nincs egyezés nem lép ki a ciklusból
{
NfcTag tag = nfc.read();
idnumber = tag.getUidString();
if ( idnumber != myUID1 ) Serial.println("Not correct tag!");
}
Serial.println("This is the first"); // Megvan az első, hiszen elhagyta a ciklust
delay(4000);while ( idnumber != myUID2 )
{
NfcTag tag = nfc.read();
idnumber = tag.getUidString();
if ( idnumber != myUID2 ) Serial.println("Not correct tag!");
}
Serial.println("This is the second"); // Megvan a második, hiszen elhagyta a ciklust
delay(4000);stb.
De biztos van egyszerűbb megoldás is :-)
-
JozsBiker
aktív tag
Az egyik gond az lehet amit úgy látom többen is írtak, hogy az olvas() helyett loop() kellene.
Én a While használatában is problémát látok. A While ciklus addig megy, amíg a feltétel teljesül. Ha a While az elején van akkor lehet hogy egyszer sem fut le ( ha a feltétel nem teljesül ), míg a Do ... While egyszer mindenképpen lefut, és a végén van vizsgálva a feltétel. Ha teljesül akkor elölről kezdi, ha nem teljesül, kilép.
Te a flag -et 0 -ról lépteted, és gondolom azt akarod, hogy ha elér 2 -ig ( max_tomb ) akkor kilépjen a ciklusból. Viszont már az első lefutás után kilép, hiszen a megadott feltétel nem fog teljesülni.( Zárójelben jegyzem meg, hogy programozástechnikailag szerencsésebb
volna nem úgy megadnod egy feltételt hogykonstans == változó
hanem így:
változó == konstans
Hiszen a változóhoz viszonyítunk. )
[ Szerkesztve ]
-
JozsBiker
aktív tag
válasz Pubszon #1914 üzenetére
Értem. Nem ekarok hülyeséget írni, de mintha hajdanán azt olvastam/tanultam volna ezekről a változókról, hogy a kisebb helyiértéken pontatlanok. Ha megnézed, a tartományaik is hatványkitevős formában vannak megadva, ami nem (csak) azért van hogy ne kelljen annyi számjegyet leírni, hanem mert a program is így kezeli. Így lehet hogy nem is alkalmasak arra a célra, amire Te szeretnéd használni. De azért nézz utána ha biztosra akarsz menni.
-
JozsBiker
aktív tag
Az Arduino UNO -mhoz nemrég vettem ebay -en egy Ethernet Shield -et, és első közelítésben sajnos nem akar működni. Amikor bekapcsolom fixen világít a piros pwr led -je, de azon kívül sok életjelet nem ad, hiába dugom rá a hálózati madzagot. További gond, hogy ha rá akarok tölteni valamit, akkor ez a hibaüzenet jön:
avrdude: stk500_getsync(): not in sync: resp=0x00
Egészen pontosan bármit próbálok rátölteni ( tehát akár a Blink -et ), ez a hibaüzenet jön amíg rajta van a shield. Ha leveszem, minden oké.
Rákerestem persze neten, az egyszerűbb javaslatokat ki is próbáltam, de olyat is írnak, hogy a shield reset -jének ideje túl rövid ezért rá kell forrasztani ey plusz kondit, meg ilyenek, de gondoltam mielőtt drasztikusabb lépésekre szánnám magam, megkérdezlek Titeket, hogy tudtok-e valami jó megoldást.Itt azt írják, hogy az összes ethernet shield hibásan működik, ami kicsit hihetetlenül hangzik.
[ Szerkesztve ]
-
JozsBiker
aktív tag
Okés, de ha így csinálom sem ad semmi életjelet. Legalábbis úgy gondolom, még hogyha abszolút rossz IP adatokat adok is meg ( a DhcpChatServer -t próbálom ), akkor is valami státusz led -nek ( Layer 1 ) világítania kellene a shield -en ha rádugom a hálózati madzagot. Meg a router -nek is jeleznie kellene hogy egy aktív eszköz került a portjára.
-
JozsBiker
aktív tag
válasz JozsBiker #2075 üzenetére
Azt vettem észre, hogy a shield az alap panel működését is lefogja. Tehát ha pl. betöltöm a Blink -et, csak akkor villog a led, ha nincs rádugva a shield. Akkor ez kuka ha jól gondolom . Az a jó, hogy eddig is rekord időt vártam rá, október végén rendeltem, és bő 1 hete érkezett meg
[ Szerkesztve ]
-
JozsBiker
aktív tag
Sajnos nem táp gond van az Ethernet shield -emnél, hanem valami más. Próbáltam úgy is, hogy nem az arduino panelra dugtam rá, hanem összemadzagoltam a 10-13 pineket meg a tápot. Úgy már "vette" a beletöltött programot ( nem jött hibaüzenet ), de a link nem állt össze, azaz a routeren nem ment át aktívba a port. Szóval ez tényleg kuka.
Szerencsére amikor a shield -et rendeltem rutinosan rendeltem mellé egy ENC28J60 Ethernet modult is, és azt már életre tudtam kelteni.
-
JozsBiker
aktív tag
Sziasztok !
ESP8266 -ot szerintetek ráköthetem közvetlenül a számítógép soros ( nem USB, hanem a 9 pólusú canon ) portjára ?
-
JozsBiker
aktív tag
Sziasztok !
Olyan problémám van, hogy szeretném a 8x8 -as LED mátrix pontjait web oldalról vezérelni. Ehhez az Uno -t használom web szervernek, és ENC28J60 -al kapcsolom a hálózatra. Ez alapján csináltam:
Tulajdonképpen kész is van és működne is, csak az a gond, hogy csak 8 darab LED -ig működik. LED -enként kb. 45 byte -tal növexik a html kód, és úgy tűnik a buffer -ben csak 8 LED -nyi hely van. 700 -ra van véve a mérete, és sajnos nem is tudom sokkal nagyobbra venni, mert pl. 1000 -nél már hülyén működik az egész.
Hosszas keresgélés után egy igazán használható megoldást találtam, csak elég sok homályos dolog van benne:Örülnék valami egyszerű megoldásnak.
Köszi. -
JozsBiker
aktív tag
Köszi !
( Elég bornyú vagyok, nincs két hete hogy ajánlottam ezt az oldalt tanulmányozásra ENC28J60 -al kapcsolatban. Ha jobban megnéztem volna, a 18. rész épp a mostani kérdésemmel foglalkozik. ) -
JozsBiker
aktív tag
Sziasztok !
Véletlen fordított polaritással sikerült az örök vadászmezőkre küldenem a HC-06 bluetooth modulom, így most hama-hama szükségem volna egyre. Tudnátok forrást javasolni, ahonnan gyorsan és nem arany árban lehetne szerezni ? Neten rákeresve bőven az eBay -es ár duplájáért találtam szállítással, talán tudtok kedvezőbbet :-) Köszi.
-
JozsBiker
aktív tag
Ha már így szóba került a HC-06. Miért áll 2 lapból vajjon ? Az "alaplapot" backplane -nek nevezik az eBay -en. Viszont a backplane -re rá van forrasztva az IC -ket hordozó áramköri lap, tehát még az sem lehet, hogy adott esetben cserélgesse az ember. És IC áramköri lapot nem is látom hogy lehetne külön kapni. Szóval nem értem.
-
JozsBiker
aktív tag
Sziasztok !
Egy HC-06 bluetooth modult összekötöttem egy UNO -val a serial porton ( UNO: 0. és 1. pin ).
Elindítottam a soros monitorozást.
Ami jön a bluetooth felől, azt látom rendben a monitoron.
Viszont amit küldök, pl. "AT" parancsot, arra nem jön válasz.
Kérdésem: kellene így ennek működnie ?Megj_1.: a HC-06 -nak küldött jelet leosztom 3,3 V -ra.
Megj_2.: nézegettem a neten példaprogramokat, és találtam olyat ami nem a 0. és 1. pineket használja, hanem más digitális pineket. Kipróbáltam, és úgy rendben működik, jön a válasz az AT -re.
-
JozsBiker
aktív tag
Köszi!
Nekem sajnos akkor sem megy az AT, ha a bluetooth nem kapcsolódik.Érdekességképpen kipróbáltam hogy az UNO 0 és 1 lábát összekötöttem, tehát visszahurkoltam a soros jelfolyamot. Ha jól gondolom ilyenkor a soros monitoron azt kellene látnom, amit elküldök. De nem látom, lehet hogy az UNO 1 -es ( soros adási Tx ) portja nyiffant ki. Nemsokára lesz egy másik UNO -m, ha azon jól működik, akkor bizonyosan az 1 -es pin a hibás.
-
JozsBiker
aktív tag
Sziasztok !
PL9823 programozható RGB LED -et használtatok már ? Össze vagyok zavarodva, mert ahány helyen nézem, annyi megoldás. Kérdéseim:
- kell előtét ellenállás a tápfeszre úgy mint a normál LED -eknél ?
- ha igen, akkor LED -enként kell, vagy összeköthetem a táplábukat és elég egy közös ellenállás ?
- milyen értékű kell ha kell ?Ezenkívül még olyat is láttam, ahol minden LED táplábaira tettek 100nF -os hidegítő kondikat.
Az első LED adat bemenetét gondolom közvetlenül ráköthetem az Arduino egyik digitális kimenetére (?)
Köszi.
[ Szerkesztve ]
-
JozsBiker
aktív tag
Sziasztok !
PL9823 programozható RGB LED -ekből készítenék órát ... természetesen Arduino -val :-)
Az óra 2 x 60 = 120 darab LED -ből áll. A normál működés során nem fordul elő, hogy néhány LED -nél több egyidőben világítson, így az Arduino 5 V -os kimenetéről simán lehetne járatni őket. A gyakorlat viszont az, hogy bekapcsoláskor amikor megkapják a tápfeszt, mindegyik világít egészen addig, amíg az Arduino el nem kezdi nekik nyomatni az igét. 120 darab LED -et úgy gondolom nem egészséges az Arduino panelről járatni.
Kérdésem az lenne, hogy valaki tudja-e esetleg, hogy hogyan lehetne ezt az induló felgyulladást megszüntetni. Köszi.[ Szerkesztve ]
-
JozsBiker
aktív tag
A hardver annyira egyszerű, hogy kapcsolási rajz sem kell hozzá :-). Az Arduino egyik digitális kimenete rá van kötve az első LED bemenetére, annak kimenete a második LED bemenetére, és így tovább 120 -ig.
( Van még RTC és egy bluetooth modul is, de azoknak nincs túl sok köze a problémához. )
A LED adatlapja: -
JozsBiker
aktív tag
Jó ötlet. Az az igazság, hogy láttam is olyan megoldásokat, ahol minden LED -en volt egy kondi, csak nem tudtam mi célból. Lehet hogy éppen ezért. Bár ha belegondolok, hogy 120 darab mütyür kondit kell a LED -ek mellé implikálnom ( a NYÁK már adott és nem lett kondiknak hely kialakítva ), lehet hogy inkább a tápot alakítom úgy hogy egyszerre el tudja vinni az összeset.
-
JozsBiker
aktív tag
Sziasztok !
Nekem is tápos kérdésem lenne. 5 Volttal szeretnék táplálni egy NANO -t. Jó ha a Vin bemenetére kötöm ? Csakmert az UNO -nál ha jól tudom minimum 6 V szükséges ha nem az USB bemenetéről járatjuk. Köszi.
-
JozsBiker
aktív tag
Akkor valószínűleg rosszul értelmezem az UNO adatlapját.
https://www.farnell.com/datasheets/1682209.pdf
Itt azt írja hogy 6 V a minimum.
-
JozsBiker
aktív tag
Sziasztok !
Azt szeretném kérdezni, hogy azokat a jellegzetes Arduino -s kapcsolási rajzokat milyen programmal lehet megrajzolni/létrehozni ?
-
JozsBiker
aktív tag
Valószínűleg ez az, csak elég problematikus az indítása.Egy bizonyosi DLL -t hiányol, amiről az oldalon az install lépéseinek leírásánál mélyen hallgatnak. Úgy kell előbányászni a fórumból, hogy menjek át a Microsoft oldalára, és onnan valami C könyvtárat tegyek fel egy elég bonyolult procedúrával. Még gondolkodom rajta hogy ér-e nekem ennyit. Köszi egyébként.
Apdét:
A fórumban találtam egy [linket], ahova valaki összegyűjtötte a hiányzó DLL -eket. Letöltöttem, bemásoltam, így már elindult a program.[ Szerkesztve ]
Új hozzászólás Aktív témák
- Ukrajnai háború
- WLAN, WiFi, vezeték nélküli hálózat
- Kormányok / autós szimulátorok topicja
- Helldivers 2 (PC, PS5)
- iPhone topik
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Megjelent az iOS 17.4, minden idők egyik legfontosabb iPhone-frissítése
- gban: Ingyen kellene, de tegnapra
- Autós topik
- Óra topik
- További aktív témák...