-
Fototrend
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
-
DigitXT
félisten
válasz
zsolti_20 #12011 üzenetére
Ezt inkább a telefon topikjában. Az utángyárott akksi lehet szar, eBayen árulnak
mindent... Mindent IS. Ami nagyon olcsó, általában szar is. Nem nagyon szokta
érdekelni a kínait, hogy amit ráír az konkrétan hazugság, még 18650-ben sem.Utóbbi azért volt itt releváns téma, mert azt lehet tápnak használni. Samsung S5
akkut nem. (Pont ma vettem egy 18650 töltőt tesztelésre... Telefon akkuhoz nem
tudom, mi lenne a jó: pl. az se rossz, hogy ha fele annyi időt bír ki, akkor kamu a
kapacitása, de esetleg az akku tömege is árulkodó, de csak akkor tudod lemérni,
ha már nálad van, szóval ha kiderül, hogy kamu szar, így jártál. Esetleg refund.)
-
PHM
addikt
válasz
zsolti_20 #12003 üzenetére
A TP4056-os panel akkuvédelmet is tartalmaz, ezért én az akkut
a B+ és B- pontokra, a csatlakozót pedig az OUT + és - pontokra kötném.
A panel ugye gyári állapotában 1A-es töltőáramra van méretezve,
ebből azt remélem, hogy a védelem ennél több áramot enged meg
a kimeneten. -
válasz
zsolti_20 #12003 üzenetére
Igen, így, ahogy rajzoltad. Arra vigyázz, hogy vagy védett cellát használj, vagy monitorozd az akkufeszültséget az egyik analóg bemeneten keresztül (feszültségosztóval természetesen), mert ha a TP4056 kikerül a dobozból, az akku védelem nélkül marad. És persze hülyevédett csatlakozót használj, amit nem lehet se usb-nek, se 12V-os adapter csatlakozónak nézni.
Vmi egyedi csatlakozó megfelelő poka-yoke-val.
-
Johnny_vT
senior tag
válasz
zsolti_20 #11997 üzenetére
Nem vagyok polip, hogy egyszerre nyolc gépet stopperezzek és közben még repüljek is (plusz ne adj Isten, esetleg részrehajló lennék...)
Nem sürgős a dolog, szerintem megépítem a sima BT változatot előbb, közben megrendelem a szintén aprópénzért kínált wifi modult és a végén megnézem melyiknek mekkora a hatótávja. Banggood-on a wifi modulra 20 méter+ véleményt írt egy vevő, annyi a legtöbb esetben már elég lehet talán. Az interferenciát meg majd meglátjuk. A rádiók elvileg LBT (listen before talk) szabványt követnek, így ha a wifi nem ugrál folyamatosan a sávok között, akkor működhet a dolog. Köszi a válaszokat!
-
Johnny_vT
senior tag
válasz
zsolti_20 #11995 üzenetére
Azért preferálnám a BT-t, mert abból már van itthon :) Plusz elképzelhető, hogy a wifi interferenciát okoz a többnyire szintén 2.4G-n működő rádiókkal, amit mindenképp szeretnék elkerülni. Minden esetre a hatótáv miatt megfontolandó amit írsz, plusz így sokkal kényelmesebben hordozható az egész, mert nem kell egy egész tekercs vezetéket cipelnem.
-
válasz
zsolti_20 #11992 üzenetére
Ha az oled is 3.3v, akkor szerintem mindenképp a 3.3v-ost válaszd, mert akkor mindent szintillesztés nélkül fogsz tudni használni. Tápláláshoz vagy egy boost-buck converter kell, hogy 3V akkufeszültség környékén is tudd használni a cuccot, vagy egy low dropout regulator, de akkor 3.5V akkufeszültség alatt már bizonytalan lesz a működés. Ha nagyon kis hely áll rendelkezésre, akkor az utóbbi könnyebben beférhet, de converterből is nagyon piciket tudnak már gyártani. Végső esetben, ha nagyon nincs hely, hagyd ki a TP4056-t, csinálj külön töltőt, ebbe tedd a töltő elektronikát, a készülékbe pedig csak egy csatlakozó aljzatot.
-
Janos250
őstag
válasz
zsolti_20 #11982 üzenetére
Most nem bogarászom át az RFID kezelőjét, de az általános elv az, hogy minden chipselectet passzívvá teszünk induláskor, és a kezelő program állítgatja magának, ahogy jólesik. Ha nem abszolút kezdő írta, akkor ez így is van. Szóval én kipróbálnám, hogy az összes chipselectet passzívvá teszem az elején, pl. a setupban, a loopban meg nem babrálnám.
-
Janos250
őstag
válasz
zsolti_20 #11979 üzenetére
Na, jó, még egy próbálkozás
Egyébként belenéztem, de ha nem tudjuk, mit hova kötöttél, honnan a fenéből találjuk ki, hogy pl. ez micsoda?digitalWrite(53, HIGH);
digitalWrite(46, LOW);
digitalWrite(47, LOW);
digitalWrite(31, LOW);
Az 53 ,46,47,31 micsoda?
Ezek lennének az SS lábak talán?
Az nem lehet, mert akkor az 53-at passzivvá, a többit meg egyszerre aktivvá teszed, tehát ezek valami mások. De mik? Hova vannak az SS lábak kötve, és hol van az a programban, ahol passzivvá teszed őket? Lehet, hogy Te úgy gondolod, hogy a szemlélő ezt megtalálja, de nekem nem sikerült.
Másik fórumban is irták már neked párszor, hogy ne hiányos kérdést tegyél fel, hanem úgy, hogy lehessen rá válaszolni. Ha mondjuk egy ilyen programrészt tettél volna fel, akkor már lehetne rá valamit válaszolni:digitalWrite(53, HIGH); // Ez a mondjuk villanykapcsoló pinje
digitalWrite(46, LOW); // ez meg az egyik SPI SS-e, amit aktivvá teszek ugyanúgy, mint a következő kettőt, mert....
digitalWrite(47, LOW);
digitalWrite(31, LOW);
-
-
Janos250
őstag
válasz
zsolti_20 #11975 üzenetére
https://upload.wikimedia.org/wikipedia/commons/f/fc/SPI_three_slaves.svg
Írták már itt neked, hogy minden eszköz chip select(enable,SS) lábát az Arduino külön-külön lábaira kell kötni, és programból biztosítani kell, hogy egyszerre csak egy legyen aktív, mert különben betartanak egymásnak. Miért nem hiszed el? -
válasz
zsolti_20 #11962 üzenetére
Az uno-nál is ki vannak ezek a lábak vezetve az icsp header-re.
A forrasztásoknál nincs rövidzárlat? Azt is kimérted multival? Akkor már csak az jöhet szóba, hogy a panel árnyékolja az antennát, de azt írtad, hogy akkor is ez van, ha csak a nano van beforrasztva. Tanácstalan vagyok, mint egy kisközség... -
_q
addikt
válasz
zsolti_20 #11945 üzenetére
Én csak az adatlapot próbálom értelmezni, javítson ki valaki, ha nem jól írom.
Tehát adatlap szerint az atmega2560 Operating Voltage Range (V)1.8 to 5.5 V között van. Ha minden igaz a board-on lévő IC 1.2 V droput-ot tud 800 mA-es fogyasztás mellett. Tehát ha USB 5 V-ot kötsz rá, akkor mondjuk 3.5-4 V közötti feszültséget fog kapni a MCU, tehát tud róla elvileg működni.
Az aksit azért írtam, mert ugye az aksi merül és szeretnéd minél tovább használni. Ez azt jelenti, hogy minél kisebb droput esetén fog a legtovább működni. Adatlap alapján 20 V-ot is elbír a DC-DC konverter. De tegyük fel te 12V aksiról működteted, akkor egészen lemerülhet az aksi 5-6 V-ig, mert így 3.5-4.5 V-ot fog kapni a MCU. Persze ezeket azért nézd meg multiméterrel is valóban így van-e. Én ezeket olvastam ki az adatlapokból.
(#11946) aryes
Persze én az USB bemenetre kapcsolt tápra írtam mindent, mivel a DC-DC konverter "jósága" volt a kérdés az első hozzászólásnál. -
-
válasz
zsolti_20 #11926 üzenetére
Merem feltételezni, hogy amikor az egyikhez odaírod, hogy
digitalWrite(8, HIGH);
ezzel egy időben odakerül mellé egy
digitalWrite(10, LOW);is, ami a másikat lekapcsolja az adatvonalakról...
Mégis mi a fenének a 330ohm ellenállás a MISO lábra?Tényleg én vagyok a hülye, hogy megint válaszolok, amikor megfogadtam, hogy nem írok többet, ha nem teszel fel kódot, hátha vaktában is ki tudjuk találni mi a hiba...
-
DigitXT
félisten
válasz
zsolti_20 #11923 üzenetére
Neeem... A "kinek" lesz a helyi változód, konkrétan a függvény paramétere.
Ha csak egy pipe-ot tud egyszerre nyitni, mi lenne ha lezárnád küldés után?Szerk: a szerkre, na igen, nem definiáltam a móricka példában i-t, my bad...
A fordító sipákolna!Vannak amúgy nyelvek, ahol nem, és így is lefutna, LOL.
Az az int változó amúgy nem a címnek kell, hanem a címek tömbjét címezni...
Mert ugye azért van a címeidnek tömbje, mert nem törvényszerű, hogy 1,2,3,4,5
az összes cím, lehetne öt tetszőleges számkombináció, viszont a ciklus csak a
tömb elemein lépdel végig, nem érdekli, hogy mi lesz az öt elem... Sőt valójában
az sem, hogy mire fogod használni a 0-4 közötti paraméterekkel hívott függvényt. -
DigitXT
félisten
válasz
zsolti_20 #11921 üzenetére
Baromi egyszerű, csak az alapfogalmakat kell ismerni. Kezdve azzal, hogy a
void az nem egy hasra ütött elnevezés, hanem a visszatérési érték típus... ún.
visszatérési érték nélküli függvények ezek (leánykori nevükön szubrutinok).
Mint függvények viszont paraméterezhetők, tehát írhatsz ilyen függvényt, hogyvoid kuldes(int kinek){
radio.begin();
radio.openWritingPipe(addresses[kinek]);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
const char text[] = "Hello World";
radio.write(&text, sizeof(text));
delay(1000);
}Ezt pedig utána úgy hívod meg, mint bármilyen más függvényt, pl. kuldes(1).
És ez kényelmesen ciklusba szervezhető, ha úgy gondolod, hogy egy gomb
mindent vigyen:
"if gomb 1 megnyom"
for (i=0;i<5;i++) kuldes(i);Szerk: ne feledd, hogy tömböknél az első elem címe nem 1, hanem 0.
-
-
-
DigitXT
félisten
válasz
zsolti_20 #11915 üzenetére
Nem akarok windischgrätz lenni, de tudod, hogy a const az mitől const?
Mert ha igen, akkor hogy gondoltad, hogy majd azt növelgeted?Megint olyan tippeket kérsz tőlünk, hogy nem látjuk, hogy mit csinálsz,
de ebből mondjuk meg, hogyan kell jól/jobban csinálni. Legalább valami
normális kódrészletet szúrj be, amiből látszik a probléma. Ezek megint
nem Arduino specifikus dolgok, hanem a tömbökkel vannak gondjaid. -
Janos250
őstag
válasz
zsolti_20 #11896 üzenetére
RFID:
Vigyázz, nehogy ilyet
https://www.ebay.com/itm/RC522-13-56Mhz-RFID-Module-for-Arduino-and-Raspberry-pi-new/311395182652?epid=1769319769&hash=item488099683c:g:RmwAAOSwB3BaCqPi
vegyél, mert használhatatlan, pedig elvileg nagyon kényelmes lenne. -
DigitXT
félisten
válasz
zsolti_20 #11896 üzenetére
A fele nekem kínai, de pl. az LCD-s baszakodás helyett nekem sokkal jobban
tetszik pl. az M5Stack beépített kijelzője. (Igaz, csak 3 beépített gombja van.)
Viszont pont azért stackable, mert vannak hozzá modulok, egymásra építhető.Szerk: van benne beépített SD kártya olvasó is. Meg hangszóró: gagyi de szól,
azaz kb. kettő perc alatt írsz példaprogramból mp3 lejátszót, nyilván nem nagy
zenei élmény céljából, de pl. visszapofázni a felhasználónak.Ez is gagyi, de
legalább van.Néha olyan érzés fog el, hogy az új kólaautomatákon is ilyen van. -
Janos250
őstag
válasz
zsolti_20 #11880 üzenetére
Mindig azt szoktam mondani, hogy mi a csudáért akarjuk egy nanoban, unoban tornászmutatványokat végezve elhelyezni az alig férő kódot, amikor sokkal korszerűbb elemei is vannak az Arduino vonalnak. És ez nem a mega, hanem pl. STM32, ESP8266, ESP32. Ezekben ugyanaz a program ugyanúgy fut le (általában), de sokkal nagyobb a memória, több a perifériás lehetőség, vagyis minden szempontból jóval korszerűbbek úgy, hogy gyakorlatilag nem, vagy alig drágábbak, mint pl. egy UNO.
-
válasz
zsolti_20 #11882 üzenetére
Pl. kell 1 kB adat, akkor vagy statikusan lefoglalod neki a helyet
unsigned char adat[1024];
vagy dinamikusan foglalod le, és akkor csak akkor foglal helyet, ha kell, és utána felszabadítod, ha már nem kell.
unsigned char* adat = malloc(1024); /* vagy calloc(1024, sizeof(unsigned char)), ha rögtön 0-ra is akarod memsetelni */
free(adat);Vagy
new
ésdelete
C++-ban, de azt hagyjuk. Előnye, hátránya mindkettőnek van, neked kell tudnod, mit akarsz csinálni. A dinamikus mindig a globális adatterületen foglal helyet, a statikus meg ott, ahol deklarálod a változót. -
-
-
zsolti_20
senior tag
válasz
zsolti_20 #11844 üzenetére
Sajnos nem sikerult kideriteni hogy ez egy tenyleges repeater vagy sem. De kicsit kiserleteztem vele es tobb node 01 is megadhato neki. A kerdes csak hogy amikor a base00 kuldi a jelet akkor mindketto node01 megkapja? Vagy csak az eggyik? A node 011 folyamatos mozgasban lenne igy egyszer a node 01-tol kellene kapnia a jelet egyszer pedig a node02-tol. De a kozgasban levo eszkoznel a network begin csak egy cimmel valaszthato ki ha jol gondolom. Igy ha pl a network begin 011 akkor a node01-tol tudja kapni csak a jelet, de jo lenne ha a node02 kozeleben van akkor onnan kapja utana de akkor a network beginnek kellene 012-nek lennie.
-
robohw
aktív tag
válasz
zsolti_20 #11784 üzenetére
Nem kerul ra az ido. Az RTC modul i2c buszon keresztul kapcsolhato az arduinohoz. Az a te feladatod, hogy kiolvasd az idot, vagy a datumot (homersekletet) a modulbol. A regi modulok feszultsegforrasa kimerulhet, de esetenkent toltheto. Van amelyik robbanasveszelyes.
-
gyapo11
őstag
válasz
zsolti_20 #11784 üzenetére
Nem tárolja az időt, hanem jár az óra. Ha beírsz egy dátumot-időt, akkor onnantól jár, ha egy másikat akkor onnantól. Mivel van ott egy elem, akkor is jár tovább, ha az arduinotól nem kap tápot.
Az arduino és a timer modul függetlenek egymástól, csak akkor kerül át idő a modulba, ha a megfelelő utasításokkal beleírod, és akkor kerül át az idő az arduinoba ha a megfelelő utasításokkal kiolvasod. -
válasz
zsolti_20 #11702 üzenetére
Szerintem nem ezt a kódot töltötted fel a kontrollerre, azóta változtattál rajta, mert tudom, hogy az történik, amit fent írtam, de csak akkor, ha néhány sor fel van cserélve a linkelt kódhoz képest.
Vagy ez a két sor:
char filename[] = "00000000.TXT";
char masodik[] = "00000000.TXT";
vagy a compiler a két változót fordítva helyezte el a ramban (ilyen lehet? miért?)
Ja, akkor már jöjjön a megoldás: a vargalex által írt megoldás csak abban segít, hogy fordítási hibát kapj, ha túlírod a változót. Adj meg kezdeti értéknek akkora számot, amitől hosszabb akkor se lesz a filenév, ha 9 mappa mélységbe ereszkedsz. Pl:
char filename[] = "00000000.TXT";
char masodik[] = "00000000.TXT";
helyett
char filename[255];
char masodik[255]; -
válasz
zsolti_20 #11698 üzenetére
Ez meg hogy jön ide?
A filename annyi lehet, amekkorára előtte definiáltad. Ha többet írsz bele, azzal olyan megmagyarázhatatlan hibákat okozol, mint most is.Én többet nem segítek, amíg nem írod be az egész kódot. Bár szeretek nyomozni, és már tudom is, mit követtél el.
-
válasz
zsolti_20 #11695 üzenetére
Miért nem mutatod meg az egész kódot!?
A "masodik" változó hol van definiálva? Jól látszik, hogy itt:printf(filename, "%s%02d%02d%02d.TXT",konyvtar2, now.day(),now.month(),now.year());
a "filename" változóba, amely egy 12 elemű több, beírsz egy 4 karakterrel hosszabb szöveget, ami azt jelenti, hogy felülírsz egy másik változóhoz tartozó memóriaterületet. Az a csoda, hogy egyáltalán lefut a kód. -
-
DigitXT
félisten
válasz
zsolti_20 #11692 üzenetére
Valószínűleg arról van szó, hogy csak mutatót definiáltál. Nem foglalva neki
megfelelő mennyiségű memóriát, írsz bele, a vakvilágba. Esetleg egymásra
írnak. A C ugye egy típusos nyelv... így nem lehet a kódoddal kapcsolatban
beszélgetni, hogy bemásolod egy részletét + állítasz valamit, hogy mit ír ki,
ám azt nem mondod meg, hogy melyik változóra, mikor, és mi az a változó.Szívesen segítenék, de ez alapján szerintem nem lehet. A konyvtar pl. egy
char[9]? És beleraktad, mondjuk hogy "konyvtar" az inicializálásakor? -
DigitXT
félisten
válasz
zsolti_20 #11686 üzenetére
OMG: nyilván...
De az nem is volt benne az eredeti kódrészletedben...
Bepakoltál 8 db byte-ot egy közelebbről meg nem határozott tömbbe és kalap.
Mivel a print a lezáró nulláig megy, s az nem volt benne, ettől már "fagyhatott":
amiért akkor működik, amikor megadtad neki az inicializáláskor a fájlnevet, az
az, hogy az implicit belerakja a lezáró nullát. Tudom, hogy elsőre nem annyira
triviális a karaktertömb / mutató kérdés, de ez alapvetően C, és nem Arduino...Szerk: sajna a pastebint nem tudom megnézni a céges gépen, ebédszünetben
telefonról néztem, aztán ennyi maradt meg belőle a fejemben. -
DigitXT
félisten
válasz
zsolti_20 #11679 üzenetére
Nézd, programozni nem lehet csak ennyire elmesélős szinten. Nem tudjuk,
pontosan mit csináltál azzal a sprintf-fel, mibe akartál vele írni mit... Azt se,
hogy debug esetén mit látsz: az alap C programozást célszerű megismerni.
Kifagy az egész? Már mi? Az arduino? Végtelen ciklusba kerül a kód? Nincs
lefoglalva előre a memória? Nem nullára végződik a karakter sorozat? -
Janos250
őstag
válasz
zsolti_20 #11675 üzenetére
Vagy innen:
http://www.cplusplus.com/reference/cstdio/sprintf/Hogy ismételjem önmagam:
"amikor írunk egy programot, nem úgy kell gondolkodni, hogy hogyan írjuk ezt "Arduinóban", hanem, hogy hogyan írjuk ezt C++-ban"
https://prohardver.hu/tema/arduino/hsz_11576-11576.htmlRá-rácsodálkoznak arduinosok egy-egy C++ osztályra, függvényre, hogy ezeket nem, vagy ritkán írják az Arduino tutorialokban, pedig tudja.
-
DigitXT
félisten
válasz
zsolti_20 #11672 üzenetére
Az csak elírás, hogy egyszer kis string, másszor meg nagy String? Csak mert
nem ugyanazt jelentik. A String az egy objektum, annak van "+" művelete. Míg
a string az nem objektum: talán így le sem fordul a kód, ha kisbetűvel írtad...A "filename" amúgy micsoda? Azt hol definiáltad, és hogyan kap értéket?
Na igen a 8.3 is befigyel, de így nehéz debugolni, hogy csak a fél kód van meg. -
DigitXT
félisten
válasz
zsolti_20 #11668 üzenetére
Ilyenkor célszerű felütni valami referencia dokumentációt, pl. mondjuk ezt: [link]
bool SdFat::exists ( const char * name )
Test for the existence of a file.
Parameters:
[in] name Name of the file to be tested for.Returns:
true if the file exists else false.Vastagítás tőlem: ennek nem lesz jó a String objektum, ha amúgy azt használsz:
szerencsére erre is van megoldás, konkrétan átkonvertálja karaktertömbbé. -
DigitXT
félisten
válasz
zsolti_20 #11661 üzenetére
Mint írtam, az a vessző a paramétereket választja el, tehát ahogy a hibaüzenet írja:
az a hívás nem érvényes, hogy átadnál neki egy const char [5] és egy char [13]-at.
Ott egyetlen paramétert vár, tehát előtte össze kellene fűzni, pl. valami ilyesmiképp SD.exists(concat("asd/",filename))Csak most nincs előttem, hogy ez a concat megvan* natív C-ben, vagy az Arduino
féle Strings objektum kreálmánya, amit amúgy nagyon fikáznak ebben a cikkben...*: ha nincs, akkor persze meg lehet írni, de ez nem Arduino-specifikus dolog.
-
DigitXT
félisten
válasz
zsolti_20 #11659 üzenetére
Bizonyára. A trükk az, hogy amit leírtál, az két paraméter megadása,
logikus, hogy nem működik, ha az adott függvény egy paramétert vár.
Össze kéne fűzni egyetlen változóba a dolgot, s azt átadni neki. -
Gergosz2
veterán
válasz
zsolti_20 #11647 üzenetére
Persze, miért ne. Valami olyasmit csinálnék, hogyha "A" akar adatot küldeni "B"-nek, akkor először megpróbálja direktbe, ha nem megy neki akkor meg a repeater-en keresztül. Ha meg az se éri el akkor meg vagy "A" még messzebb van vagy vmi más baja van.
Szóval lehet, csak le kell programoznod.
-
tonermagus
aktív tag
válasz
zsolti_20 #11614 üzenetére
Nem még, nagyon szépen köszönöm!
Sokat tanultam belőle, és még laikus számára is érthető a nagy része.
Viszont 2 dolgot nem vágok alapvető elektrotechnikai ismeretek hiányában:- Mi célt szolgál az áramkörben a motor elő bekötött Tranzisztor és Kondenzátor?
Csak tippelek, hogy az egyik védi az arduino-t a kisüléstől?
-
ecaddsell
aktív tag
válasz
zsolti_20 #11599 üzenetére
Hatótáv mondjuk 400-500m jelerősség pedig olyan legyen hogy egy fal ne legyen probléma neki.
Ott vanank pl a walkie talkie. Ezeket használnak a security-k a kommunikációhoz. Van köztük kb 1km, teljesen fém az egész épület és mégis tudnak egymással kommunikálni, pedig jelerősítő sincs köztük.Eléggé kevered as dolgokat. Ha normál walkie-talkie-ról (446 MHz-es PMR) beszélünk az már alapból 500mW (és nem max. 100mW mint ezek a távirányítós cuccok) egy viszonylag jó nyereségű antennával (az USA-ban ezt másképp hívják ott FRS=Family Radio Service a neve és ott a szabvány limit is 2W (persze ott kevésbé begyöpösödött emberek szabványosítanak mint az EU-ban).
Amit a biztonságiak használnak az meg mindezeken is jó eséllyel túlmegy simán kb. 5W környéke (USA megfelelője GMRS, megint gyakorlatiasabb hozzáállással szétválasztva a hobbi meg az ipari kategóriát).
Ennek ellenére ha sok a zavaró tereptárgy inkább néhány száz méter az a km.
Nyílt terepen persze simán megvan az 5-10km is...Bár nem fogom minek egy távirányítós hajónak több száz méter (ahova már eléggé nehezen látsz el), de ha ez kell akkor az antennára érdemes fókuszálni. Szóval jó ha a vevő IPEX vagy SMA csatlakozós és e-miatt le lehet árnyékolni és ki lehet venni mint zajforrás az antenna meg lehet irányított (ez az adónak sem árt)...
Egyébként bár nem érint a modellezés téma azt hinném a hajó a legegyszerűbb mert nyílt terep és jól irányítható antenna. -
robohw
aktív tag
válasz
zsolti_20 #11601 üzenetére
Magából az eszközből tudsz repeatert csinálni, ezekből akár egy chain-t is létre lehet hozni, de ha folyamatos adatátvitelre akarnád használni, arról lebeszélnélek, mert büntetés jár érte.
Ennél jobb és legális is, ha WiFi-vel oldod meg. Irányított antennákkal már lehet olyan pont-pont összeköttetést kiépíteni, amely km-eket is áthidal. Persze ehhez rálátás szükséges a két antenna között.
Én csináltam már 8 km-es linket, de tudok 80 km-esről is.
Hát, az enyémnél is elég kemény volt az antennákat ütköztetni, a 80 km-nél nem tudom, hogy sikerült ez nekik -
robohw
aktív tag
válasz
zsolti_20 #11597 üzenetére
Mi a viszonylag nagy hatótáv?
Azt tudni kell, hogy ezek a free frekik nem véletlenül vannak korlátozva, az adók kimenő teljesítményét illetően. Mind azonos frekvencián dolgozik (433, 866 Mhz, 2.4 Ghz). Ki örülne neki, hogy valaki más miatt nem tud forgalmazni, mert az ráült a sávra? Ezért kell a hatótávot lekorlátozni, hogy ha X hajtha a modelljét kecskeméten, akkor ne lehessen már fogni a jelet még New Yorkban is.
Van profi RC adó-vevő, amit csak használatba kell venned, elég komoly hatótávú is akad, de az drága.
Ez a kicsi meg csak 1 USD egy pár, ráadásul ennek tudod emelni a kimenő teljesítményét. -
robohw
aktív tag
válasz
zsolti_20 #11594 üzenetére
De sztem neked az olcsó tökéletesen megfelel.
Adsz egy burst jelet, utána már nyomhatod is a paracs kódot.
5 bittel már 32 féle dolgot tehetsz. A kommunikáció gondolom szimplex, tehát 3-szor kiküldöd az 5 bites kódot és a fogadó oldal megnézi, hogy ebből legalább kettő azonos-e, ha igen, akkor cselekszik a kódnak megfelelően. A zavarszűrés meg is van oldva.Ehhez még példakódot is találsz.
--
Néztem, az is gagyi, mind a kettőben ugyanaz az IC hegedül. A drágább csak az illesztett antenna okán tud nagyobb távot. Ráadásul SPI buszos. -
robohw
aktív tag
válasz
zsolti_20 #11594 üzenetére
Semennyire.
Az egy elég szivatós modul. Nem véletlenül olyan olcsó.
Annak a tápfeszét sem emelgetheted.
A legolcsóbbét viszont igen. Bár az még 18 volton sem fog 250 m-nél tovább elsugározni.Ja, bocs.. én az nrf-8-ra gondoltam. A másikat nem ismerem, de az is Nordic gyártmány.
-
válasz
zsolti_20 #11564 üzenetére
Ha meg majd adatbázist használsz, a setup részben töltsd fel a tömböt egy ciklusban, így a program újraflashelése nélkül tudsz új kártyákat hozzáadni. Illetve SQL parancsokkal megoldható a közvetlen lekérdezés is tömb nélkül, a kérdés, hogy a sebessége mennyire lesz elfogadható.
-
Janos250
őstag
válasz
zsolti_20 #11557 üzenetére
Ha C#-et már használtál, akkor rossz a fogalmazás:
"De mikor belekezdtem az ESP ismerkedésébe kicsit kevésnek éreztem magam hozzá"
C# mellé ez lenne a helyes fogalmazás:
"Azért nem nanora építettem, hanem ESP-re, mert a nanohoz kicsit kevésnek éreztem magam"
Ugyanis az ESP32 compilere a C++(11) GNU compilere, ami eléggé korszerű, és ha a C#- ból kiveszed a Microsoft dolgokat, máris azt kaptad! Az már csak hab a tortán, hogy a többi arduinoval való kompatibilitás érdekében meg van írva egy csomó osztály amit használhatsz a "szabványosak" mellett, definiálva van egy csomó konstans, objektum, és a freeRTOS használatához van egy halom API. -
_q
addikt
-
_q
addikt
válasz
zsolti_20 #11550 üzenetére
Nem ellenállást adsz hozzá szoftveresen.
Ellenállás mindig kell, a kondenzátor segít a prellmentesítésben.
(#11552) zsolti_20
Te lehúzó ellenállást használsz. Ha felhúzót használsz, azaz alapból logikai 1-en van a gomb bemenet, akkor fordított logikát kell használni, tehát lenyomod az 0. Ennek annyi előnye lehet, hogy ha szakadás vagy gond van, akkor a gombon alapból is 0 lesz ami gyanús lehet. -
válasz
zsolti_20 #11550 üzenetére
Na várj csak, az ellenállást pontosan hová is kötöd? Mert ha a felhúzó ellenállásra gondolsz, amit a beépített ellenállással lehet helyettesíteni (INPUT_PULLUP), az nem a pergésmentesítés miatt van, hanem azért, mert anélkül "lebeg" a bemenet, mivel a vezeték antennaként viselkedik és összeszed minden jelet a levegőből. A pergés ettől teljesen független dolog.
-
_q
addikt
válasz
zsolti_20 #11547 üzenetére
Szoftveresen elég az ellenállás, de az nem emiatt kell, hanem a nyomógomb működése miatt, ha lenyomod, ne legyen direktbe kötve a GND felé. Bár ezt valaki erősítse meg azért. Kondenzátor fizikai tulajdonságából adódóan kell a prellmentesítéshez, mivel lassan töltődik fel, így kiküszöbölhető a gomb prellegése.
Új hozzászólás Aktív témák
- BESZÁMÍTÁS! Gigabyte A620M R5 7500F 32GB DDR5 512GB SSD RX 6700 XT 12GB Rampage SHIVA Chieftec 700W
- Bowers/Wilkins Px7 S2 fejhallgatók
- LENOVO ThinkSystem NVIDIA Quadro RTX 6000 24GB PCIe Passive GPU
- LG 27UL500-W - 27" IPS - 3840x2160 4K - 60Hz 5ms - HDR10 - AMD FreeSync - 300 Nits - sRGB 99%
- Csere-Beszámítás! RTX Számítógép játékra! R5 5600X / RTX 3080 / 32GB DDR4 / 1TB SSD
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest