Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Ha mar tobb progirol van szo akkor en egy int menu valtozoval a kovetkezot hasznalnam:
Igy mindig csak a menu ertekenek a megfelelo progi futna le A hozzászólás módosítva: Dec 6, 2015
De így a problémámra még nincs megoldás, hogy lépkedjek sorba.
Szia!
Erről írnál egy kicsit bővebben? Nézegetem már egy ideje, de nem esik le, miért a megfelelő task fog lefutni. Látom, hogy pointerekről van szó. Köszi.
Hat a megfelelo menu ertek lepteteset kihagytam, az a masodik sorba jonne. Nyomogombbal leptetni a menu erteket: menu++, menu--, vagy ugorjon a masik vegere ha a maximum erteken van, vagy a minimumon.
Peldaul, ha menu == 5, akkor a menu++ helyett menu = 0. Ha menu ==0, akkor menu-- helyett menu = 5. Lehet hasznalni millis prell mentesitot es aktualis es elozo nyomogomb statuszt, vagy button, debounce library-t. En a „Bounce2.h” hasznaltam es jo eredmennyel. Ami az altalam javasolt megoldast illeti en menu sistemnek hasznalom, nalam bevalt. Mindig a menu ertekenek megfelelo progi reszlet fut le. A hozzászólás módosítva: Dec 6, 2015
Értem mit mondasz, csak nem egyről beszélünk... A gombok meg stb azt meg tudom csinálni, csak az a gondom, hogy pl a 4 soros kijelzőnél (mondjuk ezt most glcd-re csinálom, ahol 8 sor van) hogyan csináljam meg, hogy soronként lépkedjek, és visszafele is tudjak menni. Valami ilyesmit szeretnék: Bővebben: Link, ezt még meg is tudom csinálni, csak nálam több elem lenne, és belene a kijelző, illetve még lefele is görgetné. Viszont amikor görgetek, akkor ugye fent eltűnik egy elem. Ha pedig az aljáról felfelé, akkor meg az a gondom, hogy nem a kurzor indul el felfelé előszőr, hanem rögtön feljebb ugrik a lista... Ezt szeretném megoldani...
Hááát az én hozzászolasom nem erröl szolt, hanem Bővebben: Link
A hozzászólás módosítva: Dec 6, 2015
Azt használom ki, hogy lehetséges a függvényekre is pointerekkel mutatni. A deklarációjuk kicsit furcsa első ránézésre, de nem bonyolult. Nagyon praktikusak lehetnek olyankor, amikor készítesz egy általánosabb többször felhasználható kódot, ami nincs "tudomással" a később írt már adott feladatra készített megoldással. Pl. PID szabályzó osztály, ami egy pointerrel hívja meg mintavételezéskor a később megírt függvényeket, ami írja a tényleges kimenetet és olvassa a tényleges bemeneteket. Esetleg egy serial protokoll fordító, ami kezeli az általad készített protokoll minden ügyes-bajos dolgát és amikor kész egy csomag feldolgozása egy pointeren keresztül hívja meg a később megírt függvényt és átadja neki a feldogozott adatokat.
pl.: .h
.cpp
Későbbi kód:
A hozzászólás módosítva: Dec 6, 2015
Ez nem Arduino, ez csak "C".
![]() ![]()
Nem C, hanem C++. Az arduino is C++-n alapszik.
![]()
Sziasztok! Ha nem kell nagy sebesség (9600 baud), akkor 10-12 méter Serial kommunikációt tudok csinálni 2 arduinó között? Előre is köszi!
Oda már inkább valami robusztusabb fizikai átvitel kellene.
Legalább áramhurokszerű. Pl.: optocsatolókkal a TX RX oldalon. A leden áramnak kell átfolyni, így a hosszú drótra ráülő zajok kevésbé fognak zavart okozni. Esetleg sodrott érpár se árt.Csupaszon a uC portot nem illik sok méter vezeték után kötni. Mindenképpen valami jobb fizikai réteget kell kiépíteni. Vagy RF adóvevőkkel.Persze az is kérdés hogy oda/vissza kell vagy csak egyirányú? A hozzászólás módosítva: Dec 7, 2015
RS-485 modulokat pont erre találták ki.
Akár több száz métert is áttudnak hidalni viszonylag gyors soros kommunikációval. Persze sodrott érpár (utp) nem hátrány.Elég a vezeték vagy anélkül kellene? Egy / két irányú ?
Valahogy így lehetne legegyszerűbben 2 optocsatolóval és 4 ellenállással megoldani.
Ebben még az is jó lehet , hogy galvanikusan is függetlenek lehetnek az eszközök. A testpontokat se kösd össze, 4 vezetéket használjál. Persze az optocsatolók impulzus átviteli sebessége korlátozni fog , plusz a hosszú vezeték kapacitásai, de mivel viszonylag "nagy áramot" hajtunk át a leden akkor azok se zavarhatnak annyira.9600 -t biztos tudni fogja így esetleg lejjebb mész 4800 vagy teszteld le meddig bírja a rendszer ![]()
Szia! utp van behúzva, és kábelen tökéletes, csak annyi a lényeg, hogy 2 ér+ a közös gnd, és 2 irányba kellene. Igazándiból i2c-vel akartam megcsinálni, azt kipróbáltam 12m utp-n, és ment, csak az a gondom, hogy ha a slave i2c eszköz nem kap áramot, akkor a master nem hajtja meg az i2c-s lcdt. Vagy ha erre van valami ötleted az még jobb lenne.
Energia nélkül nehéz bármit is működésre bírni
![]() Soros adatvonalak nem energiaátviteli csatornák. A hosszú UTP végén már jelentős feszültség esés is felléphet terheléstől függően. Ezt is bele kellene kalkulálni . Ha táv táplálod akkor lehet inkább nagyobb feszültséggel indítani és a túloldalon stabilizálni. Akkor esetleg a galvanikus leválasztást elhagyva. Felszabadul 1 ér.Közös lesz a föld.A felszabadult éren pedig lehet vinni az energiát. A hozzászólás módosítva: Dec 7, 2015
Nem, helyben táplálom mind a két oldalt, tökéletesen megy, viszont nekem az kéne, hogy ha a slave állomás kiesik valamiért, akkor a master menjen tovább teljes működéssel. Viszont ha i2c-t használok, és a slave eszköz be van dugva az scl, illetve sda portokba, de nincs áram alatt, akkor a komplett i2c busz nem megy, tehát a master nem ír ki semmit az i2c-s kijelzőre sem. Ezt kéne kiküszöbölni.
A hozzászólás módosítva: Dec 7, 2015
Akkor próbáld meg optocsatolókkal mozgatni az SCL SDA vonalakat.
A nem vezérelt tranzisztor közel szakadást ![]() Vagy nem IIC buszt használni.Igaz akkor szoftveres serial portot kell használni. Elárulom annó az IIC nem kilométerre lett kitalálva, hanem csak IC to IC beszélgetésre az 1 2 tenyérnyi NYÁKokokn 5-10-20 cm vezetékezéssel.Persze az egy másik dolog , hogy elég robusztusnak tűnik és több 10 méterre is elvihetted.Ezt inkább csak a "mázli factornak" köszönhetjük.No meg megint vissza térve a lényegre : uC portjait nem lógatjuk sokszor 10 méteres drótokon keresztül a külvilágban. Bocs, látszik , hogy csak otthoni/asztali programozgató vagy.Ez nem baj!Nagyon hasznos dolog!DE a való világban sokkal több mindenre fel kell készíteni a technológiát! Így a kivitelezés, tervezés során használni kell az iparban már bevált eszköz rendszert. Kevesebb meglepetés érhet a hosszú távú üzemeltetés során, ha erre is oda figyelsz. A hozzászólás módosítva: Dec 7, 2015
Igazándiból én az i2c-vel jobban ki lennék békülve, akkor veszek optócsatolót, és kipróbálom. Viszont légyszi akkor még azt is áruld el, hogy milyet vegyek, mert ebben a részében nem vagyok otthon. Ja és még annyi, hogy az i2c-nél limitálva van a karakterszám?
Optok típusai ott vannak a rajzomon. 4N25 vagy hasonlóak
Hhmm IIC ?!?! Muszály?! LCD-d mellé nem tudsz / akarsz másik uC tenni ?! Bocsi most a rendszer tervedet nem látom át . Nem 2 eszköz van a láncodban ? IIC az emlékeim szerint alapból több 10-100 KHz sebességgel dolgozik. Fussunk neki még egyszer, legalább tömbvázlat szinten uC-k ,érzékelők, kijelzők és köztük lévő kapcsolatokat rajzold le.
Rendi, szóval van egy arduinó due (ő a mindenes master), i2c-n van egy glcd, egy rtc, és egy másik arduinó (nano), ő egy slave, aki 10 méterre lenne a másiktól. Illetve valószínű lesz még egy i2c-s ic is, ami ledeket fog hajtani. Most jelenlegi konfigurációval működik minden, csak annyi a gond, hogy ha a slave ardunak nem adok áramot, de nem húzom ki az i2c lábait, akkor a due nem jelenit meg semmit az lcd-n. (az rtc-t nem is néztem
![]()
Részben még így se kerek a dolog légyszíves rajzoljál
![]() Akkor neked a galvanikusan leválasztott optos megoldás lenne a legjobb. I2C elfelejtve más soros kommunikációt csinálni a nanó és a due közt. pl.: ha van még program tárhely az eszközökben akkor ezt a könyvtárat ajánlom: virtualwire Igaz ezt drótnélkülire tervezték, de nincs akadálya annak se , hogy duplex üzemben dróton optókon keresztül beszélgessenek egymással így összekötve: For testing purposes you can connect 2 VirtualWire instances directly, by connecting pin 12 of one to 11 of the other and vice versa, like this for a duplex connection: Arduino 1 wires Arduino 1 D11-----------------------------D12 D12-----------------------------D11 GND-----------------------------GND Vagy más egyébb serial com könyvtárat keresni az arduino könyvtárai közt amik nem a HW soros portokat használják.Mert azok az USB porton vannak alapból ![]() Részben még így se kerek a dolog légyszíves rajzoljál ![]() A hozzászólás módosítva: Dec 7, 2015
Van Drótod maradjunk azon
![]() Nekem meg időm nincs ![]() A hozzászólás módosítva: Dec 7, 2015
Jó, abban én is jobban bízok, leszedtem a libet innen, mindjárt kipróblom!
Igen csak ez a lib nem fordul le due-ra.
Amúgy a legjobb nem rs485 lenne? És azt meg tudom csinálni valami ic-vel?
És az miért baj?
Csak azt milyen libbel tudom meghajtani?
Az I2C nem fog működni optocsatolóról mert kétirányú az adatátvitel az SDA vezetéken, azért nem megy az I2C ha a slave nem kap áramot mert a port és a Vdd között parazita dióda az SDA és SCL lábat nem engedi felvinni H szintre, a felhúzó ellenállás nem fogja táplálni az egész áramkört.
|
Bejelentkezés
Hirdetés |