Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
PWM-el szabályzod az izzó fényét? 50Hz-es hálózatnál akkor a PWM frekvencia nem lehet túl sok, és az villódzással járhat. 50Hz-es frekveniával 3 fokozat érhető el, 25Hz-essel 5 fokozat, 12,5Hz-essel pedig 9. (És ebbe a 0 és a max. szint is benne van.) Többszörös modulációval ez persze némileg javítható.
Szia! Én úgy olvastam, hogy fázisszögvezérlést programozott le, arról is beszélgettünk... (szinkronjel, Timer, stb.)
A hozzászólás módosítva: Dec 27, 2013
Tehát csak a kikapcsolás történik nullátmenetnél, a bekapcsolás meg tetszőleges időben. Gyakorlatilag az is PWM. Én arra gondoltam először hogy mind a be-, mind a kikapcsolást nullátmenetnél csinálja. Dehát írta is hogy fázishasítás...
Gyakorlatilag az, de annál azért több, ezért nem hívjuk annak, mert szinkron nélküli PWM-el is lehet, csak nem jó.
Gyújtásszögvezérlés vagy másnéven fázishasítás. Fázisszögvezérlés is egy érdekes dolog, de az másra való
Egyébként sikerült úgy néz ki, működőre összehozni. Voltak apró problémák, mint például nem dugtam be a szinkronizálást végző jelet a picbe, ennek ellenére antennaként összeszedte a jelet, és egész jól működött így is Na aztán azt bedugtam, próbálgattam INT0 és INT1 lábakkal a fel-le irányú megszakítás generálást, majd átmentem INT1 és INT2 lábakra, de persze ott is elfelejtettem átdugni, és az INT2 láb a levegőben lógott, de azért mégis működött valamennyire, csak aszimmetrikus lett az eredmény a pozitív-negatív félhullámban. Amikor erre rájöttem és átdugtam a jelet az INT1 és INT2 lábakra, jó lett
Ezt mindig összekeverem!
Látod, akkor a legjobb, ha bedugod!
Csak nem mindegy, hogy mit, mikor, hova...
Üdvözletem az uraknak. Lenne egy egyszerű kérdésem . Az egyik kollegával sikerült megoldanunk a multkori hőfokszabályzós dolgomat. Most az lenne a kérdésem hogy ugye van a változó amit növelek- csökkentek. És most nem látom a kijelzőn éppen hány fokra állítottam be a dolgot. Próbáltam kiíratni de nem megy , túlcsordul a parancstól a proci. Azthiszem ezt a számot át kéne konvertálni ASCII-ra és úgy kiííratni vagy tévedek? Ez az 1040-es érték 65 foknak felel meg. De így nem írja ki a pic, valaki segítene hogy szerinte milyen számrendszer beli szám lehet ez? És +10 vagy - 10 egységgel kell növelni a változót hogy a fokom 1-et fel vagy 1-et lefele változzon ha ez segít
65 * 16 = 1040. 16 -osával kell csökkenteni vagy növelni 1 fokos lépéshez.
A hozzászólás módosítva: Jan 3, 2014
Milyen fordítóban? Mert pl. a CCS-nél int8-nak veszi ami 0-tól 255-ig mehet.
Mikroc for PIC V5.61 beépített fordítójával. Igen, igazad van HP41C, csak közben variáltam pár dolgot és ennyi lett de átírtam 16-ra ez működik semmi gond vele csak nem tudom kivarázsolni a kijelzőre és most kezdtem el nézegetni a változók értékét. unsigned char-ral akartam kiíratni ami 0-255 igen de hiába osztom el a határ értékét 16-al majd azt akarom a char függvénnyel kiíratni totál hülyeségeket ír ki a helyére. A kapcsolási érték nem fog menni 80 fok fölé ezért is elég ennyi tizedesjegy ezzel nem kell foglalkozni.
A hozzászólás módosítva: Jan 3, 2014
Valahogy így:
Esetleg:
A hozzászólás módosítva: Jan 3, 2014
Idézet: Csak amit mondtál neki... „de hiába osztom el a határ értékét 16-al majd azt akarom a char függvénnyel kiíratni totál hülyeségeket ír ki a helyére.” Először is tisztázzuk, hogy mi a karakter és mi a kiírandó szám, majd tisztázzuk, hogy a kiírandó számból (ami nem írható le egy számjeggyel, hogyan lehet a kiírandó karakteret előállítani. Az ASCII táblában decimális 48 és 57 közötti kódok jelölik a 0,1,2,...,9 karaktereket. Tehát ha egyjegyű számot akarsz kiíratni, akkor 48-at kell hozzáadni, hogy a megfelelő karaktert írasd ki. Csak többjegyű számként kiírható mennyiségekből előbb helyiértékenként kell a kiírandó számjegyet meghatározni, majd ebből egyenként (48 hozzáadásával) a kiírandó karaktert előállítani, s végül kiíratni. A MikroC egyik mintapéldájában a tlong változóban millivolt egységekben tárolt értéket így íratják ki V-ban:
Bővebben: Link A hozzászólás módosítva: Jan 3, 2014
Sziasztok!
Foglalkozott-e már valaki precíz frekvenciaszintézissel? Egy olyan feladatot kellene megoldanom, hogy kb. 120...160kHz között változtatható frekvenciájú négyszögjelet kellene előállítania a kontrollernek (18F46K22 - Fosc: 32MHz) kb. 1...10Hz lépésközzel. Szoftveres késleltetőhurok variálásával nem tudom megoldani, mert a PIC-nek van egyéb dolga is, és eddigi számítások és próbálkozások alapján a CCP modullal sem lehet efféle vezérlést készíteni. Tulajdonképpen egy NCO-t (Numeric Controlled Oscillator) kellene megvalósítani. A Microchip-nek van egy jó Technical Bulletinje, ami alapján el lehetne indulni TB3071 valamint a 16F1509-es PIC tartalmaz CLC-ket és NCO modult is, ha ezekkel kapcsolatban (vagy egyéb más megoldással) van valakinek tapasztalata, szívesen venném a segítséget!
Lehet DDS áramkört kellene használni amit a PIC programoz fel.
Előre is elnézést kérek hogy ide írom de elképzelésem sincs melyik topikba illene jobban a kérdésem:
Tervezek (egyenlőre még fejben) egy berendezést aminek bizonyos események (le és felfutó élek) hatására el kellene mentenie egy adatot (idő). Azaz konkrétan: lenne egy PIC aminek a B portja bemenet lenne és így 8db vezetéken figyelné hogy mikor jön fel vagy lefutó él. Emellett futna benne egy óra program. Amikor valamelyik lábán szintváltozás történik, gyorsan megnézné hogy mennyi az idő és eltárolná hogy pontosan mikor melyik bemenetén volt szintváltozás. Ezzel eddig semmi probléma, most jön a csavar: Ezeket az adatokat nem elég elmenteni a memóriájába, sem kijelezni egy kijelzőre. Ki kellene nyomtatnia egy olyan papírszalagra amilyet a pénztárgépekben is használnak! Lehet kapni szerintetek ilyen hőpapír-nyomtató gépet? Nem is kellene nekem egy egész pénztárgép persze, csak a szalagra nyomtató része és a hozzá való papír-tekergető mechanika. Nem kis hab a tortán hogy rendkívül jó lenne ha kb az LCD-kijelzőkhöz hasonlóan egyszerű lenne a vele való nyomtatás.
Keress soros nyomtatót! A PIC uart -jával és egy szintillesztővel tudsz rá nyomtatni. Esetleg egy SPION Orgenizer nyomtatója...
A Star SP vagy TSP sorozatból pl. választhatsz, ebből van soros és párhuzamos is.
Azt hiszem meg is találtam ami tökéletes lenne nekem: Bővebben: Link
Mondjuk majdnem 10000Ft. Viszont van hozzá rendes pdf amiben leírják hogyan kell vezérelni: Bővebben: Link Azért ez assembly-ben nem lesz túl egyszerű, de legalább van hozzá korrekt dokumentáció amiből el lehet indulni.
Csak átfutottam, de szerintem ha nem akarsz belemenni a formázásba, semmi extra nincs. A fogadás, már más tészta. A papírelakadást, kifogyást is kellene detektálni/lekezelni. Ha nem fontos, még ezzel sem kell foglalkoznod. Maga a kiíratás meg tényleg mehet a HW-es UARt-ról.
A nyomtató nem drága. Egy PC-s tintasugaras gagyi nyomtató is drágább...
Találkozott már valaki ilyennel? 12F683 kontroller, PWM jelet állítok elő vele tesztelési célból egy másik kontroller számára. A PWM kitöltési tényezőjét egy potméterrel állítgatom, amit az AD mutat, az lesz a PWM kitöltési tényezője. Látszólag jól működik, egy kivétellel; azt vettem észre, hogy amikor teljesen letekerem a potmétert, akkor a kitöltési tényező felmegy nagyra. Talán 100%-ra, de nincs szkópom, ezt nem tudtam megnézni, csak egy led van a lábra kötve, annak a fényerejéből saccolom. Nem értettem, mi történik, mire ma ismét elkezdtem átnézni a PWM-ről szóló részt az adatlapban, és rájöttem, hogy én a CCPR1H regiszterbe írtam a kitöltési tényezőt a CCPR1L helyett. CCPR1L-el nemis foglalkoztam sehol, ami reset után benne volt, az maradt. Átírtam a CCPR1L-re, onnan már letekerve a potmétert elalszik a led. Viszont az adatlap azt írja, hogy PWM módban a CCPR1H regiszter csak olvasható, ennélfogva eleve nem kellett volna működnie. Ha meg mégis, akkor miért csak részlegesen?
Biztosan valami még is beleíródott, mert a kapcsolási rajz szerint a CCP1L-ből átíródik a H-ba az érték. Valószínű írható a H részlegesen, a valós bekötést nem látjuk. A gyártó csak azt írja elő, hogy az L-be tedd az értéket, nem gondoskodott arról, hogy a H valóban ne legyen írható, mert nem lényeges.
Sziasztok!
Elkezdtem tanul a PIC programozást. Első lépésként megvettem a PIC mikrovezérlők alkalmazástechináka III. című könyvet és megépítettem a HP41C féle égetőt.Egy gond azomban akadt.A könyv mindenüt Explorer 16 Development Board fejlesztőpanelról ír.Egy ilyen fejlesztőpanel elkészíthető házilag is? Vagy valamilyen más panelt tudnátok ajánlani? Nem szeretnék olyan sokat kiadni egy ilyen panelért. A hozzászólás módosítva: Jan 12, 2014
Olvasd el a topic címét, majd ha megértetted, tedd fel a kérdésed újból a kiemelt PIC kezdőknek topicban!
Üdv az uraknak. Mivel már nagyon sok dolgot csinál egyszerre a picem ezért egy adott mennyiségű függvény után elkezdte nem szeretni ezt a fordulatszámmérő programot. Túlcsordul vele a proci, de ha az 1171875-ből kitörlöm az utolsó két számjegyet lefordul a program és elindul szimulátorban is ugye így csak két helyiértéknyi adatot tudok kiíratni a kijelzőre. Tehát a pic lábát meghajtom 50hz-el akkor nem 3000-et ír ki hanem csak 30-at mert ugye hiányzik a két utolsó szám. Mivel lehetne ezt az óriási számot egyszerűbben kezelni hogy a sok más feladat melett ne foglalja teljesen le a picet és csorduljon túl?
A rev változó milyen típusnak van deklarálva? A 1171875 ugyanis nem fér el 16 bitben.
Unsigned int-nek oda van írva 0-4gb-nyi méretű értéket zár be ez a típus. Előtte működött mikor nem volt ennyire teletömve a picem most fagy be ettől a nagy számítástól. Azaz túlcsordul.
Hova is van írva? 32 bites fordító? 32 bites PIC? Azért a dolog felvet pár kérdést....
Az hogy mi az a 0-4gb már meg sem merem kérdezni Az hogy egy számláló túlcsordul nem okoz fagyást, legfeljebb nem a várt eredményt kapod (ami nem hiba, teljesen normális működés). Mindamellett a kommentekben is ott van hogy 16 bites, így nem meglepő az eredmény, az a meglepő hogy eddig ment.....
persze ettől még a revnek is 32 bitesnek kell lenni .... A hozzászólás módosítva: Jan 13, 2014
Szia!
Egy kérdés, miért számolod ki a TMR0_value-t ha a rev számításánál nem használod? Így a 32bites konstansodat a 16bites változód helyett csak egy 8bitessel osztod aminek az eredménye biztos nem fér el a 16bites rev-ben.
köszönöm a válaszokat, amúgy nem én írtam egy Bonca nevű tag rakta fel ide az oldalra és azt használtam fel külöünösebben nem mélyültem bele eddig mi mit csinál. A pic 18f4550 amin működnie kéne. Amúgy Tikiss ez még frekvenciát is mért , de én kiszedtem ezt a frekvenciás dolgot belőle lehet ahhoz kellet ez a tmr o value-s dolog.
A hozzászólás módosítva: Jan 13, 2014
|
Bejelentkezés
Hirdetés |