Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Az is kérdés lehet, hogy a PIC mely lábára megy az analóg jel, illetve hogy mekkora értékek jelennek meg a bemeneten. A feszültségosztónak az alsó vagy a felső ágában van Pt1000-es? Mekkora a feszültségosztó másik tagja?
8mV -> 20 digit 409mV -> 1023digit Az A/D átalakító referenciája mire van állítva?
C fordító van feltelepítve ( pl. C18 a 18-as sorozathoz?) ?
Steve
Project / Project Wizard a típus kiválasztása utáni ablakban "Step Two" a "Select a language toolsuite" litáján a megfelelő fordító kiválasztása...
Hali!
az analóg jel az AN1 és AN0 lábakra megy ugyan is van benn egy visszacsatolás (mérem a mindenkori tápfeszt, mérem az esett feszültséget és mivel tudom a feszosztó felső tahjának értékét ezért tudok számolni a pt1000 ellenállására.) a pt1000 az alsó ágban van(egyik vége a testen másik a feszosztó felől) a másik tag egy 1.6 kOhm 2,048V-os referencia IC-vel a PIC Vref+ lábárakötve (így egy egység 2mV). Alapjáraton 753 egység van azaz 1506 mV
Az ADCON1-be milyen értéket töltesz? A tápfeszt is osztón keresztül méred? Milyen méréstartományban gondolkozol celsiusfokban?
5V-ról van egy 2V-os szabályzó és a 2V a tápfesze a feszosztónak. Szóval mérem a feszosztó előtt meg a közepén az ADCON1 = 10000001.
Igen celsiusban gondolkozom mivel a PT1000 elég lineáris karakterisztikával rendelkezik és ebből következően 3,8 Ohm változás jelent 1°C-ot. Méréstartomány 20-300°C
Ha az osztód valóban úgy van, ahogy írtad, akkor ott 788mV-nak kellene lennie ( +/- a Pt1000-es eltérése ).
Ha viszont 1506mV van ott, akkor az osztó 3915mV feszültséggel van hajtva.
A Pt1000-es ellenállása 20°C-on R20=1078 ohm és ehhez a számításom szerint 824mV tartozik. Most nagyjából ennyit kellene mérned, ha valóban úgy áll össze az illesztés, ahogyan írtad.
300°C-nál az ellenállás R300=2120 ohm és az ehhez tartozó feszültség, ha nem tévedek 1167 mV. Namármost 824mV-nál az A/D eredménye 411, az 1167mV-nál 583. A 753-at soknak találom.
a pt1000 ellenállása 1095 Ohm (25°C-on) a feszosztó felsőtagja pedig 1620 Ohm
a feszosztó 1900mV-al van megtáplálva és a feszültségesés 760mV de sajnos nem ezekkel van a probléma, mert a mérés jó jól működik a rendszer (viszonylag) csak +-20 egységen belül random ugrál és egyszerűen nem jövök rá miért
Én tennék valamennyi analog bemenetre legalább 100nF-os kerámia kondit, de inkább nagyobbat. Sima potméterrel kipróbáltad már, hogy mit mutat?
Ellentmondásos számomra, a korábbi és a legutóbbi írásod, miszerint alapjáraton 753 egység van, azaz 1506mV illetve, hogy a feszültségesés 760mV. Illetve egyszer azt írod, hogy 2048mV-ról megy a feszosztó, aztuán meg 1900mV. Ez azért nem mindegy. A PIC adatlapja szerint a Vref érték minimuma 2V lehet.
Igen rájöttem elnéztem a dolgokat, mivel szervizelés céljából reátettem egy 4soros 16 karakteres kijelzőt és kiírattam pár értéket és csak a 753 ugrott be de az mV nem egység, korábban írtam rosszul elnézést érte
az előbbiekben azt nem írtam semikor hogy 2.048-ról megy a feszosztó, csak azt hogy a PIC azt a referenciát kapja és azért az 1900mV azért majdnem 2V tudom pontosabbnak kéne lennem de elnézéseteket kérem mert elég szétszórt vagyok. A segítségeteket még 1x köszönöm! Holnap majd belebarkácsolok aztán majd írok mit sikerült összehozni. Jó éjt!
Nem tudom, hogy miért kell bűvészkedni a referenciával, meg a tápfeszültség mérésével, amikor csak az osztási arányt kell meghatározni? Ha a Vdd-vel táplálod az osztót, akkor az ADC eleve a Vin/Vdd arányt méri (az 1023 végkitérés felel meg az 1.0-nak), ami az R1/(R1+R2) osztási aránynak felel meg. Ebből tehát a feszültség ismerete nélkül is meghatározható R1 (ha R2 ismert).
Az ADC konfigurálásánál fontos, hogy az adatgyűjtési idő (Tacq) és az adatkonverziós idő (Tad) jól legyen megválasztva. 20 MHz-es frekvenciához Tad = 32 Tosc vagy 64 Tosc kell). Fontos a földvezeték, és a tápfeszültség kialakítása, a tápfeszültség szűrése, s a jelvezeték árnyákolása (ne legyen antenna). A leosztott jelet is szűrni kell, s az ADC méréseket átlagolni. Ilyen nagyságú jel még elég jól kezelhető, mérhető. Trivialitás, de csak leírom, hogy az osztó másik tagjának precíziós ellenállásnak kell lennie. Szükség esetén árnyékolni kell, ne szedjen fel zajt! Idézet: „Trivialitás, de csak leírom, hogy az osztó másik tagjának precíziós ellenállásnak kell lennie.” Igazából csak az lenne fontos, hogy hőre és egyéb hatásra ne változtasson az ellenállássán sokat. A konkrét értéke nem annyira fontos, miután programból lehet kalibrálni a mérőkört.
Ellenállásosztóval a skála nem lesz lineáris. Egy hőkompenzált áramgenerátorral kellene meghajtani a hőelemet és a hőelemen eső fesültséget kellene mérni - ez lineáris skálájú mérést eredményezne...
Én is így értettem: alacsony hőfoktényezőjű legyen.
Sziasztok!
Segítséget szeretnék kérni a következő problémámra. Egy PIC24FJ64GB002 mikrokontrollerbe fejlesztem a szoftveremet és szükségem lenne arra, hogy tárolni tudjak adatot a flash memóriájában. EEPROM sajnos nincs benne. MPLAB 8.56, C30 környezetben írom a programot. Lefoglaltam a linkerrel egy akkora területet a változómnak, amit egy erase folyamat alatt töröl a flashből (512 utasítás), és ide raktam a változót, amibe írni akarok. Így nem kell arra figyelni, hogy valami fontos adatot esetleg felülírok. Erase után word-önként akarok beleírni. De az adat nem kerül beírásra. Csak a terület felszabadítása sikerül, mert mikor visszaolvasom, hogy mi van ott, 0xFFFF-et kapok. Nem tudom mit rontok el, vagy mit hagytam figyelmen kívül. A következő kódrészlettel próbálkoztam:
Előre is köszönöm szépen a válaszokat!
Nekem adott ötletet, bár a Vref-et én is inkább a tápra szoktam állítani és a mintavételezést a belső RC-re bízom. A variálást, "trükközést" az indokolhatja, hogy a hardver minél egyszerűbb legyen, amit a PIC-kel és úgy általában a mikorvezérlőkkel kapcsolatosan meg szoktak említeni. Aztán majd a szoftverből megoldjuk a nehezét. Miért is rakták a PIC-be a Vref változtatásának lehetőségét? Még az sem lenne baj, ha nem lineáris a mérés, mert szoftverből úgyis lehet simogatni a karakterisztikát. Ha nem túl bonyolult a vezérlés, annak úgysem kell sok memória. A fennmaradót meg mindenféle korrekciós táblázattal fel lehet tölteni. Számomra csak az lenne a lényeg, hogy stabil legyen a mérés, ami a PIC lábához illeszkedik, a környezeti hőmérséklet ne vigye el a munkapontot.
Szóval én THL helyében úgy gondolkoznék, hogy adott az elvárt működési tartomány, 20-300°C. R300 értékkel hoznám létre a feszültségosztót, és így nem mennék el a Vref megengedhető legkisebb értékére. Itt az osztás 1:1, tehát egy másik egyszerű feszültségosztóval létrehoznám Vref-et 1:1 osztással 2,5V-ra. Ez jóval az alsó határ felett van. Ez azt is eredményezné, hogy 300°C -hoz 1023-as digitális érték tartozhatna, tehát a lehető legnagyobb. R20 nál az osztás alacsonyabb feszt eredményezne. Mivel minkét osztó ugyanarról a tápról kapja az alapot ezért ha a tápfesz változik, az osztók kimenete is egyenlő arányban változik és a digitalizált eredményt ez nem befolyásolja ( első közelítésben ). Konkrétan: Rfelső = 2200 ohm ( ilyet lehet kapni ) Ux az analog bemeneten = 5V * Rpt1000 / ( Rpt 1000 + Rfelső ) U20 = 1,64V -> 671dig, U300 = 2,45V -> 1002dig A feldolgozási tartomány tehát 1002-671 = 331, ami ( ha lineárisnak teszem fel a mérést, de nem az! ) 280°C/331 = 0,85°C felbontást eredményezhet. Egy picit még megvizsgálnám, hogy a Pt1000-es hőmérsékletének változása függvényében hogyan változik az osztó kimenő feszültsége, akár egy táblázatkezelő segítségével és abból már lehetne gondolkozni, hogy a program miként értékelje ki az analóg bemeneten érkező adatot.
Idézet: Az a pontos feszültségméréshez való. Itt viszont - amennyire értettem - nem arról van szó. „Miért is rakták a PIC-be a Vref változtatásának lehetőségét?”
Heló!
Abba a problémába ütköztem, hogy a pic16f88-as mikrokontrollerem csak az egyik lábat nézi adc-nél, holott két lábon is kellene mérnie. A kódrészlet:
Az egy, ketto és a harom float-ra van állítva. Az ansel-lel analógra állítottam, a trisa-val bemenetnek az RA0-t és az RA1-et. MikroBasic-et használok. Tudja valaki hogy mi lehet a probléma? A segítséget előre is köszönöm!
Sziasztok!
PIC18f6622-vel hajtok meg egy 2x16 karakteres LCD-t a háttérvilágítást meghajthatom közvetlenül a PIC lábáról?
Külön-külön méregetve jó? Van elég idő a csatornaváltások között? Ilyenkor kellene megnézni a kapott asm listát, illetve kipróbálni szimulátorban, hogy mit csinál.
Közvetlenül nem. Tranzisztort vezérelhetsz vele és azzal kapcsolhatod.
Ha lesz az áramkörben műv. erősítő és a tokban maradt egy kihasználatlan akkor gondolom azt is használhatom. Ilyenkor mekkora erősítést állítsak be?
Köszönöm a gyors választ, majd kipróbálom késleltetéssel és szimulátorral is.
LCD háttérvilágítása 300-400mA szokott lenni, egyszerű műveleti erősítők, mint ahogy a PIC lába is 20-25mA-nél többet nem tudnak. De egy emitterkövető üzembe rakott tranzisztor kell csak pluszban, illetve az háttérvilágítást beállító soros ellenállás, semmi más nem kell.
Sziasztok!
Újfent akadt egy kis problémám . Külső megszakítást szeretnék használni egy PIC24HJ64GP502-es pic-en, ami egy MicroStick nevű eszközön van rajta. A problémám az az, hogy valamiért nem lép be a megszakításba a program. Annyiban speciális a pic, hogy a perifériái szabadon multiplexelhetőek bizonyos lábak között. A programban elvileg mindent beállítottam...Amelyik lábon a LED van azt Open-kollektorosra állítottam és felhúztam 5V-ra, továbbá a külső interrupt is a megfelelő lábhoz lett rendelve. A programot és a kapcsolási rajzot csatoltam. Az USB és az 5V-os tápforrás földjét közösítettem. Légyszi segítsetek! Biztos valami bagatell hiba van benne, de én nem bírok rájönni Előre is köszi!
Sziasztok! Szakdogámat írom és I2c kéne benne használnom, de már valami miatt ott elakadtam, hogy a C port minden lábát billegtessem, így meg az I2C-nek neki sem tudok állni! Az RC2 és RC3 nem akar billegni már szimulátorban sem!!!
#include "p18lf26k22.h" void main(void) { PORTC=0; LATC=0; TRISC=0; ANSELC=0xFF; while(1) { ADCON0=0; LATC=0xFF; LATC=0; } } MI lehet a probléma?? Előre is köszi!
Sziasztok, a 16F vagy 18F-es szériaban taláható olyan PIC, amelyik 12 bites A/D átalakítóval rendelekzik? Ill. több referencia ponttal. Hogy egyszere több különböző jelet tudjak mérni. (A cél: 1 PIC-kel egy labortápban 2 fesz. és 2 áram mérése. Ill. 4 kijelző vezérlése. A gond csak annyi, hogy elég nagy potenciálkülönbség lehet a 2 fesz. ill. 2 áram között, mivel ezek különálló egységek lennének.) Vagy egyszerűbb 2 PIC-et használni?
Heló!
A/D konverzió tesztelése közben, egy elég furcsa dolog történik. Elvileg ki kéne írnia a picnek a kijelzőre a feszültségértékének 100szorosát, ami meg is történik (386, és 3,86 voltot kapcsoltam a lábára), de viszonylag stabil periódusokban az érték kissé nagyobb ennél 410 körülig felugrik majd visszaáll. Ez mitől van, és hogyan tudnám megakadályozni? A segítséget előre is köszönöm. |
Bejelentkezés
Hirdetés |