Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1094 / 1318
(#) potyo válasza efiscp hozzászólására (») Szept 17, 2012 /
 
Jó lenne látni egy fényképet az áramkörről.
(#) _vl_ válasza efiscp hozzászólására (») Szept 17, 2012 /
 
Honnan táplálod a relék tekercsét? A stabilizált tápról, vagy a stabilizátor előttről?
Hogyan van összekötve a relék tekercse a PIC kimenetével?
(#) efiscp válasza potyo hozzászólására (») Szept 17, 2012 /
 
Kösz a gyors reakciót. Hirtelen ilyen képet tudtam csinálni. A relék tápját a feszstab előtt veszem le.
Úgy gondoltam, hogy a relék áramait a digitális részével a kondi - lábára folyatom össze, továbbá a digitális részeket egy kicsit előtte közösítem (nem tudom, hogy ez mennyire korrekt megoldás). Arra törekedtem, hogy a relének a vezetékei közel és párhuzamosan fussanak. A képen a sárgával jelöltem az SMD kondikat, mert nem látszanak jól.
Azt hangsúlyozom, hogy nem vagyok profi nyáktervező, úgyhogy lehet, hogy nagy baromságok vannak a képen.

WP_000159.jpg
    
(#) efiscp válasza _vl_ hozzászólására (») Szept 17, 2012 /
 
A másik oldaláról itt van egy kép, de ez szerintem nem valami beszédes. Az 5 tüske a pickit2 csatlakozó, a 3 tüskével lehet jumperelni, hogy a pickit2 adja a tápot a programozáshoz, vagy a feszstabról jöjjön, illetve a 2 tüske rövidzárban a földre köti az mclr-t, hogy ne lebegjen.

WP_000160.jpg
    
(#) _vl_ válasza efiscp hozzászólására (») Szept 17, 2012 /
 
Nekem tetszik az eredmény, kár, hogy nem úgy működik, ahogy szeretnéd

Annak van valami jó oka, hogy az MCLR-t földre kötötted (és kikapcsoltad), ahelyett, hogy bennhagytad volna, és a tápra kötnéd egy ellenállással?

Amit megpróbálnék: a 2200uF, és a kis kondik + LD33 közé egy diódát rakni, és az LD33 oldalára még egy kisebb (mondjuk 100µF körüli) elkót. Így a relék nem tudnák elrángatni a stabilizátor betápját.

Illetve ami még érdekes: a trafóra 1.11A van írva, van ott 8 relé, tuti elbír a trafó ennyi relét? Meg kéne nézni szkóppal, hogy mekkorát ránt a tápon egy-egy ki-bekapcsolás, időben és feszültségben.
(#) efiscp válasza _vl_ hozzászólására (») Szept 17, 2012 /
 
A MCLR azért van így, mert nem akartam bajlódni a táp odavezetésével (bár most így elnézve pofonegyszerű lett volna), szóval az sima lustaság (meg persze bíztam benne, hogy jól meg van oldva a felhúzás a lapkán belül).
A relék 12V-on 44,4mA-t vesznek fel (tehát összesen kevesebb, mint fél amper), plusz a trafó szekunderén van egy 1A biztosíték, tehát van egy kis tartalék benne.
Sajnos szkóp híján nem tudom megmérni a tüskéket. A diódás-kondis ötletedet kipróbálom a holnapi nap folyamán, remélem sikerül új nyák legyártása nélkül elvégezni az operációt.
(#) vilmosd válasza efiscp hozzászólására (») Szept 18, 2012 /
 
Esetleg kapcsolasi rajz volna rola?. Ezt a PK2-sajat tap jumperelest teljesen felesleges csinalni, mert a PK2 felismeri, ha mashonnan van megtaplalva, es egyszeruen nem ad tapot. Meg annyit lehetne csinalni a dolgon, hogy a stablernek egy kulon diodaval levalasztott elkot tenni, ezzel levalasztanad a relek taplalasat.
(#) efiscp válasza vilmosd hozzászólására (») Szept 18, 2012 /
 
Itt a táp kapcsolási rajza, remélem, nem böktem el semmit (sietve rajzoltam, néhány alkatrész típusa nem az, ami az áramkörben van). Átalakítottam diódás-kondisra a stab előtti tápszakaszt, beégettem a reléket sorban bekapcsoló programot, de a 3. relé bekapcsolása után jön a reset. Fura, mert kikapcsolás nincs, tehát a tekercs visszarúgása itt még nem jelentkezik, a PIC-et megtáplálja egy 1000u-s kondi (100u nem volt itthon), ráadásul azt sem értem, hogy miért nem az első relé bekapcsolása után jön a reset.
Az áramkör többi részét hamarosan küldöm.

szerk: a csillagpontozást nem rajzoltam bele a kapcsolási rajzba
A hozzászólás módosítva: Szept 18, 2012

supply.png
    
(#) watt válasza efiscp hozzászólására (») Szept 18, 2012 /
 
Kösd ki a relét, úgy is reset? Lehet, valami zárlat is a relé meghajtó körül.
(#) vicsys válasza efiscp hozzászólására (») Szept 18, 2012 /
 
A graetz speciel fordítva van és a stabIC kimenetén nincs puffer. Egy 10...100µF elkélne oda.
(#) efiscp válasza watt hozzászólására (») Szept 18, 2012 /
 
Kiforrasztottam a 7. és 8. relét, és beégettem egy olyan programot, hogy a végéről elkezdi bekapcsolgatni őket. Ebben az esetben is a 3. relé bekapcsolásánál dobja el magát, pedig az első két helyen ki van forrasztva. Kiforrasztom a következő relét, és akkor kiderül, hogy a relé miatt resetel (gondolom ekkor egy relé kattanását sem fogom hallani) vagy túljut a 3 relés dolgon, és a 4-nél resetel.

Vicsys: igazad van, a hidat elböktem a rajzon, és beforrasztok egy 10u-s kondit. Mondjuk nekem rémlik, hogy még évekkel ezelőtt Watt azt mondta nekem ebben a topicban, hogy nem nagyon szokás 10u nagyságrendű kondit rakni a stab kimenetére.
(#) efiscp válasza efiscp hozzászólására (») Szept 18, 2012 /
 
Na bejött, amit az előbb írtam, resetelt, mielőtt a 4. relét kapcsolhatta volna, szóval a problémát máshol kell keresni (vagy összetettebb, mint gondoltam/gondoltuk). A program így néz ki:
  1. #include <16F1936.h>
  2.  
  3. #FUSES NOWDT                    //No Watch Dog Timer
  4. #FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
  5. #FUSES WDT_NOSL              
  6. #FUSES PUT                    //No Power Up Timer
  7. #FUSES NOMCLR                   //Master Clear pin used for I/O
  8. #FUSES NOPROTECT                //Code not protected from reading
  9. #FUSES NOCPD                    //No EE protection
  10. #FUSES BROWNOUT               //No brownout reset
  11. #FUSES NOCLKOUT              
  12. #FUSES IESO                     //Internal External Switch Over mode enabled
  13. #FUSES FCMEN                    //Fail-safe clock monitor enabled
  14. #FUSES NOWRT                    //Program memory not write protected
  15. #FUSES NOVCAP                
  16. #FUSES PLL_SW                  
  17. #FUSES STVREN                   //Stack full/underflow will cause reset
  18. #FUSES BORV25                
  19. #FUSES NODEBUG                  //No Debug mode for ICD
  20. #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
  21.  
  22. #use delay(int=4000000)


  1. #include <lc.h>
  2. #define RELAY0 PIN_A1
  3. #define RELAY1 PIN_A2
  4. #define RELAY2 PIN_A3
  5. #define RELAY3 PIN_A4
  6. #define RELAY4 PIN_A5
  7. #define RELAY5 PIN_A7
  8. #define RELAY6 PIN_A6
  9. #define RELAY7 PIN_C0
  10.  
  11. void main()
  12. {
  13.  
  14.    setup_lcd(LCD_DISABLED);
  15.    setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
  16.    setup_oscillator(OSC_4MHZ);
  17.    
  18.    int8 array[8]={RELAY0,RELAY1,RELAY2,RELAY3,RELAY4,RELAY5,RELAY6,RELAY7};
  19.  
  20.    while(1)
  21.    {
  22.       output_high(array[7]);
  23.       delay_ms(1000);
  24.       output_high(array[6]);
  25.       delay_ms(1000);
  26.       output_high(array[5]);
  27.       delay_ms(1000);
  28.       output_high(array[4]);
  29.       delay_ms(1000);
  30.       output_high(array[3]);
  31.       delay_ms(1000);
  32.       output_high(array[2]);
  33.       delay_ms(1000);
  34.       output_high(array[1]);
  35.       delay_ms(1000);
  36.       output_high(array[0]);
  37.       delay_ms(1000);
  38.    }
  39. }


A relék bekapcsolása eredetileg ciklusban volt csökkenő iterátorral, de átalakítottam ilyenre, mert ebben nincs annyi hibalehetőség.
(#) _vl_ válasza efiscp hozzászólására (») Szept 18, 2012 /
 
Zárlat valamelyik kimenetnél, vagy a tranzisztornál? A kimenet bekapcsolásakor túlterheli a tápot, mire resetel az egész.
(#) efiscp válasza _vl_ hozzászólására (») Szept 18, 2012 /
 
Összemértem mindent a relés rész környékén, ami közel van egymáshoz, plusz a PIC lábait, de sehol nem sípolt. Ha egy relé meghajtásának zárlata okozná a problémát, akkor szerintem a jelenség nem nézne ki ugyanúgy, ha az egyik illetve a másik oldalról kapcsolom be sorban a reléket.

szerk: ami most eszembe jutott: vannak bemenetek, amiket egyelőre nem használok. Úgy vannak megoldva, hogy a PIC-re kötött oldala el van húzva tápfeszre, és a bemenet szakadás-rövidzár jellegű. Ha a CCS kimenetté konfigurálja ezeket a lábakat, akkor ez talán bonyodalmat okozhat. Mindjárt ki is próbálom.
A hozzászólás módosítva: Szept 18, 2012
(#) kissi válasza efiscp hozzászólására (») Szept 18, 2012 /
 
Szia!

Tanárként kifogtam egyszer egy hasonlót, egy pár percig néztem a tökéletes programot, amit a megbeszéltek szerint csinált a srác, mégiscsak 3 LED ment a futófényből --> bekapcsolva hagyta WatchDog-ot ! Az pont ennyi időnél csinálta a hülyeséget, Neked véletlenül nem ez a problémád ?!

Steve
(#) efiscp válasza kissi hozzászólására (») Szept 18, 2012 /
 
A WDT ki van kapcsolva, a kettővel ezelőtti mellékelt kód 3. sorában, szóval nem hiszem. Most átírtam a kódot, hogy kézzel állítgassa a tris regisztert, és a még beforrasztott relék irányából kezdje a bekapcsolást:

  1. #include <lc.h>
  2. #define RELAY0 PIN_A1
  3. #define RELAY1 PIN_A2
  4. #define RELAY2 PIN_A3
  5. #define RELAY3 PIN_A4
  6. #define RELAY4 PIN_A5
  7. #define RELAY5 PIN_A7
  8. #define RELAY6 PIN_A6
  9. #define RELAY7 PIN_C0
  10.  
  11. #use fast_io(A)
  12. #use fast_io(B)
  13. #use fast_io(C)
  14.  
  15. void main()
  16. {
  17.  
  18.    setup_lcd(LCD_DISABLED);
  19.    setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
  20.    setup_oscillator(OSC_4MHZ);
  21.    
  22.    set_tris_a(0x01);
  23.    set_tris_b(0x3f);
  24.    set_tris_c(0xC0);
  25.    
  26.    int8 array[8]={RELAY0,RELAY1,RELAY2,RELAY3,RELAY4,RELAY5,RELAY6,RELAY7};
  27.    int i;
  28.    for(i=0;i<8;i++)
  29.       output_low(array[i]);
  30.  
  31.    while(1)
  32.    {
  33.       for(i=0;i<8;i++)
  34.       {
  35.          output_high(array[i]);
  36.          delay_ms(1000);
  37.       }
  38.      
  39.       for(i=0;i<8;i++)
  40.       {
  41.          output_low(array[i]);
  42.          delay_ms(1000);
  43.       }
  44.    }
  45.  
  46. }


Továbbra is resetel a 3. relé bekapcsolása után.
A hozzászólás módosítva: Szept 18, 2012
(#) efiscp válasza efiscp hozzászólására (») Szept 18, 2012 /
 
Itt a teljes kapcsolás, graetz javítva, 10u a stab kimenethez hozzáadva. Remélem, most nem rontottam el.

kapcs.png
    
(#) watt válasza efiscp hozzászólására (») Szept 19, 2012 /
 
Jól értem, a 3. relé nincs bennt és még is resetel? Akkor nem a relé zavarjele okozza a problémát, ahogy sejtettem, mert akkor mindegyik relénél gond lett volna.
A PIC 3-as relé kimenetét be kéne kapcsolnod, és mérni a feszt. Nem kell semmi más a programba. Nézd meg az ellenállást, lehet, hogy 4R7...
A hozzászólás módosítva: Szept 19, 2012
(#) efiscp válasza watt hozzászólására (») Szept 19, 2012 /
 
A 6-7-8 relé nincs benn azért, mert 3 db relé meghúzása után jöttek a gondok, és így láthatom, hogy tényleg a relé miatt resetel (visszafelé haladva képes meghúzni az 5. számú relét) vagy már resetel, mielőtt eljutna ide. Az utóbbi történik, tehát valóban nem a relé (vagy nem egyedül a relé) okozza a bajt.

A feszek rendesen megjelennek a relék vezérlésénél. Amikor a 8-tól visszafelé kiadja a vezérlőjelet, akkor a 8. vezérlésén folyamatosan kinn van a fesz (logikus, mert reset után nincs ideje lefutni 0V-ra, máris eljut a program a meghúzásig), a 7-nél reset után 1 másodperccel jelenik meg, ahogy kell neki, a 6-nál meg 2 másodperccel, de csak rövid ideig, mert gondolom jön a reset, ezért a 6-7 lefut 0V-ra.
Az ellenállást megmértem, 4k7.
(#) zolee1209 válasza efiscp hozzászólására (») Szept 19, 2012 /
 
Csak offban mert tippem van csak, nem ismerem a PIC-ek belsejét, de watchdog nem maradt bekapcsolva? Ha ígyis- úgyis a harmadik reléig jut csak a program...
Szerk.: Olvasni arany! Most olvastam a fentebbit, nem szóltam...
A hozzászólás módosítva: Szept 19, 2012
(#) Hp41C válasza efiscp hozzászólására (») Szept 19, 2012 /
 
Szia!
Olvasd ki a kontroller tartalmát a PICKit2 kezelő programjával, írd meg ide a konfigurációs regiszterek tartalmát (hexadecimális formában) és hasonlítsd össze az adatlap értelmezésével.
(#) efiscp válasza Hp41C hozzászólására (») Szept 19, 2012 /
 
Te vagy a nyertes (meg mindenki, aki a WDT-t tette felelőssé). A fenti #fuses direktívák ellenére bekapcsolva maradt a WDT. Átírtam a #fuses WDT_NOSL-t WDT_SW-re, és a main-ben setup_wdt(WDT_OFF) függvénnyel szoftverből hatástalanítottam. Így már sorban kattognak a relék.

Bocs mindenkitől, hogy egy ilyen kezdő hibáért ment a cirkusz, úgy tűnik, több évnyi PICezés után is hajlamos vagyok ilyesmit elkövetni.

Szóval kösz a segítséget, mindenki kap tőlem egy virtuális sört, aztán ha megint van valami nyűgöm, akkor elsírom nektek.
(#) potyo válasza efiscp hozzászólására (») Szept 19, 2012 /
 
Idézet:
„Bocs mindenkitől, hogy egy ilyen kezdő hibáért ment a cirkusz, úgy tűnik, több évnyi PICezés után is hajlamos vagyok ilyesmit elkövetni.”


Vagy csak le kellene szokni az CCS-ről
(#) efiscp válasza potyo hozzászólására (») Szept 19, 2012 /
 
Na épp ezaz, hogy már rég az xc compilereket használom, de egy most egy CCS-ben megkezdett projektet kell folytatnom.
(#) _vl_ válasza efiscp hozzászólására (») Szept 19, 2012 /
 
Részvétem
(#) pjg válasza potyo hozzászólására (») Szept 19, 2012 /
 
A CCS nem javallott?
(#) efiscp válasza pjg hozzászólására (») Szept 20, 2012 /
 
Bővebben: Link engem ez győzött meg.
A hozzászólás módosítva: Szept 20, 2012
(#) _vl_ válasza efiscp hozzászólására (») Szept 20, 2012 /
 
Mondok még egyet: a mikrokontrollerekhez a gyártónak van dokumentációja, amiben le vannak írva a regiszterek, meg azok működése. A regisztereknek van a gyártó által adott neve, az egyes biteknek is sokszor van elnevezése. A doksi ezekre hivatkozik.
A CCS nem ezekkel a nevekkel hivatkozik az egyes regiszterekre, bitekre. Ez egyfelől összezavarja a kezdő felhasználókat, másrészt megnehezíti a dokumentáció használatát.
(#) pjg válasza efiscp hozzászólására (») Szept 20, 2012 /
 
Igazad van.
(#) vilmosd válasza efiscp hozzászólására (») Szept 20, 2012 /
 
Idézet:
„Na épp ezaz, hogy már rég az xc compilereket használom”

Erdemes. Mint minden fordito, ez is tartalmaz kulonos dolgokat. Elo kell venni az eszkozhoz tartozo inc eszkozleirot, es abban le vannak irva a pontos elnevezesek.
A hozzászólás módosítva: Szept 20, 2012
Következő: »»   1094 / 1318
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