Fórum témák
» Több friss téma |
Fórum
Ha egyéb feladat miatt nem szükséges, szerintem szobahőmérséklet változást nem kell tized másodpercenként lekövetni. Ezt 1-3 vagy éppen 5 másodpercenként sokásos. Vedd figyelembe, hogy a kijelző a nagy fogyasztó, annak a tövébe is tegyél egy normális szűrést. Mondjuk tantál kondi (1-10uF) és egy kerámia párhuzamosan. A sok matematikai művelet is megterhekli a processzort, úgy hogy a vélt átlagolási eredmény rosszabb eredmény hoz...Van egy viszonylag több példányban legyártott PIC-es alkalmazásom. Ebban amik beváltak. Kapcsoló üzem PWM táp, (van rengeteg forgalomba, én Mp2359-t és L5790-t használok) fontosabb helyeken tantál kondi, magas Quartz feki. (semmi esetre sem belső osc)
Idézet: „hogy pl. 100ms-onként veszek mitát a mért hőfokból és azt íratom ki?” Attól még ugrálhat, csak akkor 100 ms-ként fog... Jobban jársz, ha integrálod a mért értékeket ( pl. az utolsó 16 mérés eredményét összeadod és elosztod 16-al ), így a hirtelen ugrálások eltűnnek !
Mennyi az LCD frissítési ideje? Én feszültségmérésnél jártam így és a frissítési idő hosszabbításával eltűnt a probléma.
Közbe lett még egy nyűgöm. Fizikálisan csak most került rá a hőmérő, egy MCP9700A. A kijelzett érték eléggé zavaróan vibrál,de nem nagyságrendeket,csak úgy,mint amikor egyik értékről próbál átállni a másikra. Ezt hogy lehet kiküszöbölni? Igaz hogy még csak próbapanelon van,kb 10 centis kábelen. A szűréssel nem hiszem hogy gond lenne,mert a hőmérőnél a táp és kimeneti lábaira,illetve a picnél a bemenetre is tettem 100nF.os kerámia kondikat. Ez sokat segített a dolgon,de még mindig vibál. Esetleg a programban küszöböljem ki,úgy hogy pl. 100ms-onként veszek mitát a mért hőfokból és azt íratom ki?
Sziasztok!
Megint tanácsotokat,segítségeteket kérném. Írtam egy hőmérős progit és az lcd kijelzőn a celsius jelnél a C előtt a kis köröcske rendesen ott van,de a kijelzőn a valóságban csak egy vonal. Mi lehet a baj? A karaktertáblából illesztettem be a szimbólumokat. Lehet ott a hiba? MPLAB rendesen fordítja,hibajelzés nincs. Előre is köszönöm válaszotokat A hozzászólás módosítva: Dec 3, 2014
Egy kis böngészgetés után további lehetőségeket lehet találni. Ami most felmerengett bennem, egy nyolclábú PIC-es Uart (itt 12F1840) ezzel lehet csinálni már egy kis miniatűr "okos szolgát" akár RS485-re is...
Aki már P4-t használ: van egy jó, meg egy jobb hírem... Volt, Update. Közkivánatra már a 18F..K.. tipusok is használhatóak. Továbbá, a ..K22 esetén már meg lehet próbálkozni egy jó kis frekiváltóval van PWM elég...12biten...
A hozzászólás módosítva: Nov 23, 2014
Szia! Köszönöm. Sajnos a lekérdezéses módszer a vonalkód szkenner miatt nem működik, marad a fix címzés, vagy a port átkapcsolós módszer. Az MX modul jó ötlet, megnézem hogyan tudom megoldani. Üdv: Zsolt
Szia. A cimzett adás vagy vétel esetén az értékes adat előtt van néhány byte adat. (RS485 vagy modbusz esetén egy is elég), ami biztosan nem információ, vagy ha fix adatszám esetén tudom hogy az első (vagy néhány ) byte az cím. Leválogatás: pl 10 byte jön ebből az első kettő a cím, a többi adat akkor kerül felhasználásra (pl MX modul) ha a cím passzol...Vagy ha én csinálom a "partnert" is akkor, kiküldöm a címet a paranccsal (byte) és csak ő regál rá, és a választ címre is szűröm...stb...Így lehet többek közt, Pl GSM modem AT kódjait is értelmezni
A hozzászólás módosítva: Nov 22, 2014
Szia! Köszönöm. Sajnos az RS485 nem megoldható, mert az egyik eszköz egy vonalkód szkenner, aminek gyárilag RS232 a kimenete. Most nézegetem, hogy tudok-e neki fix címet generálni. A második eszköz egy DCF77 modul PIC dekódolással (kész, NET-ről leszedett és kicsit módosított progi), ami szintén RE232 kimeneten adja az idő infót. Tudom, hogy meg lehetne oldani a DCF77 kezelést PARSIC-al is és akkor nem kellene mégegy soros bemenet, de nekem kicsit bonyolultnak tűnik. Ennél a második eszköznél, meg tudom oldani a címzést, mivel a soros kimenő adat:
(HHMMSS) (óra/perc/másodperc) és elé tudok tenni egy olyan címet, ami soha nem jöhet (pl.: az óra=0-23, így 24-től bármi lehet). A vonalkódnál már nehezebb a dolog, mert bármivel kezdődhet. Az is eszembe jutott, hogy a szkenner: Metrologic IS4125 indítása automatikus, infrára indul és elvileg kinyerhető belőle az indítójel. Ha az indítójellel szkennelés esetén átkapcsolom egy 4066-al a soros portot az működhet. Tán ez lesz a megoldás. Egyébként a címzett vételnél hogyan oldottad meg a cím szerinti leválogatást? Üdv: Zsolt A hozzászólás módosítva: Nov 22, 2014
A lehetséhes megoldások attól függnek, mivel akarsz kommunikálni. Pl használj RS485-t. igy több eszköz is könnyedén felfűzhető. A sima, vagy (RS232) is összefűzhető, én régebben vagy kapukkal kapcsoltam össze 4-5 szolgával a "mestert". Itt is volt címe minden szolgának...
A hozzászólás módosítva: Nov 21, 2014
Válaszolok magamnak. Megnéztem a képzett *.asm fájlt. Beleteszi az UART2-t, de üres. Konzekvencia: nem működhet. Valami mást kell kitalálnom, mert mindenképpen kellene a két soros bemenet. Ha valakinek van ötlete, szívesen fogadom.
Sziasztok! Egy UART-os kérdés (régi PARSIC): Ha az UART-ot úgy konfigurálom (16F876), hogy mindkét láb bemenet a gyakorlatban működhet? Tehát mintha 2db különálló soros portom lenne. Fordítani hagyja de a teszt hardver még nincs kész. Hátha van valakinek tapasztalata. Üdv: Zsolt
Itt elég részletesen van hozzávaló...Nem tudok kipróbált dolgot most produkálni. Nekem eddig megfelelt a "gyári"...PWM_876
Igen,csak a pickit 2-t néztem meg,hogy kezeli-e a 870-et. Parsic 876-ot fordítottam le hexre és írtam bele 870-be. Azzal is működött. Ez volt itthon. Azért választottam ezt,mert ezeknek van analóg bemenete. A PWM végett jó lett volna a 628 is,de annak kincs analóg bemenete. De akkor áttérek 876-ra.
Előre is bocs az értetlenkedésért,de szeretném tudni,mi miért van. Behelyettesítettem a képletbe a dolgokat és kijött 63,004 PR2-re. A kívánt frekire a mértet írtam be ( 3,906 ). Akkor hogy jön ki a programban a PR2-re 255? A számolásnál TIMER2-t 4-en hagytam.
Szia...
Idézet: Igen, és a négyet is módosítanám 16-ra, ekkor is lassabb lesz, (ha 1-re. akkor gyorsabb).„CLRF CCPR1L MOVLW 4 ; TIMER2 ON MOVWF T2CON ” De nyílván azt tudod, hogy a P3.6 nem kezeli alapból a 870-t? Ezt is MpLab-al... A hozzászólás módosítva: Nov 11, 2014
Szia!
3.6.0.9.-et használok.Mivel az angolom nem túl jó,egy kis értelemzési gondjaim vannak. FOSC= a pic frekije? Esetemben ugye 4 Mhz és Hz-ban kell beírni a képletbe? FPWM= a kívánt frekvencia,ugyancsak Hz-ban TMR2 Prescale value = ennek az értékét honnan tudom meg és hogyan számolandó? FOSC PR2 = 4 • FPWM • TMR2 Prescale value — 1 Továbbá: PR2 értéke a programban az init PWM-nél a 255? Ezt kell majd a számolt értékre módosítanom? BSF STATUS,RP0 ; Bank 1 BCF STATUS,RP1 ; Bank 1 MOVLW 255 ; init PWM MOVWF PR2 BCF STATUS,RP0 ; Bank 0 MOVLW 12 ; PWM mode MOVWF CCP1CON CLRF CCPR1L MOVLW 4 ; TIMER2 ON MOVWF T2CON
Ha P4-et használod, akkor a szóban forgó PIC adatlapjában (59-61 oldal) megtalálod a PWM period, PR2 beállítását. Ezt az adott parsic által készített ASM file-ban megkeresed(INIT végén) és átírod MPLAB alatt egy általad kiválasztott másik "értelmes értékre" újrafordítod és a feladat megoldva
Szia!
Már kezdem érteni... Azt az átállítást az asm-ben meg lehet csinálni valahol? Mert ugye mplab-al fodítok és az generál asm-et is,meg ugye még egy csomó mindent.
Szia!
Én rezonátort használok. a 4-est kicsréltem 20-asra ( mert csak az van itthon ),de azzal meg se nyikkant a pic.
Igen,valóban a timernek nincs köze a frekihez. Megnöveltem a 20mS-ot 200-ra és a freki ugyanott van.
Úgy látom ez a motor sípolós marad... Vagy van valami parsic-os megoldás rá?
ez ok, de én is így jártam, 4Mhz-en sípolt a motor, 16 Mhz-en meg nem sípol a motor, ennyi.
én úgy oldottam meg, hogy 4Mhz-re állítottam az órajelt a parsic-ban, majd 16 Mhz-es kristályt tettem bele. Természetesen ha időzítések vannak, ezt figyelembe kell venni (hosszabb időzítéseket kell alkalmazni)
Sziasztok!
Egy kis tanácsot,segítséget szeretnék kérni. Most ismerkedem a PWM modullal. A cél egy 12V-os ventilátor motor szabályzása,de most egy ablaktörlő motoron tesztelgetek. A szabályzás szépen működik,de eléggé sípol a motor. Mi az optimális freki neki? A pic PIC16F870, 4Mhz-n járatva. Most a kimeneten 20ms-os timer időzítéssel 3,906 kHz-t mérek. Próbáltam rájönni az összefüggésre a 20ms és a 3,906 kHz között,de nem sikerült. Gondolom itt a pic 4Mhz-ét is valahogy bele kell venni a buliba. Légyszi magyarázzátok el ezt is. Pl. egy 500 Hz-hez milyen ms-os érték tartozik. Előre isköszönöm válaszotokat.
Gondolom, ez működhet, a raw parancsot még nem tudom használni, de majd később.
Nem működik a melléklet feltöltése
Köszönöm, megpróbálom adaptálni, majd felteszem amire jutottam
Egy működő projekt részlet. Ez valójában olvas, de 16 bites. A P4 menű (2-es legördülő, utolsó) I2C /SPI altt be lehet állítani az adott eszközhöz, hogy mit csináljon. A gyári példák is segíthetnek. De leginkább, ha az adott eszközt rákapcsolod egy PIC-re és próbálkozol. Az adott chip adatlapja is fontos támpont. A példa, egy Max6675 K-tipusu hőérzékelő olvasása. Egy-két órát én is eljátszottam vele. A PIC lábait szabadon használhatod bármelyik funkcióra. Nálam az M0.5 bit egy "kamu",(kimenet helyett) hogy el legyen nevezve valaminek az írás, de én valójában nem írok, ezért ez az elnevezés, mert így nem vesz részt az automata sorszámozásban. Az ADAT és ADAT_1 a P4-ben az LO és HI byte-k. Tehát a teljes ADAT egy 16 bites változó...Az irásnál, vagy olvasásnál az alsó és felső byte sorrendiségét is meg lehet adni.
A hozzászólás módosítva: Nov 7, 2014
nem az a lényeg, hanem inkább az, hogy egy ilyen impulzussorozat kell szinkronban 1 órajellel + chip select
Hello! 16 bites táblát használsz, és egy bites a kimenet?
Ehhez egy bites tábla is elegendő lenne. |
Bejelentkezés
Hirdetés |





Ehhez egy bites tábla is elegendő lenne.
