Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 11 20, 22:23. Visos datos yra GMT + 2 valandos.
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
Sveiki,
Man reikia atlikti duomenų mainus tarp 2-jų stočių (Reikalingas Master->Slave ir Slave->Master ryšys). Atstumas siekia apie 100m. Duomenys bus siunčiami iš mikrovaldiklio į mikrovaldiklį panaudojant bevielį ryšį. Kokie galimi variantai (Pigesni)?
Mano variantas yra panaudoti 1 klasės, dvikryptį Bluetooth modulį. Deja, tokių neradau.(Man reikalinga I2C, SPI arba USB sąsaja). Didžiausios problemos: moduliai būna vienos paskirties (transmitter or receiver), galimas tik Master->Slave ryšys, nėra RTS ir CTS patvirtinimu (jei norėsiu prijungti dar vieną stotelę, duomenys nebus gauti, jei visi perduos informacija.
nrf24l01 modulis tikrai vertas dėmesio: Multi-point communication, long distance, low price. Kiek supratau galima komunikacija su įvairaus tipo mikrovaldikliais: AVR, PIC ir kt. Gal teko išbandyti kada? Jei taip, kodėl jis toks pigus, palyginus su Bluetooth, zigbee moduliais (dėl gamintojo)?
Valdymas SPI, tai bet kokiu mikrovaldikliu, yra ir gatavų bibliotekų. O kaina maža tai dėl prastumo - bluetooth suporavai ir siunti duomenis kokiu uart, o šitiems nrf24l01 mikrovaldiklis turi viskuo rūpintis - inicializavimas, kanalo pasirinkimas, darbo režimo valdymas ir tt.
Dar vienas dalykas užkliuvo: naudojama SPI sąsaja, kurioje nėra adresacijos. Kaip tada žinoti, iš kokios stoties gauta informacija (jei stočių daugiau nei viena)?
Kiek suprantu yra naudojami kanalai (suskirstyti pagal dažnius, po 1MHz), per kuriuos gaunama informacija iš skirtingų stočių. Sėkmingam duomenų persiuntimui naudojami acknowledgement. Kanalų skaičius ribotas dėl to, jog kai kurių dažnių negalima naudoti Lietuvoje. Nemokami nuo 2.4 -2.4835GHz (282 eilės numeris http://www3.lrs.lt/pls/inter3/dokpaieska.showdoc_l?p_id=441113&p_query=&p_tr2=2), todėl galimi 83 kanalai.
Ar teisingai mastau?
Truputį nesupratau apie SPI ir adresaciją. SPI tai yra miso, mosi, sck bendri visiems įrenginiams (master ir slave), cs (chip select) kiekvienam atskiras (masteris valdo su kuriuo slave bendraus). Ar tu čia nežinai kaip atpažinti skirtingus siuntėjus? Siuntėjas gali duomenų paketo pradžioje nurodyti kad jis siuntėjasnr1, masteris gali užklausinėti atskirus slave ar turi kažką perduoti (čia jei energijos taupymo nereikia) arba gali skirtingus dažnius naudoti kad atskirti kuris siuntėjas, vistiek visą darbą pas tave mikrovaldiklis dirba, ir dar daugybė variantų.
Dar vienas dalykas užkliuvo: naudojama SPI sąsaja, kurioje nėra adresacijos. Kaip tada žinoti, iš kokios stoties gauta informacija (jei stočių daugiau nei viena)?
Adresacijos mechanizma turi pats sukurti programiniu budu.
Nežinojau kaip atpažinti skirtingus siuntėjus, kai vienu metu gaunama informacija iš skirtingų stočių (1,2,3 -ias Slave siunčia informaciją tuo pačiu metu). Maniau, jog tik I2C sąsajoje galima adresacija. O čia galima programiškai viską išspręsti. Ačiū už pagalbą.
Šiaip RF ryšio seanse duomenys bus prarasti, jei siuntimą vienu metu pradėjo keletas siuntėjų, todėl programuotojas, sudarinėdamas algoritmą turi atsižvelgti į daugelį faktorių. Vienu atveju masteris gali po vieną apklausinėti sleivus, ir po kažkiek laiko ar atitinkamo kiekio negautų atsakymų jungti aliarmą ar pranešti kad nemato sleivo nrx, arba tik laukti duomenų iš sleivų, bet jie turi duomenis siūsti tokiais laiko tarpais, kad nepradėtų ilgam dubliuotis.
Šiaip RF ryšio seanse duomenys bus prarasti, jei siuntimą vienu metu pradėjo keletas siuntėjų, todėl programuotojas, sudarinėdamas algoritmą turi atsižvelgti į daugelį faktorių. Vienu atveju masteris gali po vieną apklausinėti sleivus, ir po kažkiek laiko ar atitinkamo kiekio negautų atsakymų jungti aliarmą ar pranešti kad nemato sleivo nrx, arba tik laukti duomenų iš sleivų, bet jie turi duomenis siūsti tokiais laiko tarpais, kad nepradėtų ilgam dubliuotis.
Is esmes master'is turi visiems slave'ams issiusti zinute su slave'o adresu ir tokiu budu "uzadresuoti" viena irengini. Yra daug budu, bet is esmes aisku galima transliuoti vienodas sekas komandu su skirtingu adresu, tada atsakines tas slave'as, kurio adresas sutaps su atejusiu zinuteje.
Reikalingas dirbtinis LED 2-3W apšvietimas lauke, todėl turiu klausima apie Saulės kolektorių ir įkraunamas baterijas:
Man reikalingas maitinimo šaltinis, kuris turėtų tokias charakteristikas: 12VDC, 200mA. Veikimo trukmė turėtų būti apie 6val, todėl reikalinga 2000-3000mAh talpa.Deja, susidūriau su šiomis problemomis:
1)Ilgas krovimo laikas. Dauguma pakraunamų baterijų yra 1.2V, todėl jų reikės 10 vnt. Norint gauti 12V ir 200mA reikės baterijas pajungti nuosekliai + kiekviena turi būti po 2000mAh. Viena baterija krausis apie 7 val. 7val*10=70val. O man reikia, kad per 7 val pasikrautu.....
Man atrodo yra tik du būdai išspręsti problemą:
1) nusipirkti galingesni saulės kolektorių ir nuvesti takelius prie kiekvienos baterijos.
2) Pakeisti LED į žymiai silpnesį (4 diodai 0,5W, 3.4V, 180mA). Panaudoti TrustFire 600mAh 4-ias baterijas: 3,7V. 4*600mAh=2400mAh(jei lygiagrečiai sujungsime).Krovimo srovė 0.6Ah*25%=0.150mA. Krovimo laikas 5val. 5val*4=20val. Vistiek per ilgas krovimo laikas.
Ką galėtumėte patarti? Nejaugi vienintelis nebrangus variantas įgyvendinamas panaudojant laidus ?(maitinimas iš tinklo)
efektyvus saulės energijos kaupimas niekada nebus pigus. būna tik brangus.
aš tokį vieną žmogų jau senokai žiūriu https://www.youtube.com/user/julius256 visą jo turinį panagrinėk, tikrai daugiau supratimo bus apie pigius sprendimus įgysi.