Fórum témák

» Több friss téma
Fórum » Modulrendszerű, grafikus PIC programozás
Lapozás: OK   158 / 177
(#) Peticilin hozzászólása Nov 24, 2015 /
 
Sziasztok!

Egy kis segítséget szeretnék kérni tőletek. Nézzétek át légyszi az alábbi Pid körös szabályzómat,hogy egyáltalán működőképes-e Ha az egész úgy ahogy van rossz,miként lehetne működőképessé tenni? Ami biztos hiba benne,hogyha a mért hőfok meghaladja a kívántat,akkor a min érték mindig átfordul és újrakezdi a számlálást a felső értéktől,ami nagyon nem jó a működés szempontjából,mert a PWM akkor is fűteni fog,amikor nem kellene. A PWM egy fűtőszállal vizet fog melegíteni.

Segítségeteket előre is köszönöm.

Üdv. Peti

PID.PIC
    
(#) dcsabi válasza Peticilin hozzászólására (») Nov 29, 2015 /
 
A teljes siker csak a konkrét berendezésen kipróbálva ismerhető meg. Ha jól látom nem használsz Quartzot, ez esetleg szükséges lehet, a kettő timer miatt. (tapasztalat) A 20ms frissítési idő az szerintem túl gyakori. Ilyen szabályzó kört még nem csináltam, elvi dolgokat tudok így hozzáfűzni...
(#) Peticilin válasza dcsabi hozzászólására (») Dec 1, 2015 /
 
Szia!

Köszönöm válaszod. Quartzot mindenképp teszek majd. 20 vagy 4 megásat tegyek majd bele?
Milyen frissítési időt javasolsz? Minden tanácsra vevő vagyok. Esetleg a fent írt érték átfordulásra valami ötlet?
(#) benko_balazs válasza Peticilin hozzászólására (») Dec 1, 2015 /
 
Ha nem akarod a PWM frekvenciáját asm-ben buherálni, akkor az szerint kell eldönteni a Quartz értékét, hogy mit is kapcsolsz vele, ugyanis minél nagyobb a pwm frekvenciája (4mhz oszcillátorral ez kb 4 khz és arányosan nő az oszcillátor frekvenciájával), annál jobban terheli a kapcsolóelemet (Mosfet, vagy Darlington pl. természetesen megfelelő vezérlő áramkörrel). Nagyobb frekvencián jobban melegedhet. Én elég gyakran építek kisfeszültségű motorvezérléseket. Pl. kefés DC motorhoz nekem a 4 mhz vált be, de BLDC motort vezérléséhez már inkább 20 mhz értékű kristályt használok. Mivel te fűtést vezérelsz, szerintem célszerűbb a 4 mhz.
Én is gondolkodom egy PID vezérlésen parsic-ban, de mivel a parsic az előjeles számítást nem kezeli, ezért szerintem külön kell választani tartományonként, vagyis én úgy gondolom, hogy külön kell kezelni a következő eseteket:
1: Kívánt érték nagyobb mint a tényleges érték.
2: Kívánt érték kisebb mint a tényleges érték.
3: Hőmérséklet emelkedik
4: Hőmérséklet csökken
valamint ezek kombinációit is.
Ugyanis szerintem az átfordulás akkor van amikor kivonsz egy értéket egy másikból és az eredmény kisebb mint nulla.
(#) benko_balazs hozzászólása Dec 1, 2015 /
 
Még annyit hozzáfűznék, ugyanis nem értem azt a mondatot hogy "a PWM akkor is fűteni fog,amikor nem kellene." Itt érdemes tisztázni azt, hogy a PID abban segít, hogy mindig csak azt a mennyiségű energiát szolgáltassa amennyire szükség van ahhoz, hogy az elvárt hőmérséklet legyen. Tehát elvileg akkor is szükség van fűtésre, ha a tényleges érték nagyobb mint az elvárt érték, csak kevesebbre, vagyis csak akkor nem fűt, ha egy külső energiaforrás biztosítja a teljes energiamennyiséget (Pl. besüt a nap az ablakon)
(#) proli007 válasza benko_balazs hozzászólására (») Dec 1, 2015 /
 
Hello! Félreérted a dolgot. Nem a fűtés fog fűteni, hanem a meghajtó tranyó melegedni, a PWM magasabb kapcsoló frekvenciájától.
Ha már ez egy műszaki fórum, akkor legyet oly jók és írjátok le tisztességesen, hogy MHz!
(#) Peticilin válasza benko_balazs hozzászólására (») Dec 1, 2015 /
 
Szia!

Mivel fűtőszál lesz,ezért maradok akkor a 4 Mhz-nél.
Amiket írtál eseteket,próbáltam figyelembe venni. Azért vannak a negatív irány kezelési modulok. Ekkor nem a túlcsordult eredmények íródnak a munka számlálóba,hanem az ellentétes oldalé. Remélem sikerült érthetően leírjam.
(#) Peticilin válasza benko_balazs hozzászólására (») Dec 1, 2015 /
 
A " PWM akkor is fűt,amikor nem kellene",ez alatt azt értettem,hogy mikor szimulációban a mért érték jelentősen meghaladja a beállítottat,ekkor a visszaszámlálás nem áll meg a beállított legalacsonyabb értéken,hanem újraindul a számlálás fentről. Vagyis mikor már a beállított felett van a hőmérséklet,akkor is ráfűt a rendszer az átfordulás miatt.
Remélem most már sikerült érthetően leírjam. Amúgy ha csak kicsit haladja meg a mért a beállítottat,akkor szépen áll az alsó értéken.
Az átfordulás szerintem Yi miatt van,mert a képletből adódóan ennek értéke halmozódni tud a végtelenségig. Ennek kordában tartására van Yi min;max,illetve Y min;max. Csak az alsó értéken nem marad meg,hanem átfordul.
A hozzászólás módosítva: Dec 1, 2015
(#) dcsabi válasza Peticilin hozzászólására (») Dec 1, 2015 /
 
A Limiter modul az megállítja a fölső és alsó határon is bármit. Ha az alsó érték nulla a limiterben, akkor helyette "1"-t kell használni. Ha mindenképpen "0" kell, akkor ki kell vonni belőle "1"-t, így nem fordul át. A frissítésre 50, 100ms-t javaslok, ebbe minden belefér... Van olyan progim, amiben kb 50 limitert használok. A Limiter alsó és felső értékét helyettesíthetjük változóval is... A PWM-t lehet módosítani a mellékelt ASM részlettel, INC modulba. Nekem is volt vele gondom, amikor PWM-ből csináltam 0-5V-t, az optocsatoló nem szerette a túl nagy frekit. Így gyakorlatilag 20MHz-n ugyanaz mintha 4MHz-t használnál. Ha lesz egy kis szabadidőm, majd teszek fel egy két "okosságot" , amivel néhány dolgot könnyedén meg lehet oldani. Az elmúlt időben nagyon sok PIC-es progit kellett írnom, ezek szinte kivétel nélkül Parsic4-el készültek.
A hozzászólás módosítva: Dec 1, 2015
(#) Peticilin válasza dcsabi hozzászólására (») Dec 2, 2015 /
 
Köszönöm tanácsaid,ezek szellemében módosítom a programom.
Várom " okosságaid ",kíváncsi vagyok rájuk...
(#) dcsabi hozzászólása Dec 6, 2015 /
 
Egy-két oldallal ezelőtt felmerült: a P4-ben lehet használni az I2C-vel több szolgát. Jelenleg kettővel próbáltam, de működik. Előbb megoldottam, mint ezt ide leírtam. ( a szerencsés szolgák: DS1307 és DAC7571)
(#) Szammer hozzászólása Dec 6, 2015 /
 
Sziasztok! Bár elég primitívnek tűnhet a kérdés, de mert még ezt a funkciót nem használtam felteszem:
-PIC16F628A-nál PARSIC-ban, ha Schmitt-Triggert akarok használni komparátor bemenetként, azt csak az RA.3-RA.4 lábon tehetem meg (CMP1, CMP2)?
Adott analóg feszültségszintre kellene ki/be kapcsolni.
(Tudom vegyek ki a fiókból egy 20 Ft-os műveleti erősítőt, de én PIC-el szeretném, mert így némi vezérlési logika is beleférne.)
Persze 876-al (5db AD bemenet) megoldható, de 628-ból van pár db.
(#) dcsabi válasza Szammer hozzászólására (») Dec 6, 2015 /
 
Szerintem a "saját válaszod" lesz a megoldás. Én sem használtam még, mert a Parsic alatt nem lehet használni ezt a funkciót. Hacsak nem írod meg INC alá ASM részletként. Olyan nagy a választék, nyílván találsz másik PIC-et a feladatra. P4-t használsz?. Én megoldottam: Van egy 18F8722-s panelom, rá van tervezve az ég világon szinte minden. Azt ültetek be ami az adott feladathoz éppen kell. (Ja és pillanat forrasztóval ültetem be a TQFP80-t, az elején 1-2 db elment kukába, de most 100% a "kihozatal")l A nyákot is úgy csináltatom. Rájöttem, a sikert nem a 4-500 Ft megtakarítása jelenti, mindinkább a sikeres, minőségi program...Volt anno nekem is 16C54-em jó néhány db, (ingyen) de jó helyen van az ott ahol van...
A hozzászólás módosítva: Dec 6, 2015
(#) Peticilin hozzászólása Dec 24, 2015 /
 
Sziasztok!

Ismét hozzátok fordulnék....
Az alábbi programban az LCD modul a szimulációban szépen működik. Az mplab a progit szépen fordítja,de beégetve a kijelző mégsem működik. Mi lehet a baj? Más kisebb programok kijelzése ok.
Már próbálkoztam más időzítésekkel is,de úgy se megy.
Vagy túl sok a modul? Az a baja?

Válaszotokat előre is köszönöm.

EE-EE2ol.PIC
    
(#) dcsabi válasza Peticilin hozzászólására (») Dec 24, 2015 /
 
Az időzítéseket javaslom, hogy a már régebben említett módon kellene csinálni. Pl 100ms timer (csak 1db !!!) ezeket leosztani a szükséges feladatra. Melléklet Példa... Az analóg bemenet konverziója időigényes, a sok timer a megszakításokkal nem biztos, hogy az 50ms frissítésbe belefér. Mi az amire 50 ms-onként kiváncsi vagy? 100ms-ot használok 1X !!!. a 16F877-et teleírtam, legalább 50db kijelzésképet kezeltem, -4MHZ-n mindent kijelzett. A késleltetések leosztottak ZV modullal, van amelyik állítható. lásd pl...Ja és 40 Ft ára Quartz is elkelne. Régebben egy 3-4 timert használtam 628A-ban, össze vissza ment, tettem bele uartzot egyből megjavult. A mellékletben a az ÜTEM1 zászló 100ms másik oldalról áthozva, a kiollózott részlet egy 14 oldalas progiból való. Ennél jóval több hasonló időzítés van benne...
A hozzászólás módosítva: Dec 24, 2015
(#) Peticilin válasza dcsabi hozzászólására (») Dec 25, 2015 /
 
Szia!

Köszi a tanácsokat. A leírtakat követvén úgy néz ki mag javult a kijelző. Már csak az epromba mentéssel és visszaírással van gondom. Lehet a számláló után tett limiter akadályozza a visszaírást?
Amúgy 4 Mhz-es rezonátort használok.

EE-EE3ol.PIC
    
(#) dcsabi válasza Peticilin hozzászólására (») Dec 25, 2015 /
 
Szia!
Szerintem hiányzik az EEprom írás feltétele. A ZV2 modul CLK bemenetére kötöd az EEpromot, hogy annak a lefutó éle írja. Ott valójában nincs is jel... Bármilyen jellel indítható az eeprom írás, nemcsak a megszokott módon. Pld, -melléklet. Valójában ott egy byte egy bitje van letárolva és visszaolvasva. Az MX7732-ből másolja az 1-t, vagy 0-t ez alapján akár a Te feladatod is megoldódhat(?) Az indítási késleltetés is lehetne számláló alapú...
A hozzászólás módosítva: Dec 25, 2015
(#) Peticilin válasza dcsabi hozzászólására (») Dec 27, 2015 /
 
Szia!

Tovább kérném a segítséged....
Az írás és visszaírás még mindig nem akar menni. Csináltam az alábbi kis teszt progit. Kiírattam ZV2-t is. Kikapcsoláskor szépen beírja az értéket. De valahogy nem mentődik el. Vagy csak nem tud kiíródni. Ezt nem tudom. Lehet hogy az a baj,hogy kikapcsoláskor ahogy esik össze a tápfesz,kiírásra még van energia,de eprom írásra már nincs?
A rendszert amúgy úgy oldottam meg,hogy 12V-ról megy a rendszer,7805-el 5 V-ot csinálok. Jó nagy pufferkondik benn mind a 12,mind az 5 voltnál. Csináltam egy feszültségosztót 12-ből 5 V-ra. Ahogy esik össze a 12V-os rész,már indul a beírás. ZV2 beírása után kb. 500ms múlva sötétül el a kijelző. Ez idő elég a mentésre szerinted? A mentés indítását jól oldottam meg?

EE-EEtst.PIC
    
(#) kaqkk válasza Peticilin hozzászólására (») Dec 27, 2015 /
 
Nem tudom hogy az hiba-e de nálam az eeprom bemenete mindig negálva van (s4.1 et próbáld negálni) Ez csak tipp már nagyon régen nem használtam parsicot
A hozzászólás módosítva: Dec 27, 2015
(#) dcsabi válasza Peticilin hozzászólására (») Dec 27, 2015 /
 
Egy előzőleg feltett változatban negatív lefutó élre indult volna az írás. Az helyes. Most meg pozitív jelre indítanád(?) -javítsd ki. Ha mégsem menne, akkor a ZV4 számlálást vedd ki a rendszerből, nem kell ennyire megbonyolítani. A feszültségosztódon megméred mekkora az analóg bemenetre jutó feszültség. Esetleg ezt ki is írathatod próbaképpen. Ennek a 20-25%-os esésekor induljon azonnal az írási impulzus. Esetleg a tápba betehetsz 1-2µF tantált is. Az analóg bemeneti osztód földre menő ellenállásával párhuzamosan egy 100pF-t.
Ez azért kell, hogy hirtelen ingadozások ne indítsák az írást. Továbbá el tudsz játszani vele, hogy állíthatóvá teszed, a küszöb értéket is.
Ennek működnie kell ez annyira egyszerű. Továbbá a ZV2-t helyettesítheted adatforrással is PL: ADATX, mint ahogy én a példában. Az egy működő projekt része...
A hozzászólás módosítva: Dec 27, 2015
(#) Peticilin válasza dcsabi hozzászólására (») Dec 27, 2015 /
 
ZV4 csinálja a késleltetést ZV2 beírása és az epromba írás előtt.Vagy ZV2 beírása után nem kell késleltetés az eprom írás előtt? Vagy esetleg ZV2-be lehetne folyamatosan írni az értéket és a fesz esés csak az epromba írást indítaná?
A tápokban 470µF-os kondik vannak.
Az analóg bemeneten 12V-nál 4,9V van. A karakterisztikát már régebben felvettem. 4,5V-nál 910 ; 4V-nál 808. Ezért tettem az analóg bemenet számlálóját 900-ra. Így ahogy csökken a fesz,már ír is.
(#) dcsabi válasza Peticilin hozzászólására (») Dec 27, 2015 /
 
Ha valójában az a cél, hogy egy folyamtosan változó értéket tároljunk le akkor a táp esés figyelése a megoldás. Mielőtt átírod az adatot az MX-be előtte nyílván nem lehet kezdeményezni az írást, mert nincs is ott még az aktuális adat. Az írást lehet az OS modul lánc egyel való megtoldásával is kezdeményezni. Most nincs készen ilyen HW-m nem tudok próbát tenni. Próbálgasd Te...hiszen néhány perc alatt megvan bármi.
(#) Peticilin válasza dcsabi hozzászólására (») Dec 27, 2015 /
 
ZV4-et kitöröltem teljesen ; 3 db OS-t tettem egymás után ; invertáltam EE bemenetét...
Így sem akarja.....
Tulajdonképpen nem egy folyamatosan változó értéket kell eltárolni. A cél az lenne,hogy a nyomógombokkal beállított alsó és felső értéket kellene eltárolni és bekapcsoláskor a számlálóba visszaíratni. Ha már megvan a két érték,akkor nem lenne változtatva,tehát mindig ugyanazt kellene átírni és vissza. Persze ha valamiért lenne változtatva az érték,akkor már a változtatott lenne mentve.
Hogyan lehetne ellenőrizni,hogy a beírás végbe megy-e? hogy lehessen tudni,hogy a beírással van baj,vagy a visszaírással
A hozzászólás módosítva: Dec 27, 2015
(#) Peticilin válasza dcsabi hozzászólására (») Dec 27, 2015 /
 
Most olvastam,amit az adatforrással kapcsolatba írtál. De a példádból nem tudtam kihámozni melyik is az az ADATX. Esetleg valami konkrét példát kérhetnék rá?
(#) Peticilin válasza Peticilin hozzászólására (») Dec 27, 2015 /
 
Esetleg az EE beállításaival lehet baj? checksum-nál pipa ; ZV2,ZV2_HI a jobb oldalon.
Jó ez így?
(#) dcsabi válasza Peticilin hozzászólására (») Dec 27, 2015 /
 
Próbáld meg ezt, nem tudtam tesztelni konkrét megoldásban. A ZV1 aktuális értékét fogja letárolni. Most csak 18F8722-s panelom van készen...ez meg P4-en megy.
A hozzászólás módosítva: Dec 27, 2015

EE_HE_x1.PIC
    
(#) Peticilin válasza dcsabi hozzászólására (») Dec 27, 2015 /
 
Köszönöm amit küldtél. Beégettem. A pergő számláló értékét a kikapcsolás pillanatkori értékével menti és bekapcsoláskor az vissza is írja. Átnézem és megpróbálom áttenni az enyémbe. Remélem sikerül..... Még egyszer köszi.
(#) Peticilin válasza dcsabi hozzászólására (») Dec 28, 2015 /
 
Szia!

Bocs hogy még mindig zargatlak...
Lehet hogy megint butaságot kérdezek,de egyszerre képes működni 2 db EE?
Csak az egyik értéke íródik vissza. Ez mitől lehet?
Légyszi nézd át az alkotásom...

EE-EE3ol.PIC
    
(#) dcsabi válasza Peticilin hozzászólására (») Dec 28, 2015 /
 
Most nem mélyedtem bele annyira, de elsőre ami feltünt: az MX modulokat is állítsd át 16 bitesre. Ami még lehetséges, egy és-kaput kihagytál mindkét helyről...
(#) ffeco hozzászólása Feb 4, 2016 /
 
Sziasztok!
Feco vagyok és szeretnék tanácsot kérni tőletek.
2 PIC- et szeretnék összekötni UART-on. és az egyikkel szeretném a másikat állítgatni.
Az egyik egy PIC18F452, a másik PIC16F873A.
A PIC16F873A val szeretném állítgatni a másik PIC-et.
Min a két PIC MAX232N keresztül kommunikál, hogy lehet ezt megvalósítani PARSIC4-ben.
Előre is köszönöm a segítséget.
Következő: »»   158 / 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