Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   589 / 1210
(#) don_peter válasza DJozso hozzászólására (») Nov 7, 2014 / 1
 
Nem vagyok MicroC-s, de egy pár tanácsot szívesen adok.
Véleményem szerint bőven elég a 16F887 e feladat elvégzésére, bár az adatlapját nem néztem meg.
Persze, ha ez van otthon, de ha nincs, akkor érdemes olyan kis erőfórasú PIC-et vásárolni ami megfelel a kivitelezésnek..
18F4550 sokkal komolyabb cucc, ne fecséreld el ilyenre..
Szerintem teljesen járható út egyébként amit leírtál.
Feltételezem van 2db végállás kapcsoló amely a motor illetve a redőny felső és alsó maximumát határolja be.
Gyakorlatilag én a következő képen csinálnám:
1. egy olyan PIC-et választanék ami tud 16bit-es timer-t és van benne eEprom memória.
(feltételezve, hogy a program már kész van)
2. első indulásnál a redőny fent van teljesen, a PIC-en van egy gomb amely a redőny teljes leeresztés idejét méri le mondjuk 1ms-os léptetéssel.
Utóbbit lehet növelni, ha ez túl sok lenne.
3. Ha leért a redőny az alsó végállás kapcsolóhoz, akkor a motor megáll és a PIC-nek küld egy jelet, hogy leért és elmenti ezt az időt az eEprom memóriájába.
Ekkor már tudjuk mennyi ideig tart leérni a redőnynek... (a biztonság kedvéért ezt lehet még kicsit bonyolítani, hogy le föl méred és legalább 3szor akkor, már lehet átlagolni is)
4. ha mindezzel megvagy akkor már csak azt kell leprogramoznod, hogy, ha párod nyom egy erre kinevezett gombot akkor a redőny mikor álljon meg.
Itt már csak a kapott számot kell osztanod értelemszerűen.
idő/50 == felénél, idő/3 == 1/3ánál...stb
(#) furko válasza DJozso hozzászólására (») Nov 7, 2014 / 1
 
Sziasztok!
Nem vagyok PIC mágus, de meg lehetne oldani a mozgató motorra vagy a redőny tengelyére szerelt valamiféle jeladóval (mágnes+reed pl.) és impulzust számolni. Ebből tudná a pic hány impulzus a teljes út végállástól végállásig. Aztán meg lehetne oldani hogy a betanított impulzusszámot mondjuk a felső végállástól számítva, ha elérte álljon meg. Vagy akár egy kijelzőn százalékosan megadva is be lehetne állítani hol álljon meg.
(#) Qju válasza furko hozzászólására (») Nov 7, 2014 / 2
 
Helo!
Ha a redőny tengelye áttétel segítségével egy lineáris potmétert el tud forgatni (fent-lent, 0°~120°).
Akkor egy falra szerelt strapabíró huzal potival be lehetne állítani hogy mennyire menjen fel-le. A PIC-nek a 2 poti értékét kellene "csak" szinkronba hozni.
Szerintem
(#) furko válasza Qju hozzászólására (») Nov 7, 2014 /
 
Nagyszerű ötlet! Általában a legegyszerűbb a legjobb!
A hozzászólás módosítva: Nov 7, 2014
(#) Pali79 válasza don_peter hozzászólására (») Nov 7, 2014 /
 
Idézet:
„feltételezve, hogy a program már kész van”

Pont az volt a kérdése, hogy miként tudja ezt programmal megvalósítani...
(#) don_peter válasza Pali79 hozzászólására (») Nov 7, 2014 /
 

És pont ezért írtam le a pontokat, hogy mint ha a kész program már futna..
Ez egy elméleti segítség volt...
(#) Pali79 válasza don_peter hozzászólására (») Nov 7, 2014 /
 
Értem én, de nincs egy kicsit túlbonyolítva? Ha van egy elektromos redőny annak van kézi vezérlése. Azt egy egyszerű stopperrel is meg lehet mérni, hogy mennyi idő alatt ér le a felső végállástól és akkor egy konstanst kell csak osztani megfelelő részekre. Mivel a redőny nem egy gyors mozgású valami, nem hiszem, hogy ms lépésben kéne a megtett út idejét számolni. Tök mindegy, hogy 1/3 állásnál 1 cm-rel feljebb vagy lejjebb áll meg.
(#) Qju válasza Pali79 hozzászólására (») Nov 7, 2014 /
 
Idézet:
„Az idő nem fontos, csak az élet számít.”

Mi a frászkarikáért is számolgatni az időt? Ha a redőny elakad és kifordul a vezető sínből (vagy csak simán szorosan jár) akkor is teker még amíg le nem jár az ideje, de a kapu nyitva marad.
Vagy csukva ha leszakad a tengelyéről.
Egyszerű módon egy előfeszített bowden huzallal (huzal szakadás esetén kapcsoló vészjelzéssel) és az előbb említett potméterekkel biztosítható a redőny "miliméteres" mozgásának kézbentartása.
A hozzászólás módosítva: Nov 7, 2014
(#) Pali79 válasza Qju hozzászólására (») Nov 7, 2014 /
 
Szerintem meg pont ez a rossz, mert ha a két kapcsolási helyzet között elakad akkor a te elgondolásod alapján addig kap delejt a motor amíg ki nem kapcsolod és ha a motorba nincs védelem akkor annyi is neki, ha nem veszed észreidőben, és mechanikailag kivitelezni nem olyan egyszerű. A szárnyas kapukat mozgató vezérlések mind idő alapon működnek, még csak végállás kapcsoló sincs bennük, mégis megbízhatóan működnek.
A hozzászólás módosítva: Nov 7, 2014
(#) Kapagerenda hozzászólása Nov 7, 2014 /
 
Hello.

Eddig az MP lab sw-t használtam és assemblyben programoztam, de szeretnék a jövőben inkább áttálni a C nyelvű programozásra. Milyen sw lenne hozzá a legalkalmasabb, mit használjak?
Előre is kösz
(#) cross51 válasza Kapagerenda hozzászólására (») Nov 7, 2014 /
 
Milyen PIC családhoz PIC16, PIC18... ?
(#) Kapagerenda válasza cross51 hozzászólására (») Nov 7, 2014 /
 
Pic 16F887-et használok
(#) cross51 válasza Kapagerenda hozzászólására (») Nov 7, 2014 /
 
Ahhoz vagy XC8 vagy MikroC vagy CCS.
Az XC8 a microchip gyári fordítója a (én is ezt használom) a MikroC-t nem használtam sokat, de abban az a jó, hogy sok előre megírt fv. van tanulásra jobb, de hosszútávon szerintem nem annyira jó a CCS-ről nem tudok nyilatkozni azt még nem használtam.
A hozzászólás módosítva: Nov 7, 2014
(#) Kapagerenda válasza cross51 hozzászólására (») Nov 7, 2014 /
 
Köszönöm a választ. Amúgy valóban a bonyolultabb felépítésű programokat nehézkesebb megírni assemblyben mint C-ben?
(#) don_peter válasza Kapagerenda hozzászólására (») Nov 7, 2014 /
 
18-as családhoz használj C18-at, 16-os családhoz Hi-Tech10-12-16-os fordítót..
Én ezeket javasolnám, mert nagyon hasonlítanak és könnyen kezelhetőek..
Többit nem ismerem.. Talán még a CSS jó lehet...
(#) cross51 válasza don_peter hozzászólására (») Nov 7, 2014 /
 
A Hi-Tech-el egy baj van, hogy nagyobb programot fordít mint az XC8, bár nekem gyenge géppel gyorsabb a Hi-Tech C, de volt lehetőségem egy jóval jobb gépen programozni ott ez nem jelent meg.
(#) DJozso válasza Pali79 hozzászólására (») Nov 7, 2014 /
 
Igazából a redőny elakadását úgy szeretném megakadályozni, hogy a motor áramot vezető vezetéket áttekerném egy áram válton, és annak a szekunder tekercs kimenetét nézném, úgy, hogy párhuzamosan ráakasztanék egy ellenállást, és az ellenállás feszültségét mérném. Így akadás esetén is észre lehetne venni a bajt. Sőt szeretném megfejelni egy fényellenállással is, ami automatán tekergetné reggel föl, este le, mint ha otthon lennénk... Köszönöm mindenkinek a segítséget, ötletet. Egyébként a motorba van 2 végállás (alsó, felső) melyek imbusz kulccsal finom hangolható. Így, ha elér a végéig, automatikusan kikapcsol a motor. Hiába mozgatnánk tovább. Így az árama is leesik, amiből ki lehet találni elérte a végállást. Egyébként azért gondoltam, hogy a 16f887 kevés lesz, mert a riasztó projektemben volt olyan egyetlen if függvény (igaz kb. 40 sor volt), amely a fenti pic flashének 15%-át bitorolta. Igaz, 8 feltétel volt a függvény igazság halmaza, feltételenként több és - vaggyal. A végén kevés lett a flash memória (a C nyelvem kb. 500 sor volt). Viszont nem tudna valaki egy példát arra (linket), hogy hogyan tudnám C-be ezt az időmérést végrehajtani? Vagy hol kezdjek neki ennek timer funkciónak? Eddig ezeket nem használtam. Lehet ezekkel például olyat is csinálni, hogy a pic csinál egy folyamatot a timer XY másodpercenként okoz egy megszakítást, amikor is lecseréli az LCD kijelző megjelenítendő szöveget, majd onnan folytatja ahol abba hagyta? PORTB portról történő interruptot már probáltam, az működött, de az interrupt kiszolgálása után előről kezdte a main() függvénnyel.
(#) Pali79 válasza DJozso hozzászólására (») Nov 7, 2014 / 1
 
Hát igen, az assembly ennyiből jobb talán, csak hát az nem annyira "kényelmes". Ha meg kell venni a pic-et újonnan üzletbe, a 18F4550-et még olcsóbban is meg lehet venni, mint a 877-est.
Sajnos C-ben nem tudok segíteni én assembly-ben próbálkozom, de biztos, hogy meg lehet csinálni, amit te szeretnél. A Timer0-nak van 256-os előosztója is, ezzel már nagyobb órajelnél is lehet egész pontos megszakítást csinálni. Sajnos az adatlapban is assembly példa van...
(#) DJozso válasza Pali79 hozzászólására (») Nov 7, 2014 /
 
Igen, assembly példák vannak, ráadásul angolul, bár ez utóbbi kevésbé probléma. Itt jön elő, hogy aki komolyabban szeretne belemélyülni az az assemblyvel kezdje. De a C-vel elsőre könnyebb . Ebay-en valóban nem sok különbség van a kettő pic közt. Dolgoztam már 16f84A (ezzel kezdtem), 16f628, majd végül a 16f887 volt a vége. Azért szeretnék a 18F-es családból is egy két pic-et kipróbálni. Ismerkedni az újdonságokkal (USB-s flash olvasás, ilyesmi). Nincs konkrét terv, csak próbálkozni. Szépen lassan elsajátítani a tudást, soha nem lehet tudni, mikor lesz rá szükségem. Köszönök mindent.
(#) Pali79 válasza DJozso hozzászólására (») Nov 7, 2014 /
 
Idézet:
„Ebay-en valóban nem sok különbség van a kettő pic közt.”
Ha itthon veszed a 18F még olcsóbb is...
(#) vilmosd válasza DJozso hozzászólására (») Nov 8, 2014 /
 
Meg kellene probalni a 18F 14K22, vagy a nagyobb testverei a 18F2xK22, 18F4XK22 PIC-eket. Itt talasz egy par probapanel doksit. Mo-n a CHPCD- nel olcson kapsz PIC-et, kb a gyari aron. Mondjuk Pestre kell erte menni. Ja a linken talalsz meg egy par peldat es leirast is PIC temaban.
(#) zenetom válasza Kapagerenda hozzászólására (») Nov 8, 2014 /
 
Szia!
Sajnos az MPLAB úgy néz ki, kezd egyre jobban afelé menni, hogy kihúzzák a pénzt az ember zsebéből, és cserébe nem is éri meg.
Amíg nem jött be az MPLABX, meg XC fordító meg ilyen h*lyeségek, még jó volt, de sajnos most már az új PIC-eket szinte csak az új, X verziók támogatják.
Ennek ellenére még lehet használni a "sima" MPLAB-ot, illetve C fordítót.
Az assemblyvel nagyon szépen meg lehet tanulni a PIC működését, ami később jól jön, mikor egy C program nem úgy fut, ahogy kéne..
Ha az ember komolyabb programokat akar csinálni (összetett protokollok (SD, USB, Ethernet, kodekek.. stb), akkor viszont "sajnos" ésszerűbb a C mellett dönteni.
Sokszor persze "pazarolja" az erőforrásokat az így lefordított kód, de sokszor pedig jobban optimalizál, mint az ember. És egy nagy, több ezer soros programnál már nehéz átlátni, hogy mit lehet jobban optmalizálni.
Szóval szerintem érdemes C-re váltani, ha az ember már ismeri az asm-et. Így el tudja dönteni, hogy az adott feladatot asm-ben, vagy C-ben oldja meg.
Kissé fájó szívvel írtam ezen sorokat, hisz én az assembly-hez vagyok szokva, sajnos a C-t csak ismerem, de még nincs benne rutinom.
(#) foxi63 válasza DJozso hozzászólására (») Nov 8, 2014 /
 
Szia!
Úgy kéne szwrveznwd a programot, hogy veszel egy változót és ennek a 8 bitjét úgy tekinted, mint nyolc darab kapcsolót. A megszakítási rutin legyen komparátor (áramfigyelés), időzítő (lcd frissítés ) stb. által okozott megszakítás csak ennek a változónak az egyes bitjeit billenti be.
A main függvény pedig csak ezeket a jelzőbiteket figyeli és ennek megfelelően végzi a programját.
ennyi..
üdv. Foxi
(#) Hilo hozzászólása Nov 8, 2014 /
 
Sziasztok,
Kétfázisú négyszögjelet hogyan tudnék PIC el megvalósítani?
Lehet hülye kérdés, de ha tranzisztorokkal megoldom hogy a kimeneten váltva jelenjen meg a feszültség mint egy motor vezérlésnél az irányváltás, ez már az lenne?
(#) foxi63 válasza Hilo hozzászólására (») Nov 8, 2014 /
 
A két négyszögjel fáziskésése 90 fok.
mekkora frekvencia kéne? és milyen PIC, mekkora a PIC oszcillátor frekije?
(#) Birs Alma hozzászólása Nov 9, 2014 /
 
Sziasztok,

Azt meg tudná mondani valaki, hogyan kell az MPLABX-ben egy projecthez egy már létező .inc fájlt hozzáadni?

(Úgy csinálom, hogy a Projects ablakban jobb gombot nyomok a project nevén és a pop up menüben az Add existing item... pontot választom, majd a megjelenő ablakban kiválasztom a megfelelő fájlt. A fájl be is kerül a projectbe, megjelenik a fájl neve a listában. (Bár hol az Important FIles, hol más elem alatt.) Úgy tűnik, mintha rendben lenne, de olyan , mintha mindig csak az utolsóként kiválasztottat látná.

Azt mondja, hogy "No rule to make target 'build/default/production/XXXX.o', needed by ..stb.

Ha xxx.inc-et törlöm a projektből, majd újra felveszem a fenti módon, akkor elfogadja, de a következő fájlra dobja ugyan ezt a hibát, az utolsó fájl után, meg megint az elsőre....Mit rontok el?

Kösz a segítséget.
(#) cross51 válasza Birs Alma hozzászólására (») Nov 9, 2014 /
 
A *.inc fáj legyen mappa_neve.X mapában és úgy #include "inc_fájl_neve.inc". Azért kell "" mert így tudja a fordító, hogy nem a saját include könyvtárában keresse *.inc fájlt, hanem a projekt könyvtárban.
(#) Hilo válasza foxi63 hozzászólására (») Nov 9, 2014 /
 
Szia, köszönöm a választ előre is.
1 - 200Hz-es jelet szeretnék előállítani.
PIC: nincs konkrét, itthon 12f683, 16f886, 16f887 biztos van.
PIC oszcillátor frekije amit beállítok és tudja a PIC alapból. (mivel ez sokszorosa annak amit előállítani szeretnék gondolom ezzel nem lesz gondom)
Sima négyszögjelet szoftveresen is és hardveres beállításokkal is csináltam tucatszor, most a kétfázisú van soron. Amihez kell csupán tanulás, gyakorlás, megértése a dolgoknak.
(#) Birs Alma válasza cross51 hozzászólására (») Nov 9, 2014 /
 
És akkor nem is kell a projecthez külön hozzáadni, elég, ha ott van a file a könyvtárban meg a #include "fileneme.inc" a main.c-ben?
(#) nedudgi válasza Birs Alma hozzászólására (») Nov 9, 2014 /
 
Az nem lehet baj, ha hozzáadod a projekthez. Az MPLab X-et nem használom, de gondolom itt is megvan a projekt .zip-be tömörítése funkció. Ha nem adtad hozzá a projekthez, nem fogja a projekt részeként kezelni...
Következő: »»   589 / 1210
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