Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Úgy tűnik kezd összeállni a kérdéses eszköz lista.
A lelke az egésznek Arduino UNO Rev3 esett a választásom. A segéd napelemet INA219 feszültségét és áramát fogom olvasni. A hálózati fogyasztást 100A SCT-013-000 AC áramérzékelő osztott na ez fogja a hálózati fogyasztást mérni. A fogyasztók vezérlését Joy-it COM-KY019RM akarom megoldani. 2 darab segítségével. Ha esetleg nem lenne kompatibilis vagy kevés lenne a csatlakozások a Arduino UNO Rev3 akkor még lehet változtatni. A hozzászólás módosítva: Ápr 18, 2023
Igen ezt írtam. Lehet hogy szebben kellett volna megfogalmaznom csak valahol nekem is van egy határ. Aztán besokalltam. Egyik azt mondja kevés a másik sok a termelés a jelenlegi fogyasztásommal számolva. Nem volt kedvem kiteregetni teljes mértékben az elkövetkező 1 és 2 éves terveimet. De 2 év múlva szeretnék nyugodtan felkelni időben aludni. Nem elutazni hajnalban majd 8 óra munka után még másfél órát utazok mire hazaérek. Majd 12 óra az utazással együtt. Ennyit a saját vállalkozásomba is dolgozhatnék. Tudom mivel jár az ilyen munka csináltam már. Néha nagyon húzós máskor lazább. De idegileg sokkalta nyugodtabb számomra ha nem kell emberek közt lennem napi szinten. A szakításom óta emberek közé menni kész kínzás, ha tehetem nem is megyek ki még az utcára sem. Sajnos nem múlt el testi és lelki sebek nélkül a válás.
A jelenlegi gazdasági helyzetben mást nem tudok tenni mint már előre felkészülni a radikális költségek lefaragására. Mivelhogy ez villany és fűtés terén fog megnyilvánulni amiben csak a villanyt tudom megspórolni azáltal hogy a naposabb évszakokban előre dolgozok olyan termékeket előállítva amit később tudok értékesíteni. A naphiányos időszakban az esetleges megrendeléseket lehet teljesíteni és a raktári készletből élni. Ezen időszak alkalmas a tervezésre is a következő szezon munkára. A napelemek, inverter, euro stb később csak drágább lesz így még most ezt megelőzve próbálok előrébb jutni ha kell erőn felül. A fűtést meg szigeteléssel tudom javítani. Amit 2 év alatt fogok tudni megcsinálni ha elkészült a napelem. Nyílászárók csere, folyosó zárttá tétele. szigetelése. padlás födém szigetelés. Végül a falak következnek körbe a házon. Mindent szép lassan ahogy tudom. A tervek nem fixek de egy éven keresztül csak ezen gondolkodtam. Hogy lehet jobbá könnyebbé tenni az életem. Na mármost ez egy nem idevaló kettő nem is tatozik senkinek az orrára mit miért csinálok. Sajnos az egész téma annyira elkanyarodott az eredeti kérésemtől hogy már az magában elkeserítő volt. A szüleinek akarok segíteni. Egyszerre lesz fűtés és áram termelésre használva a napelemes rendszert. Ardurinoval az a legszebb hogy tanulok nem kevés dolgot és érdekel is. Ez számomra nagyon fontos mert egyben ez jelenti a gyógyulást is számomra. A szüleim rendszerét fogom kimosatni a nyáron, kap egy puffertartályt. 3 w napelemes rendszerű napelemet ami bővítve lesz 5kw ig. Az ő fogyasztásuk lényegesebben kevesebb mint a a sajátom. A puffertartály azért lesz véve mert ne kelljen a kazánt rossz hatásfokon járatni. Már itt sokat spórolnak. A puffertartályba feltöltés előtt betekerni egy vagy kettő cekászt meg az ardurinot megépíteni hozzá nem egy akkora hatalmas plusz kiadás hogy ne érje meg. Nézegettem kb 1 köbméter fa árán meg tudom venni a szükséges eszközöket hogy az ardurino tudja kezelni a felesleges áramot. még 1 köb fa árán veszek egy olyan cekászt ami 6kw fűti a vizet. Hirtelen csak ezt találtam meg. Így csak tavalyi árakkal számoltam a fa árát ami itt a hatósági 30.000ft volt. 45.000ft volt a fűz. Amiből még a 20 köb sem lett volna elég. Ennyi azért simán még rá tudok szánni hogy ne csak a villany menjen le nekik hanem a fűtés időszak kevesebb legyen. A klíma meg 60.000ft nem jön ki. Sajnos a szüleim nem akarnak már befektetni h tarifás fűtésbe. Nem hisznek benne. Így marad a meglévő rendszer tuningolja. Amúgy meg sikerült a villanyvezeték cserére rábeszélnem őket. Fúrok faragok. Kábel csatornát és vezetéket rakhatok a falra. A bekötést szaki végzi. Én csak rendeltetési helyig viszem a kábelt.
Kedves Kollégák!
Kérem, hogy a napelemmel kapcsolatos plémiát legyetek szívesek az erre szolgáló témában folytatni! Ez az Arduino topic.
https://www.aliexpress.com/i/32824761869.html
Sziasztok. Ennek a modulnak érdekelne a lábkiosztása. Rx, tx, stb. Sajnos sehol nem találom.
Pedig az adatlapjan is rajta van.
A hozzászólás módosítva: Ápr 21, 2023
Igen, ez a "sima" AS608.Az általam linkelten ott szererpel, hogy V2, a nyákon, és nyolc szálból áll a vezeték is.
A linkeden a 4. képen ott van a nyákon, az nem jó?
ZA620. Bővebben: Link
Köszönöm mindenkinek, aki segített, lalca válasza a számomra rleváns. Respect!
Rendben, orulunk, hogy meglett, de
Idézet: Hol is szerepel ez??? „ott szererpel, hogy V2, a nyákon”
Sziasztok.
Probálok megvalositani egy I2c kapcsolatot ket lapka kozott. Segitségre lenne szükség. A minta kod - az 1_3, kifogástalanul müködik, de az 1_4, ahol ott vannak a hőmérők, vagyis amit kellene hogy csináljon igazából, ott már nem müködik, mind össze-vissza adatokat kap a mester. Próbáltam csak egyetlen hőmérővel de ugyanaz az eredmény. Az 1_3 -al jeloltek a minta kod, az 1_4 -esek lennének a megvalósitás. Úgy próbáltam megszerkeszteni hogy az adatok legyenek készen már a továbbításra, ne a kéréskor álljon neki mérni a szolga, ami nyilvánvaló hogy nagy késéssel járna. Egy másik topikba is próbáltam, de eredménytelenül Köszönöm. A hozzászólás módosítva: Ápr 22, 2023
Csak 1x futottam át, nem világos pontosan. Amit kiszúrtam:
A mehet változód Volatile a 3 -as ban, míg a 4-ben nem. Ha az megszakításban változik, márpedig úgylátom igen, akkor annak is volatile-nak kellene lennie. DE! a 4.-ben a requestEvent() -t más, ott nem is adsz értéket a mehet váltoódnak. Látom, hogy átírtad, hogy a String hello; változóddal operálva működjön. EZ NEM jó, mert annak értékét változtatod a megszakításban, és annak függvényében akarod a loop- futását befolyásolni. Ennek is Volatile-nek kellene lennie, de string-nél nem tudom, hogy lehetséges-e egyáltalán. Ha megnézed, a .3-ban a loop if-je csak a mehet változóra épít, az volatile, még akkor is, ha a megszakításban egy másik változónak is adsz értéket. De a másik nem volatile os hello változódra a 3.-ban nem hivatkozol a loop-on belüli if-ben. A 4.-nél igen. De lehet más is a gond, mert nagy a kód.
Illetve ezt a kódot mentsd el és írd át olyanra, ahol nem az összeset akarod egyszerre kiolvasni, hanem csak például kettőt. Haladj lépésről lépésre, mert lehet még az i2c címeid sem jók, de ezt nem tudhatjuk. Gondolom i2c scennert futtattad, hogy meglegyenek a hőmérők címei. Ha ezek is jók, akkor még elektronikai gond is lehet bőven, mert lehet túl hosszúak a vezetékek, nagy az interferencia, nagy az áthallás, ilyesmi. Azért gondolom ezt, mert sok eszközt kötöttél ugyanarra a buszra.
Hmm, átirom mindkettöt egyformára, mármit a részletek meghivását és felteszem még egyszer ha nem megy. Minden estre köszi
A hozzászólás módosítva: Ápr 22, 2023
Amit most még eszembe utott, de én nem tudom pontosan, nekem kicsit sok a kódod.
Szóval: -Mi van akkor, ha a megszakítás kérelem gyorsabban ismétlődik, mint ahogy kiolvasná az összes adatot. PIC-nél ez komoly hibákat okoz, Arduinot nem ismerem ennyire. - if(mert == 1){ mert = 0; A loop-on belül. Nem vettem észre sehol sem, hogy a "mert" melyik függvényben, vagy hol kap 1 értéket egyáltalán. A "void requestEvent() " void receiveEvent(int howMany, void temp_sensor_read() -ben sem látom. Elvileg futás közben ezeket hívod meg, de a loop-ban kinullázod, de sehol sem lesz 1. A setup-ban sem látom, de még a read init-ben sem. Szóval ez folyton 0. A kiolvasás után valahol 1-re kellene állítani. Ha a megszakításban, akkor Volatile. De még a temp_sensor_read()-ben is 1-re állíthatod. Arra is figyelni kell, hogy ha a megszakítás függvényből hívod meg ezt a kiolvasó függvényt, akkor is volatile ez a változó. A többi kódod nem látom, nem tudom miért kell megszakítás, lehet a másik slave kódod miatt, azokat még nem néztem.
Ujrairtam a kodokat, most csak egy mastert csináltam és két szolgát, homérővel és anélkül.
A mérés megtörténik. Egyéb gondok lehetnek, talán összeférhetetlenet a <Wire.h> és az <OneWire.h> ? Mint az imént is írtam, hőmérő nélkül tökéletes, de már egyel sem müködik, csak az első értéket küldi el, a tőbbi zagyvaság. Mellékelem a kodokat és még három serial monitor képet.
A kódod nekem tetszik. Amit látok az az, hogy működik majdnem minden amit szeretnél, csak a hőmérsékletek nem jelennek meg. Javíts ki ha tévedek. Ha hőmérők nélkül indítod, akkor megy. Ezek szerint a kiolvasásokkal van gond.
Utána néztem a DallasTemperature.cpp <lib> -nek. A kódot nézegettem. Nem 100%-ig tiszta, de elvileg mennie kellene. Sok hasznos függvény van benne, le lehet kérni az eszközök címét stb. Ha jól értelmezm, akkor le lehet kérni a hőmérsékleteket cím alapján. - void temp_sensor_read(){ sensors.requestTemperatures(); Bennem felmerült, hogy ezt minden esetben be kell állítani? Nem elég a setup-ban a dallas izé begin után csak 1x? mert ott _wire reset is van, lehet bezavar, nem tudom. De lehet kell, ne vedd ki egyelőre innen. - getTempC() a c++ fájl 735. sorától: // returns temperature in degrees C or DEVICE_DISCONNECTED_C if the // device's scratch pad cannot be read successfully. // the numeric value of DEVICE_DISCONNECTED_C is defined in // DallasTemperature.h. It is a large negative number outside the // operating range of the device float DallasTemperature::getTempC(const uint8_t* deviceAddress) { return rawToCelsius(getTemp(deviceAddress)); } Nem tudom neked melyik verziójú lib van meg, de ez nem float-al tér vissza? Te így használod: void temp_sensor_read(){ sensors.requestTemperatures(); //Esetleg ez mehetne a setup-ba a begin után sensor_mert = (sensors.getTempC(Sensor_kaz_t)) * 100; if(sensor_mert != -12700) { s1 = 0.7 * s1_pr + 0.3 * sensor_mert; s1_pr = s1; } sensor_mert = (sensors.getTempC(Sensor_kaz_r)) * 100; if(sensor_mert != -12700) { s2 = 0.7 * s2_pr + 0.3 * sensor_mert; s2_pr = s2; } } Nálad: int sensor_mert; Ez nem lehet hiba? De nekem mára ennyi volt, pihennem kell. Szerintem nézz rá a c++, és a .h fájlokra is. Amúgy a röviditett kódod sokkal jobb, könnyebben átlátható. Szerintem mások is megnézik, beugrik nekik a megoldás.
Igen a hömérsékletet mindegyik eszközről a cime alapján kérem le, amit szépen ki is ír a szolga serialon ha azt akarom.
A „sensors.requestTemperatures();” minden kiolvasásnál kell használni. A 3.11.0 Miles Burton konyvtárat használom, már nem ez az első alkalom. Az hogy float-ba tér vissza és én integerbe veszem át az nem határoz semmit, semmi köze. DE, kersgélve még a neten EZT találtam, na meg sok vitát. Azt hiszem abbahagyom és valami serialt keresk (csak az a gond hohy akkor elmarad a debug, csak a nullás tx és rx szabad, a 2-es Hardware serial egy Sim800 -ra van kötve, nem vagyok annyira jo hogy még ezt is arra tegyem). Most ezzel:"SerialTransfer.h" probálkozom
Itt le van írva, hogyan kel a 2 byte-os intet küldeni és fogadni!
Bővebben: Link Az ajánlót javításokat tanulmányozd át. Ha ESP32-est használsz? Ott az int viszont 32 bites, használd inkább a: int16_t adat típust. Elkerülendő az ilyen problémákat A hozzászólás módosítva: Ápr 23, 2023
Én a strutc helyet inkább tömböt használnák: int16_t B_t[13];
Jóval könnyebb cimezni, ciklusokban indexelni.
Üdv!
Ez igen jó ötlet, ráadásul én is így csináltam PIC-ben, igaz SPI-n. Nem értem miért nem jutott eszembe. Azonban nem értem pontosan, hogy ha ez a hiba, akkor az első adat miért jó? Szerintem túl gyorsan kérdezi le az értékeket. A hőmérő adatlapján a feldolgozási idő sok sok milisec, attól függően mekkora felbontást választ. De nem mentem át a c++ fájlon, hogy a lekérdezés pontosan hogy megy, figyelembe veszi ezt, vagy sem. A másik, hogy a c++ fájlban van sok hasznos kis függvény, én ilyen hiba esetén megnézném, hogy tényleg le tudja-e kérdezni az eszközök címét, és jók-e. Ez akár kiderítheti, hogy hardver hiba van-e, azaz a kommunikációs vonalak működnek-e. A frekik jók, él minden stb. Amúgy mekkora az I2C frekije? Minden működik, de a lekérdezést ha beteszi, akkor megy el minden. Igen, lehet tényleg az a gond amit írtál, de én lekérdeztem volna sokmindent először. Például, hogy meg tudja-e számolni mennyi hőmérő van. Mik a címek, meg egyéb mást. Ha ez ok mentem volna tovább. De nem értem miért jó az első adat minden esetben. A high byte éppen jó az eső lekérésben? (vagy a low?)
Hello
- A lekérdezés: minden alkalommal wire lekérdezés után mér, amikor jön a következő lekérdezés az adatok - hőmérsékletek, már készen vannak, nem kell várjon utána. - „Tényleg le tudja-e kérdezni az eszközök címét”: hmm, nem vagyok profi, azért kérdezek, de azért ezen már túlestem, a cimek jók és serial-on tökéletesen kiirja a hömérsékleteket, azokat amiket a következő kérésnél kellene elküldjön. - „kommunikációs vonalak működnek-e”: mint írtam, hőmérő nélkül tökéletesen müködik, ami szrintem azt jelenti, logikusan, hogy ilyen gond nincs. Tehát a frekik is jók. Vagyis, hőmérő nélkül tökéletes, hőmérővel meg „katasztrófa”. Még egyszer, a szolga oldalon a hőmérséklet kiolvasások tökéletesem müködnek.
A linket még át tanulmányozom.
A kodba „signed short int” használtam ami az én szerény (inkább szegény) tudásom szerint nem ugyanannyi ?, talán még rövidebb ? Kérlek javits ki ha tévedek. A hozzászólás módosítva: Ápr 24, 2023
Én ilyen definíciót nem találtam!
Bővebben: csak short van? Ami tényleg úgy működik ahogy írtad. A hozzászólás módosítva: Ápr 24, 2023
> mint írtam, hőmérő nélkül tökéletesen müködik, ami szerintem azt jelenti, logikusan, hogy ilyen gond nincs. Tehát a frekik is jók.
Ha úgy kell érteni, hogy le is vannak húzva a hőmérők, akkor nem ennyire egyszerű a dolog. Amikor rádugsz egy buszra új klienseket, akkor nő a busz kapacitása és a jelformák egyre laposabbak lesznek. Pont ez az ami felső korlátot ad a használható frekvenciának. A felhúzó ellenállást és a kimeneti ellenállásokat csökketve lehet a jelformán javítani, de egy ponton viszont elérjük a PIN-ek kimeneti maximális áramát amikor a vonalat mint egy kondenzátort tölti a PIN kimenet. Tehát amikor új klienseket dugunk egy buszra, akkor a jelformákat újra kell mérni, egyáltalán nem biztos hogy megfelelőek maradnak.
Azt mondod, hogy a slave oldalon, mikor kiíratod a serial print-tel a monitorra, akkor az összes hőmérséklet adat jól megjelenik? Ezt félre értettem a korábbi képek alapján. Meg a kód alapján, mert amit küldtél a kettő között az volt különbség, ha jól emlékszem, hogy a sensors_read() függvényt NEM hívtad meg az egyikben.
Ha így van akkor tényleg gáz van a két eszköz közötti short int adatküldéssel. Elvileg ezt is le tudod ellenőrizni. Slave oldalon folyamatosan pl 58 nak megfelelő short int változó értékét küld el. A serial printben a slave oldalon írasd ki binárisan. Utána küld el a masternek ahol szintén short int-ként tárolt változóval fogadd ezt az adatot, és ott is irasd ki binárisan. Ha a kettő eltér, akkor bizony Kapu48 megoldása kell neked. Bocs, én azt hittem eddig, hogy minden elromlik, mikor a sensors_read() függvényt meghívod. Ha ezt meghívod és az értékeket kiírod a soros monitorra és jók, akkor ok. A hozzászólás módosítva: Ápr 24, 2023
Sziasztok
csinált már valaki sd kártyára valami adatbázisféleséget arduinoval? |
Bejelentkezés
Hirdetés |