Fórum témák
» Több friss téma |
Helló. elég csak elnevezni a portot. Mondjuk számolni akarod a bejövő jeleket egy porton. Legyen RA.1 A számláló bemenetét elnevezed RA.1-re és kész. ha egy LEDet akarsz villogtatni, elnevezed a kimenetet RA.1-nek és már kimenet.
Hali! Ma kipróbáltam a fordulatszámmérést 4MHzen és 20MHz-en. 20megán jól működött, viszont a PIC közti kommunikáció 4megára van írva. Kipróbáltam 4megával, és MAX 4000-ig mért. 20megával, megmértem a max fordulatot is, pontosan. Azt szeertném teni, hogy egy 628A-val mérném a fordualtot és a sebességet, és ezt UARt-on keresztül átküldeném egy másik PIC-be. A másik PIC, meg folytatná a programot (hőmérés stb), és közbe a fordulatot és a sebességet már megkapja az UARt-on keresztül. Ebben szeretnék segítséget kérni.
Hali, Ezt alkottam Parsic-al: Bővebben: Link
Okos kis szerkezet született végül, gratulálok hozzá!
Nem jött össze a fordulatszám mérés.
1000 nél 1320at 2000 nél 2760at mutatott. Okára nem tudok rájönni... Matematika szerint jónak kell lennie.
Segítség kellene.
16f877A eddig működött az LCD. 4MHz kvarcal használtam, A beállításoknál XT és 4000000 órajel. Most ugyan ezen pic 20MHz kvarcal, HSre állítva 20000000 órajelnél nem látok az LCD-n semmit. Elvileg működik a pic, mert a kapcsoló kapcsolja a ledet ami ellenőrzésre raktam be.
Az lcd -t hogyan frissíted ? Nem lehet hogy a kvarc váltás miatt olyan gyors lett a frissítés hogy nem látod a kijelzést ??
Szitkozódás hosszan...
Átnéztem mindent. variáltam a prograot, agyaltam... mi volt a hiba? Az LCD lábaira forrasztott tüskesorban a test láb leszakadt a próbanyákról, de alig láthatóan, csak nagyítóval vettem észre... Sorry...
Jdani
Nálam is ugyan az a helyzet mint nálad. Kicseréltem a 4Mhz kvarcot 20MHz-ra, máris jól mér a fordulatszám mérő. Bár azt nem próbáltam, hogy ha hagyom bent a 4MHz kvarcot és ugyan akkor de HS re és 4MHz állítom a Mikrokontroller beállításoknál. Akkor változik-e. Lehet csak másképp számol ha XT vagy HS van beállítva. Mert az órajel még 20000 jel per 250ms esetén az is csak kb 1Mhz a program lefutása annyira kicsi kellene hogy legyen, hogy nem szabadna észre vennie mivel 4Mhz a lefutás órajele. Más: Ugyan akkor vettem egy "termisztort" aminek 2 lába van. 45kohm 25c fokon. Nincs ráírva semmi csak csíkozás, de fogalmam sincs hogy találjak rá a neten az adatlapjára. A fő kérdés, hogy ezt hogyan kell a pic, hez kötni, mert a fórumba visszaolvastam és az ADC lábak beállításiról van szó, de kapcsolás sehol.(lehet vak vagyok?)
20megával jól mér, viszont használni akarom az UART-ot, és azt nem tudom még, hogy akkor hogyan fognak kommunikálni, ha csak 4megán megy (állítólag)
Ezt próbáld ki 4Mhz-n (csak a kíváncsiság kedvéért)
Sehogy...
Most próbáltam, és nem kommunikálnak. Így nem tudom én se, hogyan fogok adatot átvinni az egyikből a másikba. 4Mhz-en tökéletes a kommunikáció, de nem mér normálisan a fordulatszám mérő.
Most nem tudom kipróbálni, de ennek mit kellene mutatnia? Én csak most kezdek az UART-al foglalkozni, de nem kell a küldéshez az UART data-t is használni? Mert itt csak a bázis van.. Miért mondja azt valaki hogy működik nagyobb kristállyal a kommunikáció, valaki meg aztmondja h. nem működik?
Ezt a páldát nem a kommunikációra küldtem! Az mint már
kivesézték csak 4 Mhz-n megy . Ez a mérésre példa megnézném hogy 4 Mhz-n pontos e ?
Ez az én egyszerűsített fordulatszám mérőm. Led vezérlés nincs is benne.
4Mhz -el 1000 fordulaton 1320at mér - 2000 néál 2600 - 3000nél 2900. 20MHz -el 1000 fordulaton 1020 at. és mindenhol pontosan Vagyis a különbség 2 dolog lehet. A beállítás a XT vagy HS ugyan annál a 4Mhz nél lehet változtat... Vagy a program lefutási ideje miatt lassú 4MHz-en. Más: Nem találtam sehol hőellenállás, termisztor bekötési rajzot.
A te programodban is azt a "hibát" vélem felfedezni
amiről Daninak is már legalább egy hónapja papolok: a frekvenciamérést nem jól csináljátok . kell csinálni egy mérést , az értéket menteni egy átmeneti tárolóba aztán onnan kiíratni a kijelzőre és nullázni a mérést végző számlálót . A programjaitok valószínűleg azért "csalnak" mert a számlálók nullázása is időt von el ezért a mérés mindíg elcsúszik pár ms -ot és ez valszeg összeadódik . Neked is ajánlom hogy próbáld ki az előzőleg feltett példát (tar.pic)
Ez a teljes verzió...
Ebből a ledvezérlést levéve, és 1 váltásjelző beállító kapcsolót levéve volt a kiindulási alap. A csalások, után lett egyszerűsítve a bal felső sarok, ahol mérem az időt. Semmit nem változott 4MHz-en. Amint 20MHz lett a kvarc jól mér ez is.
Figyelj.
Átnéztem és a mérő része dettó ugyan az, mint az enyémnek, kivéve a mérési időt, én külön számoltatom, hogy legyen frissítési frekvenciám majd a ledekhez, de mégsem jó a natúr mérő része....
Bocs ezt benéztem !Jobban átnézve a progidat már látom
a "tárolót" Ha az alap időzítéssel játszol akkor sem javul a pontosság ? A topik elején leírták, hogy minél több dolgot kell csinálnia a programnak annál jobban elcsúsznak az időzítések . Nem lehet hogy itt is ez a probléma ?? A termisztor bekötése : egyszerű , a termisztort rákötöd a zadc lábra és a gnd re , a lábat felhúzod egy ellenállással a + ra és már kész is .Ha a termisztor ellenállásával egyező ellenállást kötsz rá ,akkor 20c' nál pont 2,5v lesz a pic lábán .
Értem a csúszást, de ez túl soknak tűnik.
Nálam 4 jel megy be 1 fordulás alatt. vagyis 2ms*125 =250ms Vagyis 1másodperc 1/4-e. Így nem kell felszoroznom 4el semmit, csak 60al, hogy meg legyen a 1/perc értéke. Ennél volt 1 verzió, amit te is csináltál. Kivettem a frissítést és 250ms ot adtam meg direktem Timer modullal. Le vettem minden mást, csak az LCD vezérlés maradt. De semmit nem változott a csúszás. Aztán bepakoltam mindent és megint semmit nem változott a csúszás. Vagyis Nem értem, hogy 4Mhz- full program ugyan annyit késik mint a lebutított program. Ugyan akkor 20Mhz mind a kettő jól mér. De egyenlőre ez nagyon nagy probléma, mert a sebesség mérést is 20MHz-n kell majd megcsinálnom. Ugyan akkor a Vízhőfok adatait, benzinszint adatait, 1-2 visszajelző adatait át kellene vinnem LCD-re amit csak 4MHz-n tudok megtenni.
Amikor kvarcot cserélsz a programot is átállítod 20Megára ?
Természetesen....
És XT-ről HS re is a beállításoknál... Arra azért kíváncsi lennék mit csinál HS beállítássl 4mhz en. 4mhz kvarcal. És mit csinál 20mhz kvarcal, de HS - 4mhz beállítással
Én megpróbálnám 4M-n csökkenteni az időalap osztásértékét . mondjuk egy 100 körüli értékre, 4 M nál már csak ezt látom járható útnak .
Most jött a "szikra" ! A mérés pontossága az alap frekvencia pontosságától függ ,viszont a 4Mhz nem jön ki kerek értékre ........ (az órám is ezért sietett a kiszámolt értékkel egy nap alatt 11percet ! ) csak az osztás
variálásával lehet közelebb hozni a valósághoz a mért értéket . Az órám 2ms es jeladóval és ha jól emlékszem 242-es osztással már csak pár másodperes késést produkált . 4Mhz-s kvarcnál .
Kipróbáltam 876Aval. Bekapcsolom, kiírja hogy 000fordualt, aztán 100fordulal, és 200fordulat. Ezt kb 500ms idő alatt. Tehát félmásodperc alatt fokozatosan nő az érték 000ról 200ra.
Van egy programban két hőmérő LM35DZ-vel. ADC0, és ADC1. Ha az ADC0-ra rákötöm az LM35-öt, akkor az jól mutat, viszont az ADC1-re nincs kötve semmi és az is mutat. Az ADC0 23fokot mutat, az pontos. Az ADC1, amire ncisn kötve semmi 13 fokot mutat. De amikor melegítem a szenzort, felmegy a fok fokozatosan 23-24-25-26. De az ADC1, amin nincs semmi, a 13fos is növekszik 14-15-16, stb. Ez miért lehet?
Szerintem azért, mert a mintavételezés tartókapacitása nem sült ki az ADC1-es csatornára való átváltásnál.
És azt is tegyük hozzá, hogy a bemenet nem lóghat a levegőben, mert simán átveszi a másik feszültségét..
jdani
Megoldottam! Ugye a probléma az órajel és a mérési sebesség, megfejelve a program lefutási idővel. 16F628A picbe csak a jelek számának mérését tettem amit a frissítési idővel küldtem ki.(2ms) A 877A ban pedig az összes többi művelet. Vagyis a 60as szorszás, az LCD vezérlés, és a váltásjelző és eeprom tartalom. Stb... Az uart szintén 2ms al üzemel. Így mind a kettő 4MHz kvarcal üzemel. működik az adatátvitel. A fordulatmérő pontosan mér. Annyi csak még a kiküszöbölendő, hogy az LCD kijelzésnek van egy kis késése. Amit talán befolyásol majd, hogy a teszt alatt 9600baudrate val volt az adat átküldve. Valószínű javul ha 19000 re emelem. Ami még módosult és észrevehető a változás, hogy a mikrokontroller beállításokban vissza vettem 4000000 Hz-re de hagytam HS opcióban. (Szerintem ezzel gyorsabban számol, illetve gyorsabban fut le a program mintha XT lenne) Annyit kellett módosítanom a programomon, hogy most 4 jel per fordulat jön nekem is az infra led érzékenysége miatt. (Vagyis te is tudod használni a programot.) Amúgy is javasolnám, mert így a frissítési frekvencia az UART modulra 2ms lenne miközben a bemenő jeleket 250ms os mérési idő alatt méri. Mindez 1 timermodullal megoldva. Ugye a több timer modul jobban lassít szintén. Néztem a te programodat is. Jó a program, de nálam a 250ms os adatátküldés lassúnak tűnt, nagyobb eltérések keletkeztek a fordulat változáskor. PL: már 4000 forgott mikor még csak 3100 at mutatott. Igaz ha tartottam akkor utolérte magát, de sokat késett. Mellékelem a két programot, nézd át, hátha tudod használni. Valószínű a sebesség mérést is így kellesz majd megoldani. Külön pic méri majd a jeleket és elküldi a LCD vezérlőnek. |
Bejelentkezés
Hirdetés |