Fórum témák

» Több friss téma
Fórum » Modulrendszerű, grafikus PIC programozás
Lapozás: OK   93 / 177
(#) jdani válasza Gyuresz hozzászólására (») Dec 28, 2010 /
 
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.
(#) jdani hozzászólása Dec 28, 2010 /
 
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.

rpm.PIC
    
(#) Panhard hozzászólása Dec 28, 2010 /
 
Hali, Ezt alkottam Parsic-al: Bővebben: Link
(#) Norberto válasza Panhard hozzászólására (») Dec 28, 2010 /
 
Okos kis szerkezet született végül, gratulálok hozzá!
(#) kkrisz75 hozzászólása Dec 29, 2010 /
 
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.
(#) kkrisz75 hozzászólása Dec 30, 2010 /
 
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.
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010 /
 
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 ??
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010 /
 
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...
(#) kkrisz75 hozzászólása Dec 30, 2010 /
 
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?)
(#) jdani válasza kkrisz75 hozzászólására (») Dec 30, 2010 /
 
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)
(#) kaqkk válasza jdani hozzászólására (») Dec 30, 2010 /
 
Ezt próbáld ki 4Mhz-n (csak a kíváncsiság kedvéért)

tar.PIC
    
(#) kkrisz75 válasza jdani hozzászólására (») Dec 30, 2010 /
 
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ő.
(#) jdani válasza kaqkk hozzászólására (») Dec 30, 2010 /
 
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?
(#) kaqkk válasza jdani hozzászólására (») Dec 30, 2010 /
 
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 ?
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010 /
 
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.

F60test2.PIC
    
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010 /
 
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)
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010 /
 
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.

Fordegyb.PIC
    
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010 /
 
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....
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010 /
 
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 .
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010 /
 
É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.
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010 /
 
Amikor kvarcot cserélsz a programot is átállítod 20Megára ?
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010 /
 
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
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010 /
 
É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 .
(#) kaqkk válasza kaqkk hozzászólására (») Dec 31, 2010 /
 
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 .
(#) jdani válasza kaqkk hozzászólására (») Dec 31, 2010 /
 
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.
(#) jdani hozzászólása Dec 31, 2010 /
 
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?
(#) Norberto válasza jdani hozzászólására (») Dec 31, 2010 /
 
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.
(#) proli007 válasza Norberto hozzászólására (») Dec 31, 2010 /
 
É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..
(#) kkrisz75 hozzászólása Jan 1, 2011 /
 
B.Ú.É.K.
(#) kkrisz75 hozzászólása Jan 1, 2011 /
 
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.
Következő: »»   93 / 177
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem