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   340 / 1210
(#) vicsys válasza bankimajki hozzászólására (») Dec 14, 2012 /
 
(#) bankimajki válasza vicsys hozzászólására (») Dec 14, 2012 /
 
Köszönöm.
(#) mineral válasza Kovabe hozzászólására (») Dec 14, 2012 /
 
A 484 oldalas doksiból ezt nem bírtam kibogarászni. Köszönöm szépen.
(#) Lüke Aladár hozzászólása Dec 14, 2012 /
 
Sziasztok! Lenne egy kérdésem: hogy tudom egy PIC lábán a magas szint időtartamát megmérni? PICBASIC PRO esetleg mikroC megoldás érdekelne (ezeket megértem )
(#) pjg hozzászólása Dec 14, 2012 /
 
Erről hallottatok már? PIC klón
(#) vicsys válasza Lüke Aladár hozzászólására (») Dec 15, 2012 /
 
Oszcilloszkóp? Frekvencia/periódusidő mérő? Másik PIC-el és kiíratni UART-on?
(#) Lüke Aladár válasza vicsys hozzászólására (») Dec 15, 2012 /
 
Kicsit kétértelműen írtam, elnézést. Programból szeretném a PIC adott lábára érkező magas impulzust idejét mérni. Ezt hogy tudom?
(#) icserny válasza Lüke Aladár hozzászólására (») Dec 15, 2012 /
 
Bementi változást jelző megszakításoknál inditasz/leállítasz egy Timert. Ha ennél pontosabban kell mérni, akkor a CCP vagy ECCP modul Input Capture módja a kulcsszó. Ez a bemenetére vezetett jel fel- vagy lefutásakor hardveresen rögzíti a hozzá rendelt Timer állapotát (pillanatfelvételt készít). A többit már kitalálod...
(#) gabos666 hozzászólása Dec 15, 2012 /
 
Sziasztok!

Mit tanácsoltok, melyik mikrokontroller tudná az alábbi dolgokat megvalósítani? Mit válasszak?

-széles-sávú lambda szonda feszültségének érzékelése, és feldolgozása lambda értékké (0-1V)
-fordulatszám érzékelése(gyújtásról két jel közötti időt számolva) 0 és 12000 f/perc-ig
-sebességváltó fokozat érzékelése (ha minden igaz egy 6 lábú dugaljon keresztül, minden fokozat egy kijelölt lábon ad jelet, pl: 1-es fokozatnál az első lábon van jel, a többin nincs)
-lambda érték kijelzése a kormányon elhelyezett 3 számjegyes kijelzőn
-minden érték rögzítése SD kártyán, úgy, hogy a PC-n grafikont tudjak belőle generálni, pl.: officban; ez azért fontos, mert nem egészséges egy kijelzőt bámulni motorozás közben

Segítségeteket előre is köszönöm!
(#) potyo válasza gabos666 hozzászólására (») Dec 15, 2012 /
 
Neked kell legalább egy analóg csatorna, fordulatszám érzékeléséhez egy láb, sebességváltó fokozathoz hat láb, 3 számjegyes kijelzőhöz multiplexelve 8-10 láb, sd kártyához négy láb. PC-re kötéshez pedig USB kapcsolat. 18F4550 így fejből megfelelő a feladatra. Még marad is pár szabad láb, mert úgyis menet közben derül ki, hogy még kell 1-2 dolog
A hozzászólás módosítva: Dec 15, 2012
(#) bbalazs_ válasza gabos666 hozzászólására (») Dec 15, 2012 /
 
Homero1/2?
Gazkar-allas?
Sebesseg? (mondjuk ez indirekten szamithato a fordulatszambol es a sebessegfokozatbol)
a 4550 boven eleg lesz.
(#) gabos666 válasza bbalazs_ hozzászólására (») Dec 15, 2012 /
 
Szia!

Hőmérőt és gázkar állást nem terveztem eddig. A célom csupán a helyes karburátor beállítás, és közben a PIC-ek lelkivilágának megismerése. Ehhez bőven elég a fordulatszámot, és a lambda értékeket ismernem. Azonban a határ a csillagos ég, a próba projectbe belefér, az meg, hogy mit építek be valóban a motoromba, az már egy másik kérdés. Lehet ezt még bővíteni bőven. Közben meg lehet tanulni is. Pl.: műszerek világításának színét megváltoztatni a piros tartomány közelében, akkumulátor felügyelet, ne indítózzon, ha az oldaltámasz le van engedve...stb.stb.
Most kezdek ismerkedni a PIC-ekkel, de annyi választási lehetőség van, hogy nem tudtam, mi lenne a megfelelő kezdés. A 18f4550-ről rengeteg anyagot találtam, biztosan elboldogulok valahogyan. Amint lesz kézzelfogható eredmény megosztom veletek, hátha érdekel valakit még. Köszönöm a segítségeteket!
(#) Topika hozzászólása Dec 15, 2012 /
 
Sziasztok!
Szeretnék segítséget kérni. A C fordítóm mindig ezt a hibát küldi: "Error - section '_cinit_scn' can not fit the section. Section '_cinit_scn' length=0x0000009e"
Ez a kód mit jelent?
Előre is köszönöm a segítséget!
(#) janimester hozzászólása Dec 15, 2012 /
 
Sziasztok , motorhoz szeretnék egy fokozatjelzőt építeni piccel. A kérdésem az lenne hogy szerintetek melyik pic lenne a legjobb erre a feladatra. És érzékelés képp a váltókar lefele és felfele billenő helyéhez tennék két hall szenzort pc ventiből bontva amely érzékelné a fel és a lenyomást és egy 7 szegmenses kijelzőt vezérelne a dolog. Előre is köszi a választ üdv.
(#) bbalazs_ válasza janimester hozzászólására (») Dec 15, 2012 /
 
Majdnem mindegy, milyen, szerintem beepitett rezonatorosat vegyel, egypar kuldo alkatresszel kevesebb igy.
De a megoldast nem tartom jo otletnek. Eloszor is mi a nullapont, hogyan allitod alaphelyzetbe az elektronikat? Masodszor, az erzekelesnel eleg egy tevesztes es utana hibasan fog mutatni onnantol kikapcsolasig.
Valahogyan az ures allast legalabb nem tudod erzekelni?
Vagy esetleg a kupplung meghuzasa adna egy plusz jelet, hogy figyelj, jon a valtas es a valtas erzekelese utan mondjuk 1 masodpercre letiltani a tovabbi erzekelest.
Vagy a sebessegjelbol es a fordulatszambol josolni tudna a fokozatot. Nalam autonal ez mukodott.
(#) n_yálastrubadúr hozzászólása Dec 17, 2012 /
 
Szaisztok!
Keresgéltem, találtam is az u.n. usb i/o board-ot 18f2550-hez. Én magam akarom megírni az usb kezelést és asm-ben. Nem kellene először sok csak mondjuk egy ledet bekapcsolni. Nem nagyon találtam érthető segítséget ehhez. Ha valaki tudna, azt megköszönném.
A hozzászólás módosítva: Dec 17, 2012
(#) n_yálastrubadúr válasza janimester hozzászólására (») Dec 17, 2012 /
 
A legegyszerúbben és a legbiztonságosabban a tévedéseket minden herce hurca nélkül egy mechanikusan jól pozícionált poti +pic ad vel tudod biztosan követni, vagy egy töbállású kapcsolóval. Mert a csak le csak föl érzékelés nagyon sok hibát eredményez. Vagy gondolom a mechanikus kapcsolok elkerülése végett használsz hall szenzort, akkor meg használj minden fokozathoz külön.
A hozzászólás módosítva: Dec 17, 2012
(#) vizor hozzászólása Dec 17, 2012 /
 
Sziasztok!

Egy Oshon parallel portos 16F-es PIC égetőt készítek éppen. Szabad-e közvetlenül ráépíteni a panelra a 230V-os paneltrafót? Okozhat-e a mágneses tere (vagy bármi ami vele kapcsolatos) valamilyen zavart az égető működésében? Ugyanis a neten lévő képeken soha nincs rajta a paneltrafó csak egy tápcsatlakozó. Az eredeti tervem ugyanis az volt, hogy egy kompakt kis dobozban lenne az egész, tápostul mindenestül de most elbizonytalanodtam. A válaszokat előre is köszönöm.
(#) pjg válasza vizor hozzászólására (») Dec 17, 2012 /
 
Szerintem semmit nem befolyásol, hogy hol van a trafó. Nekem külön van. Egy notebook töltője.

Ez az.
(#) yankoo hozzászólása Dec 17, 2012 /
 
Üdv!

Szeretném megkérdezni, hogy ULN2003 után is érdemes rakni a relére diódát, vagy az icbe-n van erre a cédelemre szolgáló dióda? Gondolom nem árt ha van, még akár a PIC kimeneteire is érdemes lenne rakni ULN2003 elé. Vagy oda már tényleg fölösleges?

Próbaképp az egyik kimenetre ULN2003-al kötöttem egy 12V-os relét (diódával) és a relé csak akkor húzott be, amikor nem volt az ic és a relé között ellenállás oda fölösleges? 220 Ohm -al próbáltam, de nem húzott be a relé (Omron G5LC-1). A végleges kapcsolásban más reléket fogok használni.
(#) kaqkk válasza yankoo hozzászólására (») Dec 17, 2012 /
 
Az uln ben gyárilag van "visszafutás"dióda sem a kimenetére sem a bemenetére nem kell dióda .
(#) yankoo válasza vizor hozzászólására (») Dec 17, 2012 /
 
Szerintem a saját és mások biztonsága érdekében dobozold be a trafót!! ~230 nem játék!!
(#) yankoo válasza kaqkk hozzászólására (») Dec 17, 2012 /
 
Köszönöm! Az ellenállással mi a helyzet? Reléje válogatja?
(#) kaqkk válasza yankoo hozzászólására (») Dec 17, 2012 /
 
Milyen ellenállással ? Semmi nem kell csak a pic-az uln és a relé. Az uln tápfeszültsége és a relé meghúzási feszültsége legyen egyenlő (de töltsd le az uln adatlapját ,és nézd meg az ajánlott kapcsolást)
A hozzászólás módosítva: Dec 17, 2012
(#) vicsys válasza yankoo hozzászólására (») Dec 17, 2012 /
 
Nem kell ellenállás és dióda. Csak a relé és az ULN. Mint itt: Bővebben: Link
(#) yankoo hozzászólása Dec 17, 2012 /
 
Oké köszönöm!
(#) vizor válasza pjg hozzászólására (») Dec 17, 2012 /
 
Az enyém is hasonló, csak még közvetlenül mellé kerülne a trafó+Graetz+puffer. Akkor elvileg nem generálna a trafó közelsége a PGD, PGC vonalakban valami zavart (néhány raszternyire lenne csak). Megpróbálom, köszi!
(#) nagzso hozzászólása Dec 18, 2012 /
 
Sziasztok!
Egy kis problémám lenne xc8 compiler-rel. "ROM" is positioned at address 0x0 and has had its address taken; pointer comparisons may be invalid, ezt a hibát dobja, vagy pedig "ROM" helyett "RAM"-al. Int-t szeretnék char[]/char*-ra konvertálni, és ekkor dobta ki a hibát. Eleinte char[] kapott a függvény, meg használt akkor nem volt semmi probléma, de mivel a változó számot tárol, így könnyebb lekezelni int-ként, ezért módosítottam.
  1. void lcd_write_char(unsigned char c) {
  2.     switch(c) {
  3.         case 'á':  c = 0x00; break;
  4.         case 'é':  c = 0x01; break;
  5.         case 'í':  c = 0x02; break;
  6.         case 'ó':  c = 0x03; break;
  7.         case 'ú':  c = 0x04; break;
  8.         case 'ű':  c = 0x05; break;
  9.         case 'ő':  c = 0x06; break;
  10.         case 'ö':  c = 0xEF; break;
  11.         case 'ü':  c = 0xF5; break;
  12.         case '°':  c = 0xDF; break;
  13.     }
  14.     lcd_write_data(c);
  15. }
  16.  
  17. //-- LCD-re egy szót kiíró függvény
  18. void lcd_write_string(const unsigned char string[]) {
  19.     for(int i = 0; i < strlen(string); i++){
  20.         lcd_write_char(string[i]);
  21.     }
  22. }

  1. void lcd_main(int temp, int rpm) {
  2.     lcd_write_command(row[0]);      //row[0] = első sor = 0x80;
  3.     lcd_write_string("Temp:");
  4.     if (temp < 100 && temp > 9) {
  5.         lcd_write_command(row[0] | 0x0C);
  6.     } else if (temp < 10 && temp >= 0) {
  7.         lcd_write_command(row[0] | 0x0D);
  8.     } else if (temp > 99) {
  9.         lcd_write_command(row[0] | 0x0B);
  10.     }
  11.     lcd_write_string((unsigned char*)temp);
  12.     lcd_write_command(row[0] | 0x0E);
  13.     lcd_write_string("°C");
  14.  
  15.     lcd_write_command(row[1]);   //row[1] = első sor = 0xC0;
  16.     lcd_write_string("RPM:");
  17.     if (rpm > 99 && rpm < 1000) {
  18.         lcd_write_command(row[1] | 0x0D);
  19.     } else if (rpm > 999) {
  20.         lcd_write_command(row[1] | 0x0C);
  21.     } else if (rpm > 9 && rpm < 100) {
  22.         lcd_write_command(row[1] | 0x0E);
  23.     } else if (rpm < 10 && rpm >= 0) {
  24.         lcd_write_command(row[1] | 0x0F);
  25.     }
  26.     lcd_write_string((unsigned char*)rpm);
  27. }

  1. void main(void) {
  2.     int temp = 100;
  3.     int rpm = 500;
  4.  
  5.     lcd_main(temp, rpm);
  6.  
  7.     while(1) {
  8.     }
  9. }

A "PICula projekt" LCD-s részét használtam fel.
Az lcd_main(int temp, int rpm) jelenne meg a kijelzőn indulás után és a megszakításokból való visszatérés után, magyarul ez lenne a fő képernyő. A temp értékét nyomógombbal lehetne csökkenteni/növelni, egyelőre ide nem jutottam még el, szóval lehet, hogy dobós az egész kód, de azért érdekelne, hogy miért adja ezt a hibát.
Ha tudtok egyszerűbb megoldást is, vagy nagyon nagy baki van a kódba, szívesen meghallgatnám.
Másik, az ő és ű betűket nem tudom rendesen eltárolni a cgram-ba, azaz ő-t ír az ő és ű helyett (vagy fordítva), attól függ melyik van előrébb a kódban.
Előre is köszi a segítséget.
(#) potyo válasza vizor hozzászólására (») Dec 18, 2012 /
 
Nem szokott probléma lenni belőle, én is gond nélkül odarakom a trafókat az áramkörökkel egy panelre. A nagyfeszültségű résszel kell vigyázni, hogy ne legyen túl közel a kisfeszültségű részhez, de ez sem a zavarás miatt, hanem egy esetleges átütés veszélye miatt. Ha van 8-10mm távolság a két rész között, akkor az már bőven jó, ennyit pedig nem nehéz biztosítani.
(#) icserny válasza nagzso hozzászólására (») Dec 18, 2012 /
 
Idézet:
„Egy kis problémám lenne xc8 compiler-rel.”
Én C18 fordítót használok a PICula projekthez. Ott a "const" után egy "rom" módosító is kell. Az idézőjelek között megadott szövegkonstansokat is "const rom char *" típusú mutatókkal kell kezelni. Az XC8-ról lövésem sincs.
Következő: »»   340 / 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