Fórum témák
» Több friss téma |
Vagy egy pici nyáktrafó is jó lehet.
Bár mindenhol az mondják, hogy nem illik telefon töltőt használni a zavarok miatt.
Ennek ellenére én mindik egy eddig mebbízhatóan működő Sony töltőt használtam teszteléshez.Eddig nekem még nem okozott gondot. Olcsó noname adapter igen.
Sziasztok!
Egy pic adc-jével lehet PWM jelet is normálisan átalakítani? Pl. van 2db pic az egyik PWM csatornájára csatlakozik a másik ADC-je 50%-os kitöltési tényezőnél 10biten 511-et olvasna be? Vagy csak analóg jelet lehet vele olvasni és PWM esetén hülyeségeket olvasna? A hozzászólás módosítva: Aug 11, 2016
Nem megoldás a két kontrollert valamilyen adatvonallal összekötni? Az egyik megomdja a másiknak, hogy mennyi a PWM kitöltési tényezője, így a konvertálásnál keletkező hiba kimarad.
Megoldható a dolog pl. úgy, hogy méred az impulzus szélességet vagy a PWM jelet "átlagolod" egy-két külső alkatrésszel, de a közvetlen adatkapcsolat lenne a tuti.
A pwm jel impulzus üzemben vagy magas, vagy alacsony. A kettő közötti érték nem létezik. Nem sok hasznát vennéd azt bedigizni. Ha adatot szeretnél átjátszani közöttük, uart, i2c, spi, saját X bites protokollok, temérdek sok a lehetőség.
Idézet: „A pwm jel impulzus üzemben vagy magas, vagy alacsony. A kettő közötti érték nem létezik.” Hát elméletileg lehet, de egy PIC által előállított pwm jel esetében mindig van a fel- és lefutásnak is valamekkora szélessége, persze nagyon pici, de akkor is van. De az biztos, hogy az eredeti elgondolás nagyon nem jó.
Az a gond, hogy nagyon kevés az egyik mikroproci szabadideje két eszköz közötti kommunikációval még nem foglalkoztam, így nem tudom menyi időt vesz igénybe a kommunikáció, de akkor az alapötlet megbukott marad a kommunikáció. Majd átnézem a lehetőségeket.
Kösz.
Előszőr jó lenne tudni, mi a célod ezzel?
Másodszor, milyen frekvenciájú a PWM jel? Mekkora frekin megy a fogadó PIC? Két független rendszerről van szó?
Köszönöm szépen a hozzászólásokat és az ötleteket mindenkinek!
Ez a HLK-PM01 nagyon tetszik, nem is értem hogy nem találtam rá eddig. Persze érintésvédelem mindenek előtt!
A pic egy cpu mag köré épített periféria halmaz. Ha támogatott módokat használsz, az adatátviteli folyamat a cpu idejét nem használja, az overhead nagyon kicsi (az adatátvitel elindításához és lezárásához használ cpu időt). Ha csak 2 kommunikáló fél van, akkor az adatmennyiség függvényében UART vagy SPI lenne neked ideális.
Végig küzdöttem magam (PIC24FJ256GB106) program memória használata eeprom helyett témán ... na jó ... mondjuk inkább csak azt, hogy már átlátom nagyjából hogyan működik ...
és sikerült is összehoznom egy működő kódot. Az, hogy csak úgy lehet módosítani az adatot ha előtte törlök, de csak laponként (512 cím) lehet törölni (meg minden negyedit byte kuka) eléggé megnehezíti a kezdő programozó életét. Mennyire használjátok a program memoriát adatok tárolására? Vagy érdemesebb egy külső eepromot (pl AT24C32) feltenni?
Nagyon attól függ, mennyi adatot kell tárolnod, milyen sokáig, milyen gyakran írkálod át. Ha tényleg csak pár byte, és maximum ilyen config adatoknak kell, amik nem lesznek sűrűn átírkálva, akkor jó a pic memóriája is. Ha sűrűn lesznek írkálva, vagy nagyobb mennyiség, jobb egy külső dip tokos flash foglalatban (hogy cserélni lehessen). Ha nagyon sok adatról van szó, vagy annyira sűrűn jön az adat, esetleg olyan sokáig kell megőrizni, hogy az már journaling partíciót is megkíván, akkor sd kártya.
A hozzászólás módosítva: Aug 14, 2016
Adott a pic 7 kimenetén egy-egy led.Hogy lehet egyetlen potméterrel az összesnek a fényerejét változtatni?
Ahhoz szoftveres PWM kell és egy ADC amivel feldolgozod a potméter állását. A kapott ADC eredményt teszed kitöltési tényezőnek és készen is vagy.
Egyszerű módszer:
---------------------- Magas aktív jelekkel hajtod meg a ledeket a pic felől, és a gnd helyett egy soros pótméterre közösíted őket (és a potit kötöd le gnd-re). Előny: egyszerű, "fapados". Hátrány: amikor 7 led világít, halványabban fognak világítani, mint amikor csak 3 világít. (Kicsit bénácska lesz.) Bonyolult módszer: ----------------------- Impulzus üzemben hajtod a ledeket valami kapcsoló tranzisztoron / feten keresztül, és ha már pótmétert akarsz, akkor annak a jelét adc-vel olvasod be, és annak alapján szabályozod a ledeken a kitöltési tényezőt. 1 mSec nagyságrendű főciklus a pic-en bőven elég gyors, és azt még egy kicsi teljesítményű pic-en is tartani lehet. Előny: tuti precízen szabályozhatod a led-ek fényerejét. Hátrány: egész szépen elleszel vele, ha első alkalommal csinálnád, és egyből ilyesmibe vágtad bele a fejszédet. Válassz kedved szerint.
Valószínű, hogy a kontrollernek nincs annyi PWM kimenete, így marad a szoftveres PWM. Vagy felhasználsz egy PWM csatornát, amivel az összes led fényerejét tudod változtatni.
Szia! Ha a PWM-et előállító PIC-nek van kevés szabad ideje, vagy két külön rendszer kell, lehetőség van a PWM jel magas-alacsony állapot idejének mérésére. (Természetesen a PWM freki és a mérő PIC ciklusidejére figyelni kell, és nincs adatforgalom!)
Ha emberi szemnek készül a mutatvány, ami 45 Hz fölött már totál vak (fáradtabb esetben a 20 Hz is már korlát tud lenni), felesleges a hardveres pwn. A szoftveres is bőven elég, és abból van annyi, amennyi csak kell.
Idézet: „Hátrány: amikor 7 led világít, halványabban fognak világítani, mint amikor csak 3 világít.” Ezt most totál nem értem. Mikor világít csak 3???
Nem írtam csak és kizárólag HW-es PWM-ről, csak mint lehetőségről a SW-es helyett. Egyébként az 50 Hz-es villogást még látni, legfőképpen mozgás közben (a szemlélő mozog). Okoz is szép fejfájást. Persze nem tudni, mi a LED-ek célja.
Sziasztok! PIC16F1826-nál comparátorral kínlódok. PORT-A0 és -A1 -re van kötve amit az -A2 -vel szeretnék összehasonlítani. Sajnos a pdf-ben leírtak és a comparátorok rajzai között mintha ellentmondás lenne. Jelenleg ez a beállításom:
Elvileg C12IN+ lenne a "referencia" (RA2). MPLAB-ban tesztelve (stimulus) RA3 amikor 1 lesz, beugrik a megszakítás rutinba. (PIR2 bit5 magas lesz. Ha valaki helyre tenne örülnék.
ANSEL beállítva. A komparátor megszakítás kimenete a CMxCON0 regiszter 6. bitjén olvasható, a megszakítás kérését pedig a PIR2 regiszter CM1IF és CM2IF bitjei jelzik.
Igen, ezek mind be vannak állítva. A comparátorok + bemenetére akartam varázsolni az RA2 lábra kötött potmétert. Néztem néhány pdf-et (mindegyik Microchip PIC18F1826 !) nincs teljes egyezés a C1IN+ C2IN+ és C12IN+ váltják egymást RA2-re. De a C1IN+ RA3-ra van írva mindegyikben.
Közben átírtam, a comparátor + bemenetére a DAC-ot kötve is beugrik a megszakításba amikor RA3 '1' lesz - szimulátorban! Nemsokára kipróbálom élesben. (MPLAB nem kezeli jól az analóg jellegű jeleket? - hasonlóval már szívtam)
Üdv.
A neten találtam egy könnyen elkészíthető kapcsolást, ami "meteoreső" néven szerepel a karácsonyi fényfüzérek között. Akit érdekel, itt találja: DIY Meteor A kapcsolás egy PIC12F629-esre épül, és a komplementer LED meghajtást alkalmazza. A szerző közzétette a hex fájlt is, és remekül működik. 12 LED villog rajta, 4 porton. Én viszont szeretném a programot reprodukálni, hogy saját effekteket készítsek, és nem utolsó sorban azért, mert én 20 LED-et szeretnék meghajtani 5 port felhasználásával. Mellékelem a kapcsolást a videóból. Ott akadtam el, hogy a csip 3-as lábát is szeretném használni, de a videón ez foglalt. a 3-4 lábak rövidre vannak zárva. Ő arra használja, hogy a 3-4 láb Vss-re kapcsolásával vélt az effektek között. A program érdekessége, hogy eltárolja, hogy melyik futott utoljára, és ha újra bekapcsolom, akkor ismét az fog lefutni. Valaki meg tudná fejteni nekem, hogy miért kell rövidre zárni a két lábat?
Esetleg, mivel csak a hex áll rendelkezésre, írd újat saját ízlésed szerint (csak ötlet semmi támadás).
Az eljárás amit a csávó használ a Charliplexing bár a 12 ből 20 led arra ad utalást, hogy ismered, de hátha segít. Elég érdekes ez a kapcsolás gondolom azért van vss-en 100 Ohm, hogy ne a LED-ek elé kelljen, és hogy az MCLR és GP4 minek van összekötve, jó kérdés lehet azért, mert a progiban kinyomta az MCLR-t és, hogy ne lógjon szabadon.
Igen, ez a tervem.
Azért tudakolom ezt az összekötést, mert nem ártana tudni, milyen hatása lehet, ha én kiveszem. Illetve, a program váltást meg tudom-e oldani nélküle.
Nem néztem utána a kérdéses PIC adatlapjának, de álltalában a config beállításoknál át lehet kapcsolni az MCLR lábat bemenetnek, és többnyire van belső felhúzó ellenállása is. Ravaszul leegyszerűsített szerkezet. Szeretem az ilyeneket.
A hozzászólás módosítva: Aug 16, 2016
Igen, már be is állítottam, de mindenképpen tudnom kellene, hogy miért van ez így. Biztosan lényeges dolog.
A 3-4 lábakat rövidre zárni szerintem teljesen felesleges, használhatod a 3-ast 5. lábnak.
A kapcsoló alap esetben reset gomb, de gondolom ki van kapcsolva a reset funkció configból, és bemenetnek használja. Az a 12f ttl bemenetes general purpose beállítás esetén, ami alapból magasat érzékel, ha nincsen konkrétan lehúzva földre, az a "funkcióváltás". A kapcsoláshoz eredetileg adott hex-et szerintem felejtsd el, ha úgyis több ledet akarsz. Egyébként sem olyan nehéz írni olyat. A táppal sorba kötött ellenállás szerintem túlságosan gány. Inkább a ledek mindegyikével kötögess sorba explicite egy ellenállást. Az eredeti példa azt használja ki, hogy a pic nem tudja tápfeszig felhúzni a kimenetét, maradék feszültség lesz a pic meghajtó áramkörein is, ami a led nyitófeszültségével együtt több lehet, mint 2.0V, ugyanis 2.0V-nál a pic üzeme irstabillá válik az adatlapja szerint. A gyakorlaban persze biztos bírja lejjebb is, mondjuk 1.6V környékéig, és ott már összetalálkozik a ledek nyitófeszültségével is, de az már ledje is válogatja - nem egyforma a ledek mindegyikének a nyitófeszültsége. Ha nem akarod nagyon vakarni a buksit, hogy "rossz ledeket vettél", inkább eleve soros ellenállással tervezz. Aztán ahogy érzed. Ha külön egyesével kiméred mindegyik ledet, az eredeti elgondolás is működhet. Have fun. |
Bejelentkezés
Hirdetés |