Fórum témák
» Több friss téma |
Fórum » Robotika kezdőknek
Akkor elnézést kérek, nálam nem volt gond...
Fogtam amit javasoltál, körbe is mértem, kiderült, hogy az a bizonyos C-vel jelölt vezérlő nem működik. Sajnos nem az első civil áldozata a próbálkozásomnak, e a másik két IC ugyanazokat az eredményeket adta, és azok működnek is (nekem akkor kapcsolja be a motort mikor GNDt kapcsolok a 2 vagy 7 lábra)
Mzozo: az L293D-vel nekem is működött, amíg meg nem sütöttem az ICt. Most hogy kicseréltem DNE-re most működik fordítva. Nézem az adatlapját a DNE-nek, de (néhány dolgot leszámítva) nem találok meg (nem értek meg) mindent az adatlapról. Igyekszem, próbálkozom... (ennyi telik tőlem egyenlőre )
Nem sikerült módosítanom
Magyarul: A PIC egyik lábán van egy led, ami villog. Ugyanide van kötve a motorvezérlő pl 7es lába. Mikor a LED ég, a motor áll. Mikor a LED elalszik, a motor forog.
A led egyik lába a pichez van kötve és a másik? Mármint gnd-re vagy ut-re? Ha csak az a gond hogy a led rosszkor világít akkor kösd be fordítva.. Mármint ha a led nem a pichez kötött lába a gnd-n volt akkor tedd át ut-re és fordítsd meg a ledet!
Nos GNDre van kötve. (őszintén nem tudom mi az az "ut").
Szóval egy 470 ohmos ellenállások keresztül van GNDre kötve, és az IC lábára van kötve a motorvezérlő 7es lába is. A motorvezérlő akkor kapcsolja be a motort amikor kikapcsolja a LEDet. Lehetséges ez? Ha nem akarom, hogy menjen a motor akkor kapcsoljam be a ledet? Vagy valamit nagyon benéztem már megint? Ha szépen kérem, valaki ránézne a L293DNE adatlapjára? Ha ott az szerepelne, hogy akkor kapcsolja be a motort, ha a 2 vagy 7 lábán LOW-ot kap (GND) akkor rendben működik. Az L293D az akkor kapcsolt be ha +5 Voltot kap (ha jól emlékszem).. Ez lehet hogy fordítva dolgozik? (ha nem, akkor nem tudom mi van) Próbálom értelmezni az adatlapot... de vannak versek is amiket jobban értek mint ezt (egyenlőre.. de dolgozom rajta)
Szerintem a kályhától kellene elindulni! Felejtsd el egyenlőre a pic-et!
Az ut az elem pozitív kivezetését jelenti, a gnd pedig a negatívat. Azért mondtam hogy mérd le megint a dolgokat, mert nem volt meg a tested. EZ már megoldódott? Mert ha nem mondod, akkor nem tudjuk hogy csináltál-e valamit. A motort hogy kötötted be? Mert lehet az ic-t félhídként, és teljes hídként is használni. Jó lenne ha csinálnál egy tisztességes rajzot, hogy lássuk mi hol van, mert így csak vakon tapogatózunk mindannyian!
Igaz, már a teszt is furcsa.
Rakom össze egy fotóra és rajzolom is le, hogy ki kivel van .
Megvagyok, három képet rakok fel.
Az egyiken látszi a béna PAIN-tes rajzom, mi van bekötve. Röviden: 1,8,16: +5Volt; 4,5,12,13 GND 2,7 amit dugdosok 3,6 megy a motorhoz, jelen esetben két duo led van rajta. A két képen látszi, hogy ha 2-es lábat GNDre kötöm, akkro világít a led, és ha a 7-es lábat kötöm GNDre, akkor is, csak más színnel.Ha mindkettőt, akkro sem világít, ha egyiket sem akkor sem (mintha jól működne) Viszont (ezt remélem elhiszitek, mert csináltam képet, de azt már nem töltöm fel) ha +5V-ra kötöm, akkor semmi nem történik. Se egyik, se másik, se mindkettővel.
És a maradék két kép (kicsit nagyok lettek elsőre)
A zöld led kicsit halványnak tűnik a képen... a valóságban is kicsit.. de a zöld nekem mindig halványabb mint a piros. De világít, határozottan.
Nem lehet hogy azért mert a bemenetannyira érzékeny hogy a mellette lévő láb 5 voltja átszivárog és mindíg felhúzódik a tápra és ezért nem csinál semmit ha az 5 voltal próbálod? amelyik lábra nem adsz jelet azt le kell testelni pont az ilyen zavarok miatt. A képen látszik hogy te csak kihúztad de nem adtál fix potenciált a lábnak ezért instabil az egész!
Azt kipróbáltad amit kokozo mondott? Ami kanóc éppen lóg a képen, azt bedugod testre?
Próbáld meg úgy, hogy a vezérlő bemenetet lehúzod egy ellenállással testre! Így amikor kanócolsz a +5V-ra, akkor az ellenállás mint ha ott se lenne, de ha meg kihúzod, akkor ad egy fix 0V-ot a bemenetre. Tehát egy 1kOhm-os ellenállás egyik lába a meneten, a másik lába meg 0V-on. Ha még mindig nem jó, akkor légyszíves csinálj mégegy mérési sorozatot, olyat mint legutóbb táblázatban összefoglalva! Nem létezik, hogy ne találjuk meg a hibát!
Próbáltam, de most megcsináltam megint. A 7es lábra kötöttem egy 10Ks ellenállást és GNDre kötöttem. Amint be van kötve, világít a led (forog a motor). Ha bedugom a 7es lábat Tápra, akkor elalszik a LED.
Mindjárt elkezdem körbemérni. Mert vagy tényleg fordítva működik, vagy ... (nem is tudom elképzelni mi lehet más...) Idézet: „A led egyik lába a pichez van kötve és a másik? Mármint gnd-re vagy ut-re? Ha csak az a gond hogy a led rosszkor világít akkor kösd be fordítva.. Mármint ha a led nem a pichez kötött lába a gnd-n volt akkor tedd át ut-re és fordítsd meg a ledet!” Erre gondolsz? Ezt még nem próbáltam, mert bár a LED fordítva égen, de még mindig az történne, hogy amikor a PICben bekapcsolom a motort, az akkor állna le. Igazából a fene se bánná, hozzászokom, hogy amikor használni akaromn a motort, akkor kell kikapcsolni, és kész. Csak nem tudom, hogy ez így normális e.. (mármint a motorvezérlőnek...) Idézet: Eközben a 2-es láb mire volt kötve? „Próbáltam, de most megcsináltam megint. A 7es lábra kötöttem egy 10Ks ellenállást és GNDre kötöttem. Amint be van kötve, világít a led (forog a motor). Ha bedugom a 7es lábat Tápra, akkor elalszik a LED. Mindjárt elkezdem körbemérni. Mert vagy tényleg fordítva működik, vagy ...”
Ha 10Kval a GNDre van kötve, akkor világít folyamatosan, a másik a levegőbe lóg, vagy tápra van kötve akkor is. Ha a másikat is GNDre viszem akkor elalszik (ez olyan sztem, amikor mindkettőn ugyanaz a feszültség van, akkor nem megy a motor.
Közbe körbemértem, megint kétféle ICt. Kép lent. Én nem okosodok ki rajta. De! Amikor a GND és a 2, vagy GND és 7 láb között mértem, akkor elkezdett világítani a led, mintha csak bedugtam volna a GNDbe az adott lábat. Feszültség mérés közben elvileg nem folyik áram... ha jól sejtem. Akkor miért világított? Vagy ez így normális?
Üdv! Ha el tudnád készíteni a az áramkör kapcsolási rajzát, különösen a LED-ekre, polaritásra figyelve, szerintem azonnal rájönnél, hogy mi a helyzet.
Csinálj kapcsolási rajzot papíron, kösd össze az alkatrészeket a lábakkal... Erre gondolt...
Ennek az áramkörnek semmi baja.. Annyi csak a baja hogy nem érted meg hogy nem szabad lógva hagyni egyik lábat sem! itt az igazságtáblája az ic-nek ebből világosan látszódik minden! Ahol 1-2 voltot mértél azok a lábak lebegnek tehát bármilyen lehet az állapotuk! de főleg magas érték! A műszernek is van ellenállása és mivel ez egy érzékeny ic a szivárgó áramok is fel és le tudják húzni de ezt már egyszer leírtam. A pic sem ad ki 2 voltos jelet csak 0-t és 5 voltot! Tehát ezt kellene neked is szimulálnod és nem lebegtetni a lábakat akkor már rég működne az egész rendesen! 3-as és a 6-os lábra rakj 1-1 10k-s ellenállást a gnd re húzva ha máshogy nem tudod megoldani és láss csodát hogy működni fog!
Nem kell papíron, de az a legegyszerűbb. Arra gondolok, hogy itt logikai hiba van.
A dupla led, meg ki tudja, hogy van bekötve és hány lába van. (?)
Ezt már próbáltam, azonban abban igazad van, hogy csak az egyik lábat húztam GNDre, és úgy nem volt ok. És akkor nem is lehetett ok...
(ha jól gondolom 2,7 lábra gondoltál, csak félreírtad)
Úgy fest igazad volt. Most rendben működik.
Azt hittem ha az egyik lábát lehúzom és nem jelent megoldást, akkor másikat fölösleges. Hát.. NEM AZ! A lényeg az EGYIK LÁBÁT se. Köszönöm! Megjegyzem egy életre! Kérdés: A PIC-nél is így kell olvastam. De az csak a bemenet lábakra igaz, ugye? Amit meg nem használok azt kimenetre állítom...?
Akit esetleg erdekel:
Vonalkoveto szenzor epites (LED+LDR): Bővebben: Link Akadalyerzekelo szenzor epites (IR LED+IR fototranzisztor): Bővebben: Link 2
Amiről eddig még nem volt szó, de nem biztos hogy tudod:
A motor bekötését tekintve pont a bonyolultabb helyzettel kezdted, szerintem ez kavart össze! Képzeletben kövesd végig amit most leírok! Fogj egy motort, és kösd az egyik kivezetését a 3-as lábra, a másik kivezetést a testre! Természetesen a tápokat azért add meg az ic-nek ahogy eddig is! A 2-es lábat egy darab dróttal ha felkötöd tápra, akkor a 3-as lábon megjelenik a motortáp (magyarán amit a 16-os lábra kötöttél). Mivel a motor egyik fele táp, a másik pedig test, ezért forogni fog az egyik irányba. Ha most a 2-es lábat a dróttal lekötöd testre, akkor a 3-as lábon is test jelenik meg, vagyis a motor mindkét kivezetése testre kerül. Ergo nem forog. Elértük, hogy vagy forog, vagy nem forog. De forgásirányt így nem lehet váltani. Ha egy ellenállást kötsz a 2-es lábra, amivel lehúzod testre, akkor azzal eléred, hogy ha a drótot sehova sem kötöd, akkor az ellenállás miatt olyan lesz, mintha testre kötnéd. Ez ezért jó, mert így stabil, nem kezd el "magától" dolgokat csinálni. Ez az alapja az összes többi üzemmódnak is! Amit te csinálsz, az az, hogy a motor másik kivezetését nem a testre kötöd, hanem a 6-os lábra. Ezzel eléred azt, hogy külön külön tudod vezérelni a motor mindkét kivezetését, vagyis eldöntheted, hogy merre forogjon. De ehhez KÉT vezérlés is kell, nem elég az egy mint az előbb. A motor működése: Ha Vez1 táp, Vez2 táp: a motor semmit nem csinál, mert mindkét kivezetése tápon van, vagyis nincs közöttük potenciál különbség, nem fog az áram folyni. Ha Vez1 és Vez2 ellentétes (táp és gnd), akkor a motor az egyik irányban forog. Ha megcseréled, akkor a másikba forog. Ha Vez1 és Vez2 gnd: A motor megint nem forog. Bónusz az egészben az, hogy ha mindkét vezérlő bemenet ugyanazon a potenciálon van (tehát mindkettő ut, vagy mindkettő gnd), akkor a motor nemhogy nem forog, de fékeződik is. Bocs a hosszú hozzászólásért, de azt hiszem nem volt hiába
Hát azért ennek a fórumnak még nem találtam párját! (semmilyen témában) Mindig van tanulságos, hozzáértő, segítő hozzászólás, amiből lehet annyit tanulni, mint sehol máshol!
Köszönöm, értem, világos! Fizikus: PONT ezt kerestem (IR ütközés). Nagyon jó, köszi. A modulációt még nem értem (szeretnék az autómhoz egy nyitót csinálni), de keresgélek...
Egy kissé furcsa kéréssel fordulok hozzátok: Szükségem lenne egy TowerPro SG-5010 típusú servo olyan forgó részére mint a linken található jobb oldalt fent. Akinek van elkallódva azt szívesen megvenném pár száz forint összegért külön sajnos nem találtam neten h beszerezhető lenne. köszi a segítséget
Hello!
Van egy giroscope modulom. Típusa: Gyroscope Module 3-Axis L3G4200D Ezzel szeretnék I2C-n beszélgetni. Ehhez kellene neklem valami kiindulási alap, soha nem használtam még I2C-t. Szóval amiben megakadtam: -Honnan tudom mi a címe az eszköznek?(Adatlapban nem találom) -Az információkat hogyan küldi? Milyen sorrendben? Lehet, hogy amatőr kérdések, de egyenlőre gőzöm nincs hogyan álljak neki. Köszi.:B.M.
Üdv.
Először is azzal kell kezdeni, hogy néhányszor átrágod magad a chip adatlapján, abból mindent megtudsz amire szükséged van, én is így voltam ezzel kb fél éve és megtanultam A tanuláshoz ajánlom, hogy először valamilyen szimulátor programban (pl. Proteus 7.xx) próbálkozz így nem károsodhat az eszköz, ami gondolom nem volt olcsó. Ha a programban nincs meg ez az chip akkor nyugodtan tehetsz helyette valamilyen eeprom-ot (24CXX), mert ugyanazon az elven működnek. Mivel a chip 3.3V-os erre oda kell figyelni, ha 5V-os mikrovezérlőt használsz akkor kell egy szintillesztő (pl. MAX3378). A következő lépés a megfelelő bekötés (adatlap 20. oldala), SCL, SDA vonalakat 10k-s ellenállásokkal felhúzni Vdd-re (kisebb ellenállásokkal gondok lehetnek, mivel a chip nagy sebességen is működik - 400kHz -), lehet hogy kell még egy-egy 1nF-os kondi az SCL/SDA és GND vonalak közé. A 22. oldalon van szó az eszköz címéről, az I2C szabvány szerint minden eszköznek van egy 7 bites címe majd ezeket követi egy bit amivel az írást/olvasást állítot be (írásra 0, olvasásra 1), tehát: AAAAAAAR, AAAAAAAW (A - address, R - read, W - write). Jelen esetben az eszköz címét az SDO láb logikai állapotával tudod módosítani, ezek lehetnek: ha SDO = 0 akkor 0xD1 (hexában) olvasásra ill. 0xD0 írásra, ha SDO = 1 akkor D2 ill. D2 - adatlap 22. oldal 13. táblázat. Az adatforgalom a 14., 15., 16., ill. 17. táblázatokban vannak feltüntetve, ahol a Master lehet egy mikrovezérlő és a Slave a giroszkóp. Egy bájt beírása az eszközben a következő képpen kell történjen: Start bit -> Eszköz címe + írás (pl. 0xD0) -> a Slave válasza után ki kell küldeni annak a regiszternek a címét amibe szeretnéd írni az adatot pl. 20h (0x20 - CTRL_REG1) -> miután a slave ezt is megkapta, erre is válaszol, ezután lehet küldeni az adatot (1 bájt) -> a slave valasza után a STOP bitet kell küldeni. Több adatbájt írása esetén az adat bájt után nem a stop bitet kell küldeni, hanem a következő adatot, ekkor az eszköz automatikusan növeli a címregisztere értékét, így a következő címre helyezi az atdatot. Szerintem a giroszkóp esetén erre nem lesz példa, mert abból többnyire olvasni kell. Az adatok kiolvasása egy kicsit különbözik az írástól, a Start bit után itt is az eszköz címe + írás (0xD0), majd az olvasandó adatregiszter címe, ezt követi egy újraindítás (Stop és utána Start), majd az eszköz címe + olvasás bit (0xD1), ezután érkezik az adat. Ezt követően 1 bájtos olvasás esetén NAK (no acknowledge) majd Stop jeleket kell küldeni az eszköznek, ami befejezi a küldést, több bájt olvasása esetén AK jelet, ennek hatására az eszköz visszaküldi a soron következő regiszter adatait, majd mikor nem akarunk több adatot kiolvasni akkor a NAK majd Stop biteket kell küldeni. Itt is csak az első regiszter címét kell megadni, mert a többi automatikusan nevekszik egyel. Azért ennyire komlex az adatforgalom, mert egy I2C sínen akár 127 különböző eszköz is lehet, így meg kell címezni azt az eszközt amivel kommunikálni szeretnénk. A Start bitre minden eszköz - ami a sínen található - készenlétbe vált és várja a címet, ha a sínen az ő címe érkezik akkor válaszol rá és így elkezdődik a kommunikáció, eközben a többi eszköz megint alvó (sleep) módba kerül. A giroszkóp regisztereinek a címeit a 27. oldalon találod, a 6 adatregiszter amiből a tengelyek szögsebességét kapod meg az a 28h-2Dh (OUT_X,Y,Z) címeken van, minden adat 2 bájt ezért van a H és L jelőlés ahol H a magas bájt (bal oldali) és L az alacsony. Ahányszor ez eszközt elindítod mindig az első lépés a konfiguráció, azaz a regisztereiben be kell állítsd a neked megfelelő paramétereket (sávszélesség, mintavételezési frekvencia, megszakítások ...) ezeket is az előbb leírtak alapján, majd ezután csak megcímzed az első adatbájtot (28h) és csak olvasod ki az értékeket. Csatoltam a giro adatlapját amit én találtam, és egy hasznos szakirodalmat az I2C-ről magyarul, ezeket ajánlom átolvasni és akkor minden világos lesz, példaprogramot meg találsz a neten rengeteget. Elnézést a hosszúra sikeredett válaszban de próbáltam elég érthetően elmagyarázni a lényeget Jó munkát! Üdv. Attila
Ez ugyan Arduino-s pelda, de megtalalod benne ami a hasznalatahoz kell...
L3G4200D Arduino-val |
Bejelentkezés
Hirdetés |