Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   46 / 1318
(#) Tomee válasza watt hozzászólására (») Jún 21, 2007 /
 
Csináltam egy mérést.
Feszt és hőmérsékletet is mérek vele.
(A hőmérő egy pohár vizben van.)

13,17V
30,92°C <=
13,14V
31,67°C <=
13,25V
30,92°C <=
13,17V
31,67°C <=
13,22V

A megjelőlt ugrálások nem nagyon tetszenek.
Mert ha a 0-5V-s tartományt vesszük és 10 bites AD eredménnyel dolgozunk akkor ~5mV / osztást kapunk.
Szerintem akkor az én esetemben csak a századoknak kéne változnia 1-2 értéket.

>>>>
(#) watt válasza Tomee hozzászólására (») Jún 21, 2007 /
 
Biztosan jól osztassz? Nekem régebben sikerült rossz osztó rutinokat írnom.
Meg kéne próbálni kiíratni a nyers adatokat, hogy azok mennyire ugrálnak!
(#) menyus hozzászólása Jún 21, 2007 /
 
Üdv az Uraknak!

Írtam egy pár soros programot 12F508 ra, de nem igazán működik...mi lehet a baj? A GP1 kimeneten egy LED van amit elvileg egy 1 Mhz es négyszögjel hajt 50/50 °% kitöltési tényezővel, legalábbis szerintem. (4 Mhz es órajel / 4 (négy órajel/utasítás) ) Egyszerű villogó akarna lenni, (késleltetés nélkül használva.)



LIST P=12F508
#INCLUDE

__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC

MOVLW b'000010' ;GP1 KIMENET
TRIS GPIO
FLASH
MOVLW b'000010' ;GPI MAGAS
MOVWF GPIO
MOVLW b'000000' ;GPI ALACSONY
MOVWF GPIO
GOTO FLASH ;AZ ÓRAJEL FREKVENCIA/4 EL ISMÉTLŐDIK

END



(#) menyus válasza menyus hozzászólására (») Jún 21, 2007 /
 
az INCLUDE csak a másoláskor maradt le, a program ban ott van...
(#) nemo hozzászólása Jún 21, 2007 /
 
Hali!

Most kezdek PIC-ekkel, és lenne 2 kérdésem:

1. Milyen PIC-et tudtok ajánlani, ami: olcsó, bírja a strapát, sok mindenre jó, és többször programozható. Esetleg beszerzési forrás is érdekelne.

2. Milyen módon tudom elkerülni, hogy a rosszul összerakott áramkör tönkretegye a PIC-emet? Biztosíték, dióda kondi, és ezeket hová kéne tenni?

Köszi!
(#) menyus válasza nemo hozzászólására (») Jún 21, 2007 /
 
Szia!

Mivel én is most kezdek PIC elni, talán én vagyok a leg unkompetensebb arra hogy válaszoljak neked.

Elsőként talán nézd meg Topi cikkét a mikrovezérlőkről:

http://www.hobbielektronika.hu/cikkek/nullarol_a_robotokig_-_pic_mi...z.html

ebben a cikkben PIC16F877 et használ, A leírásban megtalálod hogy miért ezt a 40 lábú típust ajánlja.

A rosszul összerakott áramkörre szerintem nincs gyógyszer, ha "szarvashibák" vannak benne..De pl. polaritáshiba ellen soros de még inkább táppal párhuzamos diódát szokás használni. A ki/bemeneteket meg soros ellenállással lehet megvédeni leginkább. De ezt majd a nálam jóval okosabbak kiegészítik neked.

PIC et a ChipCad nél kapsz, de sok kisebb cég is forgalmazza (LoMEX, RET, Mikrovill, Elektro -kontha...stb)
(#) menyus válasza menyus hozzászólására (») Jún 21, 2007 /
 
Ja, bocsi a LOMEX - nél nincs PIC !
(#) dpeti válasza nemo hozzászólására (») Jún 21, 2007 /
 
láttam a másik topciban hogy nem akarsz assemblyvel foglalkozni...
ajánlom a 18f4520-at, ebben minden benne van:
32 KByte flash (a programhoz)
256 Byte eeprom
1536 Byte ram, 36 IO láb, 40-es DIP tokban is kapható
10 MIPS, van benne 8x8-as szorzó
10 bites A/D (13 csatorna) 100kSps
két analóg komparátor, soros/spi/i2c busz támogatás
4 időzítő
5 PWM kimenet
és 2 CCP
+ C kódra optimalizált architektúra
(#) Topi válasza dpeti hozzászólására (») Jún 21, 2007 /
 
Kezdésnek a 877 is durva... Nemhogymég egy 18F4520. Igaz hogy lábekvivalens, de azért... hát nem tudom. Én továbbra is assemblyvel való kezdést javaslom 16-os családon. Hadd szenvedjél a BANK-ekkel, meg a hardver szintű assemblyvel. Ha nem tud valaki assemblyben programozni PIC-et, szerinten veszett úgy belefogni C-be vagy bármi másba. Egyszer elakadsz/sebesség és egyszerűség a lényeg, bármelyik nyelvben pár sor erejéig áttérhetsz assemblyre...

Szerk: Peti, nem neked válaszoltam elsődlegesen.
(#) Frankye válasza Topi hozzászólására (») Jún 21, 2007 /
 
Idézet:
„Hadd szenvedjél a BANK-ekkel, meg a hardver szintű assemblyvel.”

Hú, de gonosz! :hehe:
De amúgy igazat adok, ha ezt itt és most az elején megtanulja valaki, akkor később nem lesz gondja vele!
(#) nemo válasza Topi hozzászólására (») Jún 21, 2007 /
 
Hátha még elmondanám, hogy civilben programozó vagyok...

Az assembly-t mindíg utáltam, és nem is akarok ipari projekteket csinálni PIC-el, csak saját részre pár apróságot.
Eddig az assembly miatt nem fogtam bele, de rátaláltam a flowcode nevű progira, és azzal szimulációban komoly dolgokat is könnyen megcsináltam, úgy hogy a kódot ő generálta. Később visszaolvasom a kódokat és látom, hogy mit-miért, és így nekem sokkal jobb, mindíg is ilyen "visszafelé" ember voltam.
(#) dpeti válasza Topi hozzászólására (») Jún 21, 2007 /
 
jó... most az egyszer
(#) tszaboo hozzászólása Jún 21, 2007 /
 
Helló
Már megvettem a pickit2-t megnéztem a példaprogramokat, legtöbbjüket ki is próbáltam, nem legutolsósorban meg is értettem őket. Most épp saját program írásán fáradozom, 1-2 egyszerűbb sikerült is. Viszont a végtelen ciklusok, a túl hosszú számlálások miatt elég sokszor égettem be a pic-t. Szóval az a kérdésem lenne, hogy -bár tudom hogy flash- de valójában hányszor programozható egy ilyen ic? Lehet, hogy laikus kérdés, de sehol nem találtam a fórumon vagy az adatlapokban. Nem mintha félnék, hogy a 20. alkalommal majd nem megy...
(#) dpeti válasza tszaboo hozzászólására (») Jún 21, 2007 /
 
ne aggódj...
a program memória 100 000 írási ciklust bír ki, az EEPROM 1 milliót (ezzel már jobb vigyázni)

ha napi 273x törlöd és égetsz bele programot egy éven keresztül, akkor 1 év alatt megy tönkre...
nekem kb napi 20-30 "égetés" van általában, lehet, hogy néha több, de így is jó pár évig ki fog tartani
(#) tszaboo válasza dpeti hozzászólására (») Jún 21, 2007 /
 
Hát igen. Akkor még messze van a tönkremenetel. Az EEPROM-ot még nem használtam, de azt hiszem nem értem miért kell vigyázni jobban. Megírsz egy programot, ami használja, törli és újra föltölti, az fut x ideig, utánna kampeca?
(#) dpeti válasza tszaboo hozzászólására (») Jún 21, 2007 /
 
igen, eepromban nem érdemes túl gyakran változó adatot tárolni, beállítások tárolásához viszont ideális
(#) potyo válasza Tomee hozzászólására (») Jún 21, 2007 /
 
Nem pont ugyanaz, de nemrég ezt kódot hoztam össze az egyetemre. Igaz nem pic-re, hanem 8051-re, de mivel C-ben van, ezért ugyanaz.

unsigned fesz, eredmeny;
unsigned char tmp;

fesz=((long)eredmeny*5000+512)/1023;

tmp=fesz%10;
gotoxy(7);
putch(tmp+'0');
fesz/=10;
tmp=fesz%10;
gotoxy(6);
putch(tmp+'0');
fesz/=10;
tmp=napon%10;
gotoxy(5);
putch(tmp+'0');
fesz/=10;
tmp=napon%10;
gotoxy(4);
putch(tmp+'0'+0x80);

Az eredmeny változó tartalmazza a konverzió eredményét, a gotoxy() függvény pozícionálta a kurzort a kijelzőn, a putch() pedig a kurzor helyére kiírta a karaktert, aminek megkapta az ascii kódját. Innen talán tudsz ötletet meríteni a saját számolásod kiíratásához, a 0x80 hozzáadása pedig a pont bekapcsolását jelenti az adott szegmensen.
(#) Tomee válasza potyo hozzászólására (») Jún 21, 2007 /
 
Köszönőm a kódot, de én asm-ben tolom....
Közben találtam a kódomban 1-2 hibát is.
Majdnem sikerült tökéletesíteni a dolgot.
64 mérés eredményét átlagoltam (elforgatom a biteket) és így már nagyon szép eredményeket kapok.
Néha 1-t mellé mér, de ez annyira nem zavaró. (kb.: 8-10 mérésenként hibázik 1-t)
Még gondolkodom, hogy lehetne gyorsabban, pontosabban megkapni az eredményt...
(#) Topi válasza Tomee hozzászólására (») Jún 21, 2007 /
 
Amúgy az nem is baj, egyfajta szoftveres hiszterézis nem árt.
(#) nemo hozzászólása Jún 23, 2007 /
 
Hali!

Nekem a következő kezdő kérdéseim lennének:

1. Mi a helyelyes módja annak, hogy nyomógombot/kapcsolót PIC bemenetre kössek?

2. Mi a helyes módja annak, hogy a PIC kimenetéről nagyob tápfeszen, vagy nagyobb áramfelvételű dolgokat vezéreljek?

3. Hogyan tudom a PIC 5V-os tápját "elkülöníteni" a vezérelt egységek tápjától?

Valami univerzális módszer érdekelne ezen dolgok megoldására.
Az alapfellállás az, hogy 12V-osak a vezérelendő dolgok, 5V-ról megy a PIC. A PIC mondjuk 16F84 vagy hasonló.

Csatolok egy rajzot, amit én ügyetlenkedtem össze, csak azért, hogy lássátok a gondolatmenetem.
Szerintem túlkomplikáltam a cuccot, és ráadásul nem is múködik

nemjo.jpg
    
(#) potyo válasza nemo hozzászólására (») Jún 23, 2007 /
 
1. Az amit rajzoltál az jó. Vagy felhúzóellenállás a táp felé, és a gomb húzza le a lábat a földre-re, vagy megcserélve a kettő.

2. A pic lábáról egy npn tranzisztort kapcsolsz, aminek az emittere a gnd-n van. A kollektor és a 12V-os táp közé teszed be pl. a relét. A 12V-os és az 5V-os táp földje össze kell, hogy legyen kötve.

3. Ha galvanikus leválasztást akarsz, akkor csak optocsatoló jöhet számításba. Ha a galvanikus leválasztás nem fontos, akkor csak annyi, hogy a pic számára külön állítod elő a tápot, és azt szűröd. A földvezetékeket külön vezeted a két áramkör között, és csak egy ponton (lehetőleg a stabilizátornál) kötöd össze őket. Földvezeték alatt természetesen a táp(ok) negatív vezetéke értendő.

Inkább 16F627A-t használj, az olcsóbb.
(#) nemo válasza potyo hozzászólására (») Jún 23, 2007 /
 
Köszi a választ, most kicsit megnyugodtam, hogy nem vagyok teljesen béna

Még anyi lenne a kérdésem, hogy van-e értelme a PIC kimenetére biztosítékot tenni, és ha igen akkor mekkorát?
Hány mA bír a kimenet?
(#) watt válasza nemo hozzászólására (») Jún 23, 2007 /
 
A PIC kimenetére biztosítékot nem szokás tenni, egyébként az adatlapok leírják, hogy 20mA egy láb terhelhetősége. Biztosíték helyett olyan ellenállást kell választani, amin nem folyhat 20mA-nél több áram. Legtöbb esetben még ennyi áramra sincs szükség, ezért pl. 1kohm-os ellenállásokat szoktunk egy tranyó bázisa elé tenni.

A relé által keltett feszültség impulzusokat(kikapcsolásakor) le kell vezetni egy diódával amit a relé tekercsével párhuzamosan kötsz úgy, hogy normál esetben ne vezessen(katód a pozitívabb pont felé).

A gombok bemenetét le szoktuk védeni kondikkal(100n) Kivéve, ha nagyon gyors "gombról" van szó, azaz nem kézzel van nyomkodva, bár az már nem gomb.
(#) Topi hozzászólása Jún 23, 2007 /
 
Lehet hogy akkor megcserélem a cikk sorrendjét.
Már írtam a második részt a timerekről megszakításokról wdt-ről.
De most akkor inkább az előzetesben ígért következő pontot veszem. Különböző hardverek rotary encoderek, billentyűzetek, relék, szilárdtest relék, FET-ek kapcsolása PIC-hez...
(#) nemo válasza Topi hozzászólására (») Jún 23, 2007 /
 
Ámen

Valójában már sokat agyaltam, és mindíg a kivezérléssel meg a visszacsatolással van gondom, nem a logikát, hanem a tényleges megvalósítást illetően.

Várom a cikket mester :yes:
(#) nemo válasza watt hozzászólására (») Jún 23, 2007 /
 
Köszi, abszolváltam a javallataid a rajzon.

Márcsak egy gondom van, a pirosal bekarikázott rész rögtön kidurran, mikor üzemelnie kéne :no:

Azt a részt arra szántam, hogy a PIC input2 (fék) lábán magas jel legyen, ha a féklámpakapcsoló (jobb felső kapcsoló) működésbe lépett (be van nyomva), egyébként pedig alacsony.

Hogyan kéne ezt módosítanom?

nemjo2.jpg
    
(#) nemo válasza potyo hozzászólására (») Jún 23, 2007 /
 
Idézet:
„Vagy felhúzóellenállás a táp felé, és a gomb húzza le a lábat a földre-re, vagy megcserélve a kettő.”

Erről eszembe jutott, hogy van-e jelentősége, melyiket használom?
Nekem az alapból magason elv nem túl logikus. ÁLtalában úgy gondolkozom, hogy alap a 0 és az aktivitást jelzem 1-el.
(#) nemo válasza nemo hozzászólására (») Jún 23, 2007 /
 
A problémát így sikerült megoldanom:


jo.jpg
    
(#) Frankye válasza Topi hozzászólására (») Jún 23, 2007 /
 
Ésszerűbbnek érzem én is ezt az új sorrendet!
(#) watt válasza nemo hozzászólására (») Jún 23, 2007 /
 
A megoldás jónak tűnik, de nem teljesen korrekt. Ha azt akarod, hogy a tranyó véletlenül se nyisson ki, akkor kell egy lehúzó ellenállás a bázis és az emiter közé. Ez kb 47k körül jó szokott lenni. Ha még is bekapcsolna a tranyó zavarjelre, akkor ez az ellenállást csökkenteni kell.

Az első rajzodat látva, az a gyanúm, hogy nem vagy teljesen tisztában a tranzisztor működésének, érdemes lenne ezeknek a dolgoknak utána nézned!
Következő: »»   46 / 1318
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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