Fórum témák
» Több friss téma |
Sziasztok! A programrészlet, ami nem azt adja, amit a DVM-mel mérek:
Köszi a fáradozást! A hozzászólás módosítva: Ápr 15, 2013
A b=read_ADC(CH_FORWARD); konverzió eredményét kellene ellenőrizni, mert nem tudni, hogy a későbbi skálázásnál mit csinál a programod. Mellesleg a float típust jó volna kiküszöbölni. Nem hiszem, hogy nélkülözhetetlen volna. Számold át az eredményeket inkább millivoltokba! 32 bites (long) változó kell hozzá.
fesz = b*5000L/1023L; Ezt könnyen kiírathatod a PICCOLO projektben található outdec() függvénnyel...
Szia!
Idézet: „float f; f=5.0*b/1024;” Szia! Ez egy a magassabb szintű nyelvet használók tipikus hibái közül. A fordító előbb elosztja a b értékét az egész számként értelmezett 1024 -gyel, majd float számot csinál belőle és megszorozza 5.0 -val. ... Mert így rövidebb a kód, a szorzás és az osztás egyenrangú művelet. Írd inkább így: Idézet: „f=5.0*b/1024.0;” vagy Idézet: „f=(5.0*b)/1024;” Idézet: „f=5.0*b; f/=1024;” Idézet: „f=5.0*(float)b/1024.0;” Idézet: ... „f=((float)(5*b))/1024.0;” A hozzászólás módosítva: Ápr 15, 2013
Úgy néz ki, reménytelen eset. Kár a szót pazarolni rá.
Ez egy életképtelen kapcsolás, ráadásul hiába mondod neki, hogy 10k, kicseréli 5-re. Kondi sincs benne egy szál se. Minek a kvarc, ha nem működik?
Üdv!
A kapcsolás egy gyors vázlat volt, amit eaglebe este összeraktam, h ne lehessen belekötni( de sikerült). Szerintem lényegtelen h 5k vagy 10k....gondold át kicsit. A kondi csak a stabilitást állítja az oszcillátornak, felesleges, nem mp pontos megszakítást csinálok..(egyébként a nyákon rajta van) Visszatérve a problémára, az volt hogy a gépet alvó állapotba raktam, és mikor visszaléptem, az ott megnyitott projektet próbáltam feltölteni, és nemtetszett neki(windows(Y)). Viszont így új probléma lépett fel. Rátöltöm a programot, hogy az alsó 5 ledet kapcsolja be, amint végez az égetéssel, felvillanak a ledek 1 pillanatra, majd újra sötétség van. A program:
Esetleg erre valakinek valami 5 let? (Hogy beletudjanak kötni az emberek, 20k-s ellenállást raktam be állandóra az ~MCLR láb és a Vdd közé). Köszönöm a segítséget. A hozzászólás módosítva: Ápr 15, 2013
No: először is, ha kérdezel valamit, pontos rajzot tegyél fel mert nagyon nem mindegy mi, hogyan van.
Aztán: nem mindegy az az ellenállás, nem végtelen terhelhetőségű a pk2 kimenete, a 12V sem, ha pedig nincs meg akkor nem tud programozó módba lépni a proci, ha túl kicsi a tápon keresztül is tudna érdekeset művelni egy nagyobb terhelhetőségű vpp-vel. Kondi a kvarcnál: ez nekem fel sem tűnt, sőt még a kvarc sem (csak kéne egy szemüveg), viszont nem csak a pontosságot állítja be, van amelyik be sem indul anélkül, kvarca válogatja. De én nem is erről beszéltem, hanem a tápon lévő kondiról, ez is csak egy digitális áramkör, a jelváltásoknál jó nagy árammal, amit valamiből fedezni kell, ha nincs közel a lábnál kondi akkor csak a messze lévőből tudná, ha a hozzávezetésnek nem volna induktivitása ami gátolja az áram gyors növekedését. Szóval egy áramkör működésébe sok minden bele szól, ezeket illik betartani vagy nem feltétlenül fog megfelelően működni. Lehet, hogy egyszer egyszer sikerül, de amikor nem akkor csak keresgetheti az ember a hibát.
Hello!
Tudtok abban segíteni, hogy a textool csatlakozót, hogy lehet univerzálissá tenni? 14/18/28/40pin-es pic-hez is használható legyen? köszi
A keskeny közepűt kell vásárolni és abba mindegyik belemegy.
Szia!
Még egyszer: Nem javasolt a programozási lábakon (Vdd, AVdd, Vss, AVss, MCLR, PGD, PGC, PGM) kívül más lábakat is bekötni a programozás ideje alatt. A programozó többször ki be lépked a programozási üzemmódból, letiltott MCLR -re és belső órajelre konfigurált kontroller el is indulhat, a lábakat kimenetté teheti - esetleg pont ott, ahol a másik a foglalatba illeszthető tok a tápfeszültséget, földet kapná. Erősen ajánlott az áramkörön belüli programozás (tépfeszültség szűrés és a belső stabilizátor beállítása, a Vcap bekötése mind megoldott a panelen.) Ha nem valósítható meg, akkor lemezes foglalattal felépített egyedi adaptereket lehet használni - ahány tökozási variáció van, annyi adapter kell (kb. 20 - 30). Mindegyiket jó láthatóan meg kell jelőlni, mely típusokhoz alkalmazható. A hozzászólás módosítva: Ápr 16, 2013
Próbára/fejlesztéshez egy új áramkör kipróbálásához csak kéne valami fejlesztőkörnyezet, hogy ne kelljen mindent megépíteni többször.
Erre a célra legalkalmasabb a breadboard. Ahogy írtam, lehet egyedi adaptereket is készíteni...
Sziasztok!
Egy kis segítséget szeretnék kérni ADC be mert itt is kerestem kerestem máshol is de nem tudtam működő programot írni.
itt egy egyszerű program ezt hogy tudom megtenni hogy mondjuk a Time1 ADC-be menjen és azzal tudjam változtatni ? Köszi.
Az ADC Analóg Digital Converter rövidítése szerintem. Így semilyen változó értékét nem igazán tudom hova tudnád beírni. Ez a modul arra való, hogy a portlábakon feszültséget mérj vele, és ezt valami változóban feldolgozd.
Neked a DAC modul kellene, ha változótól függő kimenő feszültséget szeretnél kapni.
Akkor pontosan hogy mi is kéne van egy poti mely adc vel megy a pic be és így be tudom állítani egy led villogási sebességét és azt tudom majd másra is használni de ezt bárhogy is próbálkoztam nem jöttem rá hogyan lehetne megírni.
Nem tudom, mennyire muszáj neked a szuperoptimalizált assembler kód, kezdetnek leeht jobb volna ha c-ben írnád meg. Szerintem nagyon sok példa van neten, de ha nem is lenne, az adatlapban lépésenként leírja, miket kell csinálni ahhoz, hogy egy AD mérést végezzen az ember. Nézd csak meg, az ADC fejezetnél lesz egy ilyen leírás: 16.2.6 ebből az adatlapból.
Idézet: Szerintem pont fordítva: egy ADC konverzió után az ADCMEM feldolgozott (pl. felszorzott) értékét kellene beleírni a Timer-be, s megvárni, amíg túlcsordul. „hogy tudom megtenni hogy mondjuk a Time1 ADC-be menjen és azzal tudjam változtatni ?”
Hello!
PICkel szeretnék állítható feszültségű tápot készíteni. Az elképzelés a következő: PIC PWM jelet adna ki, ami egy tanzisztoron keresztül (BT137) vezérelne egy LM338T-t, ami ennek megfelelően adná ki a kívánt a feszültséget. A kérdésem az lenne, hogy ez nem fog e gondot okozni, ha érzékeny eszközt kötök rá? PL egy 2,3 Vos kimenet esetén (a max 23V lenne a 338ból) 100Hz-es PWMmel valójában 1 ezred másodpercig 23Vot ad le, és 9 ezred másodpercig 0Vot. (kb ez a helyzet egy 100HZ-es 10%os kitöltöttségű PWM esetén). Ez nem okozhat gondot bizonyos érzékeny eszközöknél? A 2,3 és a 23 között elég nagy a különbség.. még ha rövid időre is de mégiscsak 10szeres a "csúcs" (pl lehet rá kötni 5V-nál egy PICet?) VAgy valamit rosszul gondolok? VAgy jobb lenne ha a PICből referencia feszültséget csikarnék ki, és azzal vezérleném? akkor nincsenek ilyen csúcsok... Vagy ennek nincs jelentősége 1 ezred sec-nél? Korábban igértem kódot, de sajnos már letöröltem a gépről. Most a PWM-mel szeretném megoldani ugyanazt, így a korábbi gondom okafogyottá vált. A hozzászólás módosítva: Ápr 18, 2013
Talán ha egy kondival simítanád/átlagolnád...?
Mekkora kondi kellene? Gondolom a PIC kimenő PWM jelére kellene kötni (és a GND közé).
De fogalmam sincs mekkora kellene. Ilyesmire rendszerint 100mF-os kerámiát látok. Az jó lenne? Valamint azt sem tudom, hogy milyen frekvencia kellene a PWMre? ÉN most 255-t használok, mert nekem úgy az egyszerű leolvasni egy potiról, de elég ez? Honnan lehet megtudni mit érdemes használni? Saccográffal?
Szia!
Nem akarok akadékoskodni, de mi a lényege a PICnek ebben a kapcsolásban? Méri a kimenő feszültséget, majd csinál az alapján valamit (kijelző, valami) ? Ha csak ennyi, akkor ajánlanám, hogy inkább használd a 338at az adatlapban megadott üzemmódban. Akkor leoszthatod egyszerűen egy AD bemenetre a kimenő feszültségét a 338-nak, s feldolgozod, kiiratod, stb. Ennek a cifra PWM + szűrés nek nem nagyon látom értelmét, de lehet nem veszek észre valamit.
Ez volt az eredeti elképzelés, amit te leírtál. De valamiért nem akart működni. Amikor bekapcsoltam a harmadik AD-t akkor furán viselkedett a másik ADC. Ezért úgy terveztem, hogy a PIC PWM jele alapján íratom ki a jelenlegi feszültséget, és ez szabályozza a 338-t.
De ezzel a tekercs dologgal úgy érzem én is, hogy kicsit túl van/lesz bonyolítva.
Nem biztos, de gondolom, hogy nyomógombos/rotary encoderes szabályzást (vezérlést) szeretne+ feszmérés, stb...
djadji! Szerintem első körben egy 1k+100nF-ot próbálj ki. Minél magasabb a frekid, annál kisebb kondi kell. A 255-öt nem értem. 255Hz vag kHz?
Áh, tehát az az időbeszúrás két mérés közé végül nem segített.
Én azt nem nagyon értem, hova kerülhetne be egy ilyen áramkörbe egy tranzisztor, amivel vezéreled a LM338-at.. Hamarabb megoldódik az AD baj, minthogy így kikerüld az ügyet, legalábbis szerintem. Milyen PIC-ről van szó?
225 Hz lett volna. Byte-ban olvasom be a poti állását (egyenlőre azzal vezérlem) és így nem kell semmit számolta5tnom. 255-ös freki, és 255 a max kitöltés (100%). Elég a 255Hz? vagy nagyobb kellene?
Köszi, kipróbálom amit írtál. Megnéztem mi az az alul áteresztő szűrő, kipróbálom. Bár most zavarban vagyok, hogy melyik az egyszerűbb megoldás. Köszönöm!
Üdv, ezt a pwm-el LM338-at vezérlős dolgot szerintem felejtsd el!
Hogy érted, hogy a 3. ADC-t kapcsoltad be? Minek 3? LM338 kimeneti feszét leosztod egy feszültségosztóval, hogy 0V és a pic tápfesze közé essen. (0-5V) pl egy 27k 5,1k. Azt kötöd egy ADC-s pic lábra. Az adatlapban megadott módon lekérdezgeted a megfelelő frekivel és kész. Néhány PIC errata-ját érdemes elolvasni, mert most találkoztam olyanokkal amelyeknél nem minden esetben működhet az ADC megfelelően!
Most megint nekimentem a dolgonak és a következőt tapasztaltam. (a kódot megint elflejtettem feltölteni, de dálután megcsinálom).
Ez egy forrasztó állomás lesz, aminek a tápját szeretném használni arra is, hogy egy változtatható feszültségű táp is legyen benne. ADC0 méri egy potiról érkező feszt, ez határozza meg, hogy mennyi legyen a páka hőfoka. (poti fesz osztóként van bekötve 0-5V közé) ADC1 méri a pákából érkező feszültséget, ez mutatja meg milyen meleg valójában. Ha kell bekapcsolja, ha kell kikapcsolja a fűtést, és közbe kiírja a két hőfokot egy LCDre. Ez eddig működik! PWM-mel így működne: ADC2 (ez a "harmadik"): Egy potiról érkező feszültséget mér (fesz osztóként 0 és 5V közé van kötve ez is), és ennek megfelelő kitöltöttségű PWM jelet állít elő. Ez megy a 338T vezérlő lábára (ide kellene majd egy erősítő, mert ez 100%on csak 5V-ig megy, és így a 338-ból nem kapok 23V-ot, csak alacsonyabbat), ami ennek a PWM jelnek megfelelően adja ki a feszültséget 1,2 és 23 V között (jeleneleg csak 6V körülig megy max, de ez most lényegtelen). EZ IS MŰKÖDIK! Viszont!: HA a 338-t közvetlenül vezérlem analógon a potival, és a 338 kimeneti feszültségét egy fesz osztón keresztül bevezetem a ADC2-re (22K és 5K, kb 4,4V lesz a max), akkor megbolondul a PIC. Az ADC0 nem mér semmit, csak 0-t mutat, vagy fel le ugrál. ÉS ugyanazt a kódot használom!!! Magyarul: ha az ADC3ra egy potit kötök 0-5V között akkor szépen méri a feszt, működik! (PWM változat), ha ugyanide, ugyanazzal a kóddal a 338 kimenetét kötöm (fesz osztón keresztül) akkor pedig megbolondítja a másik ADC csatornát. Ezt nem fogom fel. PIC16F886 HA kéritek feltöltöm a kódot is, de az ugyanaz mindkét esetben, csak az véáltozik, hogy mit kötök a ADC2-re.
Szia,
Csak tipp: az LM338 kimenetére és az ADC3 bemenetre tettél szűrőkondit? 10-100 nF körülit. Esetleg egy kb. 10 kohmos (vagy amekkora a poti ellenállása) lezárással is lehetne próbálkozni. A tünetek alapján gyanús, hogy az LM338-ról jön valami nagyfrekvenciás zavarjel. Szerintem... Az LM338-cal én is megjártam. Vettem egy modellirányító adót és hozzá vevőt. Ki akartam próbálni, de nem volt itthon elegendő mennyiségű ceruzaelem, csak a vevőbe jutott. Mondom sebaj, itt van az asztalomon a stabilizált táp (LM338 alapú), majd arról járatom az adót. Bekapcsoltam és a szervók össze-vissza rángattak, nem tudtak megnyugodni. Amikor lett elem az adóba is, megszűnt a jelenség... A hozzászólás módosítva: Ápr 19, 2013
A kód az lehet ugyanaz, de a baj akkor jelentkezik, ha az ADC2 lábra teszel valamit, s az komparátor referencia is, és AD negatív referencia is. Lehet ezek nincsenek kikapcsolva jól?
A komparátorok például MINDIG felülírják a port funkciókat, ha nincsenek kikapcsolva, de úgy látom, az is, az AD -Vref és CVref-el együtt kikapcsolva indul POR resetkor. Marad az, hogy a kódot megnézzük. István Módosítás: közben láttam, hogy potival megy jól az ADC2! úgyhogy ez itt fennebb nem lényeges, csak a kódra kiváncsi rész A hozzászólás módosítva: Ápr 19, 2013
|
Bejelentkezés
Hirdetés |