Fórum témák
» Több friss téma |
Idézet: „ne kelljen mindenféle módosítgatást eszközölni, mert az csak felesleges idő és pénz pocsékolás lenne” Ez képtelenség.
A cikkben szereplő PIC programot rá is tölthetem a "PIC18F4550" PIC-re?
Vagy az csak cikkben szereplő PIC-re jó?? A "motorvezérlés H híddal" topicban meg nem igen találok megoldást. 7 oldalnyi hozzászólás van, de a vége fele egyre bonyolultabb megoldások vannak. Sehol nincs olyan, hogy na ez a megoldás, ezzel így működik, vagy valami hasonló. Mindenki csak ajánlgat, de semmi eredmény, vagy csak én nem értem. Idézet: „Ez képtelenség.” Miért lenne az? Nem hinném, hogy egy ilyen egyszerű, (mert szerintem aki ért hozzá annak biztos egyszerű) kapcsoláshoz tesztelgetés, meg próbálgatások kellenének.
Ez relatív, de egy kezdőnek biztosan nehéz, én is végigjártam ezt az utat, és hidd el, csak lépésről lépésre lehet fejleszteni.
Szerk.: egy 555-ös villogó egyszerű, mármint ha nem akarjuk érteni hogyan működik, de ez azért már a haladó kategóriába tartozik. Idézet: „egy 555-ös villogó egyszerű, mármint ha nem akarjuk érteni hogyan működik” Én programozni, úgy kezdtem el, hogy letöltöttem több programnak is a forráskódját (nem épp egyszerű programok voltak) és elkezdtem olvasgatni a forráskódját, majd törölgettem belőle, hogy lássam minek milyen hatása van, meg bizonyos részeket kimásolgatta, hogy külön mit csinálnak, és így értettem meg később, hogy mi mire jó és mit csinál, és most már magam tudok nulláról programokat írni. Szóval én elképzelésem szerint, ez az eljárás valamennyire az elektronikában is működhet. Plusz mind e mellett még programozás esetén a 'haladjunk szépen sorban' dolog, csak időpocsékolás, addig ez elektronikában pénzpocsékolás is.
Már kezdem érteni, miért nem jutsz előrébb. A kezdeti lépéseket mindenkinek meg kell tennie. Nincs királyi út...
Láttam már neves gyártótól származó berendezésben is apró átkötéseket. Nekem sem sikerül minden áramkör (inkább csak néhány sikerül) elsőre, pedig felsőfokú szakirányú végzettséggel és sok-sok év gyakorlattal rendelkezem. A topikban szereplő feladat mindenképen meghaladja egy kezdőnek való szintet. Ha megfogadod a módszert és szétválasztod több kisebb feladatra, akkor meg fogod tudni csinálni. Ha egyben készíted el, sok nem teljesen működő rész épül majd egymásra és egy hibánál nem fogod tudni, hol is keresd. A PICKit2 beruházás megtérül, nem csak programozó, hanem debugger és logikai analizátor is egyben. Vegyél dugaszolós panelt (breadboard), amin egyszerűen ki lehet próbálni az áramköröket, könnyen lehet módosítani. A tervezett teljes vezérlő felépíthető egy ekkorán. Kelleni fog még egy-két tápegység. Mindezek ellenére egyből belevághatsz, de nem fogunk tudni segíteni, hiszen mi sem fogjuk tudni, hol lehet a hiba. A kapcsolás egyszerű lesz: a 8 db H híd bemeneteit kösd rá a 18F4550 RB és RD portjaira. Az USB bekötése az adatlapba szerepel. Máris kész a végleges áramkör.
Mivel a PIC kimenete nem tud néhány 100 mA áramot leadni, és nem képes 5V -nál magasabb feszültségen működni, minden motorhoz be kell tenni egy H hidat. Egy L293/L298 2 db H hidat tartalmaz. A 8 motorhoz tehát 4 db tok kell.
Egy H híd vezérlésére 2 db bemenő jel kell, a 8 db H híd 16 digitális jellel vezérelhető. Az RB7..0 és az RD7..0 pontosan 16 db digitális kimenet. Kell még egy 470nF kerámia kondenzátor a Vusb láb és a föld közé, egy USB csatlakozó a D+, D-, föld és a táp lábakhoz. Ne maradjon le minden integrált áramkör minden tápfeszültség lába és a föld közül egy-egy 100nF karámia kondenzátor. Ezzel kész is az áramkör. Bocsánat: Megint nem gondolkodtál, csak várod a kész tervet... Jöhet a program fejlesztése, de nem írom meg helyetted...
De gondolkodtam, épp azért kérdeztem.
De viszont ilyenre, hogy kondenzátorokat kell a kapcsolásba tenni, arra magamtól soha nem jöttem volna rá. Épp ezért is örülök, hogy így részletekbe menőleg leírtad. Köszönöm! Ha megtalálom a TINA 8-ban az L298-at vagy valami hasonló alkatrészt, akkor megalkotom benne, és csinálok képet róla, csak azért, hogy tudjam, hogy jól értelmeztem e a leírtakat. (De sajnos egyelőre még hasonló alkatrészt sem találok, viszont a többi megvan.) Mert nem szeretném egyik alkatrészt sem kinyírni amiatt, ha valami rosszul kötök be. Idézet: „egy USB csatlakozó a D+, D-, föld és a táp lábakhoz. Ne maradjon le minden integrált áramkör minden tápfeszültség lába és a föld közül egy-egy 100nF karámia kondenzátor.” Ezen részét a hozzászólásodnak, nem igen tudtam értelmezni. Az eddigiek alapján 2 motor esetében erre jutottam: (csatolva a fájl) Elnézést a furcsa alkatrészekért, de mivel se az L298N és se az USB nem szerepelt a TINA 8 adatbázisában, így azokat nekem kellett megrajzolnom. Idézet: „De viszont ilyenre, hogy kondenzátorokat kell a kapcsolásba tenni, arra magamtól soha nem jöttem volna rá.” Ott vigyorog a két kondenzátor az L298 adatlapjának első oldalán... Idézet: „Ezen részét a hozzászólásodnak, nem igen tudtam értelmezni.” Nézd meg a 18F4550 adatlapján...
Hali!
Hasonló gondokkal küzdök mint a topic indítója: PIC18F4550-al kívánok kommunikálni USB HID módszerrel. A CDC módot már próbáltam, készítettem vele működő programot. Viszont a HID kapcsolatra van szükségem. Én is VB6-ban próbálkozom. Olvastam a Watt igen hasznos leírását a támával kapcsolatban, kár hogy nem a 4550-ra van írva. Letöltöttem és feltelepítettem a Mikrochip Application Library-t és próbálgatom a PICDEM - FSUSB demóját. VB6-ban tudok is kommunikálni, kapcsolatot létesítés-bontás, jellemzők lekérdezése. Viszont nem tudom hogyan lehet lekérdezni az analóg RA0 bemenet adatait. (ReadPOT) Tud segíteni valaki? Üdv.
Amúgy nagyon úgy hangzik, mintha te azt várnád, hogy részletesen megtervezzük helyetted a dolgot.
Idézet: „Én programozni, úgy kezdtem el, hogy letöltöttem több programnak is a forráskódját (nem épp egyszerű programok voltak) és elkezdtem olvasgatni a forráskódját, ....” Nem pénzpocsékolás, vannak jó szimulátor programok, amikkel lehet építgetés nélkül is egy-egy áramkör viselkedését tanulmányozni. (pl Multisim, Tina etc...) A hardvert ugyanúgy össze lehet ollózni mint a forráskódokat, ez a digitális áramkörökre halmozottan igaz. De mint említettem a linkelt cikket pár hozzászólással ezelőtt azt egy az egyben felhasználhatod már csak az l298 ből kell 4 darabot rákötni. ( Az adatlap x-edik oldalán vannak mintakapcsolások, amiken még a motorok is be vannak rajzolva, ha mégnézted volna, tiszta lenne a bekötése.) Igen a 2550 kódja átvihető 4550 re, de -ahogy ezt is írtam már- a microchip FSUSB Demo Board 4550 re épül, és ehhez is hozzaférhetőek a mintaprogramok 100%ig kommentezve dokumentálva.
Előre bocsátom: nem tanulmányoztam át a cikkben szereplő programokat...
Idézet: „Viszont nem tudom hogyan lehet lekérdezni az analóg RA0 bemenet adatait. (ReadPOT)” Ezért írtam, hogy az USB dokumentumokat át kell olvasni. A HID kommunikáció előre definiált blokk(ok)ból áll, amiknek a felépítését az eszköz leírója adja meg. Egy univerziális megoldás, ha mindig egyféle méretű és felépítésű blokkot használunk fel. A blokk legelső adata azonosítja a parancsot, a többi a paraméter. Az eszköz a vett blokk első adata alapján feldolgozza a paramétereket és összeállít egy válasz üzenetet. Más módon is fel lehet építeni a kommunikációt. A HID adatforgalomban van egy adattípus azonosító is, amivel meg lehet különböztetni az adatblokkokat. Továbbá több endpointot is létre lehet hozni, és az endpoint sorszáma alapján lehet a hozzárendelt adatokat feldolgozni, a választ összeállítani. A meglévő programban azonosítani kell a led vezérlő parancsot, létre kell hozni egy másikat a RA0 analóg értékének visszaküldésére. Meg kell oldani, hogy a kommunikáció mellett a RA0 analóg jelét a pic programja mintavételezze, a mintát tárolja. A parancs a legutoljára tárolt értéket küldje vissza válaszként. A PC oldali programot ki kell egészíteni az új parancshoz tartozó gombbal és az eredmény megjelenítésével.
Hali!
Köszi a gyors választ. A PIC oldali mintavételezés, adatküldés megtörténik a demo programban: ToSendDataBuffer[1] = w.v 0]; ToSendDataBuffer[2] = w.v[1]; USBInHandle = HIDTxPacket(HID_EP,(BYTE*)&ToSendDataBuffer[0],64); A PC oldalon a küldött adat azonosítója meg is van, a további adatot nem tudom megjeleníteni. Üdv.
Az eddigiek alapján eddig jutottam.
Kérdésem, hogy van e olyan, amit rossz helyre kötöttem, vagy feleslegesen raktam bele (gondolok itt a kondenzátorokra). A másik kérdésem, az USB D- és D+ hova kössem? Esetleg a PIC18F4550 RC4 és RC5 lábához? (Ilyet láttam valahol.) Vagy annak bekötése attól függ, hogy írom meg a programot a PIC-re? A másik az L298N híd 2 enable lábát hova kössem? Vagy az is programtól függ? Ezeken kívül, van még valami amit kihagytam a kapcsolási rajzból vagy rosszul kötöttem be? Előre is köszönöm a segítő válaszokat.
Akkor belinkelem az említett cikket másodszorra is
Bővebben: Link Ez az alapkapcsolás. a lábakat ugyanúgy megtalálod a 4550en is. A rajzon amit csináltál, a motorok és l298 pár lábának bekötésének kivételével minden rossz. Elnézést kérek a bénázásom miatt. 1. alkalommal, ugye semmit nem értettem a kapcsolási rajzból, nem láttam semmi hasonlóságot azzal amit én akarok csinálni. 2. alkalommal, már részben stimmeltek a dolgok, csak ugye láttam, hogy jóval kevesebb lábú PIC-ről van szó, mondom az tuti nem jó úgy. Aztán most így 3.-jára sikerült megértenem, mi hogy van. Köszi a kitartásodért, és még egyszer elnézést a bénázásomért. Szóval akkor elvileg most már tökéletes a PIC és az USB összekötése. Kérdés még akkor, hogy az L298N bekötése még milyen hibákat és hiányosságokat tartalmaz? Előre is köszi a választ.
Hali!
Jó helyen keresgélek? /* Device Descriptor */ ROM USB_DEVICE_DESCRIPTOR device_dsc= { 0x12, // Size of this descriptor in bytes USB_DESCRIPTOR_DEVICE, // DEVICE descriptor type 0x0200, // USB Spec Release Number in BCD format 0x00, // Class Code 0x00, // Subclass code 0x00, // Protocol code USB_EP0_BUFF_SIZE, // Max packet size for EP0, see usb_config.h 0x04D8, //0x04BB // Vendor ID: Saját Vendor ID 0x003F, //0x0BB // Product ID: saját Product ID 0x0100, // Device release number in BCD format 0x01, // Manufacturer string index 0x02, // Product string index 0x03, // Device serial number string index (3-as idex megadva, lásd 291. sor) 0x01 // Number of possible configurations }; Üdv.
Az ENABLE lábakat is a kontrollerre kell kötni, azokra adott PWM jellel lehet szabályozni a motor sebességét.
A Current sensing lábakat földre kell, ha az áramokat nem akarod mérni, mert nem zárul anélkül az áramkör(adatlap 1.oldal "block diagram") A "supply voltage" az a feszültség amit a motorokra kapcsol, itt az USBről szedett 5V kevés lesz, valamint nem is terhelhető annyira. A logic supply az mehet usbről. A tápvonalakat még mindig nem úgy kötötted be ahogy a rajzon vannak. Kondenzátort sorbva kötni egyenáramú körben nem annyira szokás, mivel szakadásként viselkedik. Valamint majd be kell rakni diódákat (adatlap 8.oldal), mert az IC nem tartalmazza ezeket, viszon nélkülük elég gyorsan tönkremegy.
Irigylem tudásod.
És továbbra is köszönöm kitartásod, mások már rég feladták volna. 1 bekötést javítottam a PIC-en plusz a híd-on 2 földelést. De a többit nem értem. Most akkor az Enable A és B-t hova is kell kötni? Vagy az a PIC-re töltött programtól függ? A "Supply Voltage" és a "Logic Supply" hova megy? Ezen esetbe mind2 esetet kérdem, hogy ha csak mondjuk 5V-os motorokat használnék, azaz elég volna az USB által leadott feszültség, és azt az esetet, hogy ha külső áram ellátás kéne mondjuk a 12V-os motorok miatt. Köszi előre is a választ.
- C3 még mindig rosszul van bekötve...
- Enable: Az L298 kimenetei akkor lesznek aktívak, ha a hozzájuk tartozó Enable bemenet magas szinten van. Ha a 8 motort külön - külön akarod vezérelni a kontroller újabb 8 kimenetét kellene elhasználni... Mehet egyszerűen ellenálláson keresztül az USB +5V -jára. - Motor táp: A motorok tápjának a 8 motor által felvett áramot is képesnek kell lennie leadni. Egy USB eszköz a szabvány szerint max. 0.5A -t vehet fel a csatlakozójáról. Ebbe beleszámít a vezérlő teljes áramfelvétele is (a 4 db L298 összesen kb. 240mA -t fogaszt).
Szia!
Remélem, nem kavarok be az eddigiekbe a hozzászólásommal. Sokan itt a PIC-et említik USB-hez, viszont itt az oldalon található egy cikk, az USB Explorer. Igaz, önmagában a cikk nem tér ki teljesen mindenre, viszont tartozik hozzá egy fórumtéma is, ahol minden ott van, érthetőbb módon. Visual Basicben természetesen meg lehet írni a PC oldali szoftvert, azt hiszem, én egy C#-os könyvtárat használtam hozzá (nem vagyok biztos ebben, hogy ezzel kapcsolatban találtam rá), viszont tökéletesen működik VB-ben is. Csak az AVR-t kell C-ben felprogramozd (vagy épp, amiben szeretnéd, elég sok fordító van erre is), és a HEStore-ban is található nem drágán AVR programozó. A kapcsolást felhasználva, és a forráskódot minimálisan átírva tudod is használni (persze a kiegészítő áramköröket bele kell tenned). Nem tudom, ki hogyan van vele, de nekem AVR-rel sokkal hamarabb sikerült működőképes USB-s eszközt készítenem, mint a PIC-kel. Tudom, mindenkinek más megy jobban Üdv
Így jó?
Az L298N-nél a dióda bekötést nem értem, akárhogy nézem a PDF-et. Ok, hogy be van számozva, de a PDF elején 2 ábra is van és máshogy vannak a számok/megnevezés párosok, és nem tudom most a diódásdi az melyikre vonatkozik. Az Enable lábakat sem értem hova kössem. Hisz a PIC-en az összes RB és RD láb már foglalt (ugye 8 motor esetében). És még érdeklődésnéként, a PIC-en az OSC1 lábbal kell valamit kezdeni? Előre is köszi.
Köszönöm a segítséget, de inkább maradnék a PIC-nél.
Főleg azért, mert már megvettem a PICkit2 klónt.
Ember! Legalább ezt a cikksorozatot olvasd már át: Bővebben: Link
Azt tegnap elkezdtem már olvasni. Az 1. részt már végig is olvastam. Már csak 2 van.
Csak tekintve, hogy még nincsenek meg hozzá a megfelelő alkatrészek, így megálltam benne, jobb szeretnék úgy haladni benne, hogy közbe próbálgatom. De mindezek ellenére, párhuzamosan szeretném elkészíteni azt amiről ezen topic szól.
ÍSzerintem előbb tanulmányozd át a honlapomon a PICCOLO projektet, hogy a PIC18F4550 vonatkozásában képben legyél!
Az L298N adatlapjának tanulmányozásával próbálj tisztába jönni a felépítésével és működési elvével. Motorvezérlés ügyében a Microchip honlapján keress alkalmazási mintapéldákat (Application Notes). Érdemes megnézni a PICDEM MC Development Board dokumentációját is. Nem tudom, miből gondolod, hogy a PIC18F4550 alkalmas 8 db mortor független vezérlésére. Nem PW-mel kelle szabályozni a motor áramát/fordulatszámát? |
Bejelentkezés
Hirdetés |