Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
I2C-t sem több méteres longwire kapcsolat tartásra fejlesztették ki.
(az má csak hab a tortán , ha ilyen messzire büntetlenül elviszik és véletlen működik dee erre nem lehet alapozni) A hozzászólás módosítva: Jan 20, 2017
Nem, nem. Az ic az ardu mellett van, csak bővítésre van. vagy ha egy 10 bites ic-t veszek akkor működhet?
A hozzászólás módosítva: Jan 20, 2017
HÁNY gombod van?
RS485 hoz is kell 4 drót legalább mert 2 adat és 2 db táp. Ezzel 3 gombot tudsz kezelni dee ha váltó feszt viszel át akkor már 6ot is lehetne átvinni ![]() Akkor a + periodusban egyik 3 diódát kapcsolhatod be . A - periodusban meg a másik 3 diódát kapcsolhatod be aztán ezeken keresztül az optók ledjeit. Igaz ott kell 1 pici puffer , hogy a ledek ne hunyorogjanak nagyon amikor a tranzisztort világítják meg. A hozzászólás módosítva: Jan 20, 2017
Egyszerűsítve 2 didódával lerajzoltam.
Így kvázi 1 éren független 2 jel megy át. Persze a közös drót miatt 2 van. Több kontaktus esetén kontaktusok számának a fele+1 szál kell.A táplálása váltakozó feszültség. ÁRAM KORLÁTOZÁS KELL soros ellenállások !!! Ez csak elvi vázlat. No meg a LEDnek kell adni 1 kis puffert 20-50µF mert vibrálnak 50 Hz-el . Ez zavarná a beolvasást. A hozzászólás módosítva: Jan 20, 2017
3 gombom van, de nem szeretném ennyire túlbonyolítani... Megnéztem sima anakóg bemeneten, ugye az 10 bites:
SW1 => 194 SW2 => 338 SW3 => 508 SW1 & SW2 => 140 SW1 & SW3 => 163 SW2 & SW3 => 254 SW1 & SW2 & SW3 => 123 Ez már jobban tetszik, szóval vagy veszek egy 10 bites ic-t, vagy nem tudom esetleg 12 bites?
Optók nélkül zajgenerátorod lesz a hosszú drót
![]() Elég a 10 bit bőven. A hozzászólás módosítva: Jan 20, 2017
És milyen ic legyen? ami 10 bit i2c és 4 csatorna? Illetve rs485 höz nincs ilyesmi ic?
Akkor mi is kell neked ? 3 nyomógomb állapota a dobozból beküldve a uC bemenetre?
Elvileg ez optoval leválasztva betolható 4 dróton keresztül. A uC van 1 szabad AD port akkor ellenállás létrával megoldható. I2C port bővítő a uC mellett. Az is jó lehet (annak a bemeneti lábaira is kell az opto ![]() RS485ön is kell 4 drót úgyis a tápfesz miatt jobb esetben távolban van helyi táp. RS485 csak az átviteli réteg, "inteligencia" nincs benne. ? ? ? akkor mi is van ?
A legoptimálisabb az i2c bővítő lenne, mert nincs analóg portom már az ardun. 3 gombom van távol az ardutól, ahol a gnd-on kívül 1 vezetékem van az ardu-ig.
Ahogy én csinálnám: 74hc165, ez 8 bemenetet küld el SPI-n keresztül. A 20m messzire levő dobozba raknék 4 kapcsolót, a 74hc165 bemeneteit lehúznám jó keményen GND-re, a kapcsolók pedig +Vs-re kapcsolnák. Folyjon mondjuk 10mA. A zavarérzékenységgel nem foglalkoznék, mert csak akkor vennék valósnak egy gombnyomást, ha minimum 50mS-ig kitartott folyamatosan. Készen is vagyunk.
Szerintem nem kell túlbonyolítani a dolgokat. Az I2C portbővítőnél a portbővítő IC lenne az Arduino közelében, és arra raknál rá 20m kábelt optocsatolókkal leválasztva? Optocsatolót berakhatsz a fent vázolt megoldásba is, az optó LED-jének úgyis kell áram. A hozzászólás módosítva: Jan 20, 2017
De ha jól értem, akkor így 4 vezeték + a +Vs kell a kapcsolókhoz. Vagy nem?
Van egy GND-d, meg egy szabad vezetéked? Innen szép nyerni! Húzz be új kábelt.
Eddig én is eljutottam, hogy nem egyszerű dolog
![]()
3 gombhoz 10bit bőven elég. Én nem foglalkoznék azzal, amikor több gomb van egyszerre lenyomva. Ne legyen, és kész!
![]()
Szia!
3 gombról írtál. Az nem jó, ha 1 gombot használsz, és figyeled a nyomvatartás idejét? Így nem kell több vezeték, kiküszöbölöd a zavarjeleket, és nem bonyolult.
Ennyi erővel akkor már "távírózhatna" is az 1 szál dróton ...
![]()
Tök jó irányba haladnak az Arduinos fejlesztők.
Volt egy kész programom Arduinon, de készítettem neki nyákot. Az Arduinos programot hozzá igazítottam az új nyákhoz. Lefordítottam az IDE-n belül, majd rákerestem az egy óránál nem öregebb .hex fájlokra a gépemen. Elkészült a rendes main.ino.hex, és egy main.ino.with_bootloader.hex is ![]()
Üdv! Egy olyan kérdésem lenne ,hogy szeretnék építeni egy időzitőt LCD kijelzővel egy UV levilágitóhoz és esetleg van e valakinek arduinos kapcsolása hozzá vagy lenne-e valaki aki segítene nekem ? A főbb kellékek megvannak hozzá(lcd, arduino) .
Sziasztok!
SPFD5608 kijelzőre szeretnék kiíratni a "tft.print();" fügvénnyel szöveget hexadecimális módban. Tehát úgy, hogy adott egy ASCII tábla (képen mellékelve), és a kiírandó karakterhez tartozó HEX értéket akarom megadni HEX módban, de sajna nem tudom hogyan kell. Vagy van erre más fügvény?
Én úgy tudom, erre való a tft.write(219); ami ezt eredményezi: █ , de lehet a tft.print(219); is ugyanezt eredményezi. Ha hexában akarod a számokat írni, akkor tft.print(0xDB); Ilyen karaktereket te is tudsz írni, ha lenyomod a bal oldali ALT-ot, nyomva tartod, és közben beírod a 219-et, majd elengeded az ALT-ot. ▄█▄█▄█ Ha rákeresel az ascii táblázatra, akkor látni fogod a számokat is. Vagy megnyitod a windowsos karaktertáblát, ott a Terminal betűtípust kiválasztva meg tudod tekinteni. Régen még decimális számként írta ki a kódját, ma már hexában sajnos.
A hozzászólás módosítva: Jan 21, 2017
Parancsolj: Bővebben: Link.
Nos a "tft.write();" végülis működik úgy, hogy ha decimális értéket írok bele.
Ha úgy használom, hogy "tft.write(0xFF);" akkor viszont nem a hozzá tartozó karakter képét írja ki, hanem a hozzá tartozó decimális értékét... Fél megoldás, de végül is így is jó... A hozzászólás módosítva: Jan 22, 2017
Üdvözlök mindenkit!
Szeretnék tanácsot kérni egy általam írt Arduino programmal kapcsolatban. Írtam egy programot, ami egy tekercselőgép forgását hivatott számolni. Egy 2X16 LCD kijelzőre írja ki a menetszámot. I2C -vel van hajtva a kijelző. Egy forgó jeladó (encoder) szolgáltatja az impulzusokat. A program képes eldönteni, hogy előre vagy hátra forog a gép és ennek értelmében növeli vagy csökkenti a kijelzöre kiírt értéket. Van még egy nullázó nyomógomb is. Ezzel az a probléma, hogy lassú a számolás. Ha másodpercenként 4-nél több inpulzus érkezik, azt nem tudja megszámolni. Az enkóderhez nem könyvtárat használtam, hanem saját programot írtam. Lehetséges, hogy könyvtárral gyorsabban tudna működni? Ha igen, akkor valaki tudna ajánlani egy jó encoder könyvtárat? A számolás gyorsítására szeretnék ötletet kérni. Csatolom a programot. Köszönöm!
Szia. Megszakítást kell használnod a bemenethez.
Bővebben: Link
Üdv
EEprom kezeléshez kérnék segítséget. Float,int és byte adatokat szeretnék tárolni,elsőre nyolc három jegyű float-ot. Az elsőt jól tárolja,ebből úgy tűnik nekem kell a memória szervezéssel foglalkozni.Az EEprom könyvtár ad erre valami segítséget?Esetleg hol találok magyar nyelvű korrekt leírást?
SZia, "a" könyvtárral, -megszakítást használva- én egy 500-at számoló enkódert nem tudtam olyan gyorsan kézzel tekerni, hogy nem számolt volna le minden impulzust. Talán még 100kHz-et is fogadott volna. A négyes szorzó megvolt, egy körbefordulással 2000-ig számolt. Nagyságrendekkel jobb, mint az általam kézzel írott, megszakítást éppen nem használó rutin.
A hozzászólás módosítva: Jan 22, 2017
SZia, például igy lehetne: EEPROM.write(báziscím + bájt sorszáma, harmadik byte); Egy ciklusba szervezve a báziscímet a blokk hosszának megfelelően léptetve. Tehát a változóidat szétszeded bájtokra, külön elnevezed őket, majd a ciklusban sorban eltárolod.
A float számok is 4byte-on tárolódnak, csak szét kell szedni őket valahogyan.
Mondjuk ezt jó lett volna elkerülni,gondoltam hátha a könyvtár ezt tudja kezelni.
|
Bejelentkezés
Hirdetés |