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   507 / 1224
(#) zenetom válasza Beles hozzászólására (») Márc 29, 2014 /
 
Az nem tudom mennyire hatásos, de ha nem tudsz máshonnan beszerezni denszeszt, vagy izopropilt, akkor egy próbát megér.
(#) Beles válasza zenetom hozzászólására (») Márc 29, 2014 /
 
Oksa, köszi! Majd szerzek denszeszt, csak hétvégén már nehezen
(#) Beles válasza Beles hozzászólására (») Márc 29, 2014 /
 
Na azt hiszem megvan a probléma. Az USB csatlakozó alatt zizis a forrasztás. Szerintem csinálok egy új nyákot.
(#) Beles válasza Beles hozzászólására (») Márc 29, 2014 /
 
Kiforrasztottam az USB csatlakozó, majd vezetékkel rákötöttem, de még mindíg tizta zizi. 5 percig ment a kapcsolat, azóta ismeretlen eszközként ismeri fel, de úgy hogy gozzá sem nyúlok, folyamatosan eldobálja az ismeretlen eszközt. Esetleg rakjak az adatvonalra zavarszűrő kondikat?
(#) zenetom válasza Beles hozzászólására (») Márc 29, 2014 /
 
Oda nem ajánlatos. Szerintem még valahol kontakthiba van, vagy esetleg az IC döglődik, de azt sem tartom valószínűnek.
(#) Zsora válasza Beles hozzászólására (») Márc 29, 2014 /
 
Idézet:
„Nem szükséges a külső oszcillátor?”

Bocsi, az egy másik típus!
(#) Zsora válasza Beles hozzászólására (») Márc 29, 2014 /
 
Az FT230X ill. FT234X ajánlásában pl. 47pF-os kondik vannak a D+ és D- vonalakon föld felé az USB csati és a 27 ohm-os soros ellenállások között. De ha itt nem említik, akkor valószínűleg nincs rájuk szűkség.
Egyébként a D+ és D- vonalak nincsenek megcserélve?
A hozzászólás módosítva: Márc 29, 2014
(#) Beles válasza Zsora hozzászólására (») Márc 29, 2014 /
 
Ha meg lennének cserélve, akkor kizárt, hogy működne pár percig
(#) frekivalto hozzászólása Márc 30, 2014 /
 
Szep estét.

Egy kis segítségre lenne szükségem. DS1307+ mükődéséhez szükség van e az akkura, a 3-as számu kivezetésre? Vagy elégséges csak a tápfeszültség?

Köszönöm.
(#) eSDi válasza frekivalto hozzászólására (») Márc 30, 2014 /
 
Üdv!

Ha nem raksz bele akkut, vagy elemet, akkor a kikapcsolásnál, illetve a táp megszűnésénél el fogja felejteni, hogy mennyi az idő.
A hozzászólás módosítva: Márc 30, 2014
(#) Bakman válasza frekivalto hozzászólására (») Márc 30, 2014 /
 
A kedvedért elállítottam az órám. Látszólag működik rendesen elem nélkül is (DS1307 N), amíg kap áramot.
(#) Melphi hozzászólása Márc 31, 2014 /
 
Sziasztok!
Van egy Ir világítás kapcsolóm, már 5-6 éve használom a szoba világításának kapcsolására,
van egy rettenetes nagy hibája amit még elem beiktatásával sem tudtam megoldani, mégpedig az, hogy áramszünet esetén elfelejti a táv kódját. Próbáltam elemet berakni, ami csak a PIC-et táplálja, de több nap áramszünet után totál lemerül. Kérdésem az lenne, ha meg van a hex nem lehetne átírni valami hasonló PIC-be aminek van eeprom-ja, és oda mentene, igazából érdemes futni vele a köröket, lehet valami hasonlót csinálni?
Köszönöm.
(#) eSDi válasza Melphi hozzászólására (») Márc 31, 2014 /
 
Üdv!

Ennak a PIC-nek van 128byte EEPROM memóriája. Az Assembly programot végig nézve én úgy látom, hogy el is menti az EEPROM-ba a távirányító kódját a megfelelő reléhez linkelve a setup végén. Még a leírás is azt írja, hogy elmenti oda. Biztos, hogy jól csináltad meg a beállítását?
(#) Hp41C válasza Melphi hozzászólására (») Márc 31, 2014 /
 
Ahonnan letörltötted a hex -et ott megtalálható a forrása is. A forrás szerint a beállításokat menti az EEProm -ba. A 12F629 rendelkezik 128 byte belső EEPrommal.
(#) Melphi hozzászólása Márc 31, 2014 /
 
Hát nem tudom, ha betanítom gyönyörűen működik, de ha lehúzom róla a tápot és visszadugom megint nem reagál semmire, újra tanítani kell.
(#) elektros90 hozzászólása Márc 31, 2014 /
 
Sziasztok!
Használja valaki az MPLAB XC compilert? Dokumentációt keresek hozzá. Milyen egyébb C compilert érdemes/ajánlott használni?
Köszönöm szépen!
(#) Hp41C válasza Melphi hozzászólására (») Márc 31, 2014 /
 
Felprogramozáskor beállítod mind a három kimenetet? A harmadik után mentene...
(#) Melphi válasza Hp41C hozzászólására (») Márc 31, 2014 /
 
Hát ez úgy van, bekapcsolom akkor kettőt villanik az állapot jelző led (piros) és minden kialszik, ezután meg kel nyomni a gobot hosszan akkor az állapotjelző led elkezd lassan villogni, és vele egy időben az első csatornához tartozó led is világit, ilyenkor a távval az első gomb megnyomásával programozom ezután automatikusan át vált a következő csatornára és nyomom rá a második gombot, ha ezt a harmadikkal is eljátszottam akkor az állapot jelző led gyorsabban kezd el villogni és evvel kész, de próbálok egy videót csinálni.
(#) Melphi hozzászólása Márc 31, 2014 /
 
Itt a van videó, bocsi a rossz minőségért de a lényeg látszik.
ha betanítom átunna viszi a csatornákat de ha elveszem majd visszaadom a DC-t ahogy látod átunna is látja de hülyeséget csinál.
A hozzászólás módosítva: Márc 31, 2014
(#) eSDi válasza Melphi hozzászólására (») Márc 31, 2014 /
 
Itt a probléma!

Idézet:
„1.With the controller board powered on, enter setup mode by pressing S1 for about 1.2 seconds
2.The Status LED will start to flash at 1Hz and the Rly 1 LED will light.
3.Press the button on the remote control you wish to use to operate Relay 1.
When a valid command has been received it will turn off Rly 1 LED and Rly 2 LED will light.
4.Press the button on the remote control you wish to use to operate Relay 2
When a valid command has been received it will turn off Rly 2 LED and Rly 3 LED will light.
5.Press the button on the remote control you wish to use to operate Relay 3
When a valid command has been received for Rly 3, the Status LED will begin to flash at 3Hz and all three Rly LEDs will turn off.
6.Set output operating action.
By pressing the buttons programmed in steps 3 to 5 above, the Rly LEDs can be turned on and off. When the LED is off, the corresponding relay will operate in toggle action mode. When the LED is on, the relay will operate with momentary action.
7.Once the desired operating mode has been set for each relay, press switch S1 again.
8.The Status LED will turn off and the settings are saved to non-volatile memory.
The controller will now respond to the newly programmed commands”


Te csak az 5. pontig végezted el a beállítást.
6. Ezután még be kell állítani, hogy alap allapotban milyen legyen a relé állapota a gombok segítségével.
7. Ha beállítottad mind a 3 állapotát, akkor meg kell nyomni az S1 gombot.
8. A státusz LED elalszik és elmenti a beállításokat.

A hozzászólás módosítva: Márc 31, 2014
(#) Melphi válasza eSDi hozzászólására (») Márc 31, 2014 /
 
Megyek megpróbálom.
(#) Melphi válasza eSDi hozzászólására (») Márc 31, 2014 /
 
Eszem eldobom, én soha nem próbáltam a végén gombot megnyomni, ez az angol tudás hiánya, működik, ki is dobom belőle az elemet.
Örök hálám nagyon hálás vagyok a segítőknek.
(#) vicsys válasza Melphi hozzászólására (») Márc 31, 2014 /
 
Csináld! Ha nem megy, csináld újra! Ha még mindig nem megy, olvasd el a használati utasítást!
(#) eSDi válasza Melphi hozzászólására (») Márc 31, 2014 /
 
Azért sajnállak, hogy 6 évig kínlódtál vele. Aztán most kiderül, hogy a diagnózis: tipikus "user error" szindróma. De legalább már nem fog többet csuklani a program készítője.
A hozzászólás módosítva: Márc 31, 2014
(#) Melphi válasza vicsys hozzászólására (») Márc 31, 2014 /
 
Igen, de sajnos nem tudok angolul, és ez a kis mondat elmaradt hogy "gomb egyszeri megnyomásával beállítás elmenthető".
Gondoljatok bele már 5-6 éve használom és ezt még soha nem próbáltam, mindig csak újra beállítottam.
(#) Melphi válasza eSDi hozzászólására (») Márc 31, 2014 /
 
Igen, köszönöm
(#) frekivalto válasza Bakman hozzászólására (») Márc 31, 2014 /
 
Köszönöm Mindkettőtöknek a választ.
Elvileg igaza van mindenkinek, de...

Amíg nem volt rajta akku, addig mindenféle adat került kiírásra, mint pl.: óra 45, perc 45, dátum fals értékek, stb.

Rádugtam egy 3V-os elemet, és láss csodát, tápfeszültség rákapcsolása után egyből valós adatokat írt ki: óra:00:00:00 dátum:2010.01.01.
Majd nyomógomb megnyomása után (ez írja be az értékeket) át is ment az adat, elindult az óra

Köszönöm.

Ha valakinek hasonló gondja van, akkor ebből lehet tanulni.
(#) vicsys válasza frekivalto hozzászólására (») Márc 31, 2014 /
 
(#) KaiserA válasza Hp41C hozzászólására (») Ápr 1, 2014 /
 
Szia!
Azt szeretném megkérdezni, hogy mi lehet a baj.
A program eljut az if ig, de az if be már nem lépbe, és a kijelzőn nem jelenik meg semmi. ha kikommentelem az ifes részt, és csak az utolsó Temperature = ( (fogadottadat * 16 + fogadottadat2)/ 16.0); részt hagyom meg az ifes részből, akkor ertek = 208.93 jelenik meg a kijelzön.
de ha megfogom a kezemmel, a hőmérséklet szenzort akkor nem változik az érték, vagyis a szenzor nem jelzi a hőmérséklet változást.
ha a Temperature = ( (fogadottadat * 16 + fogadottadat2)/ 16.0); egyenletet is kikomenttelem akkor érték :193 , ami ugye átszámolva, 31,9375 fok. amit sokkalok mert kb a szobámban ,21-23 fok lehet.
  1. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  2. //++++++++++++++++++++++++++++++++++++++++BEALLITASOK++++++++++++++++++++++++++++++++++++++++++//
  3.  
  4.  
  5. #zero_ram                                                                                      
  6. #include <h fileok/18F4550.h>                                          
  7. #DEVICE ADC=10                                                                         
  8. #include <h fileok/stdio.h>                                                    
  9. #include <string.h>                                                                    
  10. #include <h fileok/float.h>    
  11. #use i2c(master,sda=PIN_B0, scl=PIN_B1)
  12. #define SLAVE_ADDRESS 0x3E
  13.  
  14.  
  15.                                                
  16. #fuses HS,BROWNOUT,NOPUT,NODEBUG,NOWDT                         
  17. #use delay(clock=24000000)                                             
  18. #include <lcd.c>                                                               
  19. #include <h fileok/prototypes.h>
  20.  
  21.  
  22.  
  23. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  24. //+++++++++++++++++++++++++++++++++++++++++VALTOZOK++++++++++++++++++++++++++++++++++++++++++++//
  25.  
  26. //LCD
  27.  
  28. unsigned char felsosor[16];            
  29. unsigned char alsosor[16];             
  30. int8 a=0;      
  31. unsigned long beolvasas=0;
  32. float hom=0;                                           
  33. float tullepes=0;
  34. unsigned long fogadottadat=0;
  35. unsigned long fogadottadat2=0;
  36.  
  37. float Temperature=0;
  38.                        
  39. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  40. //+++++++++++++++++++++++++++++++++++++++INICIALIZALAS+++++++++++++++++++++++++++++++++++++++++//
  41.  
  42. void init()                                                                    
  43.         {
  44.         set_tris_a(0xc3);                                                      
  45.         set_tris_b(0xff);                                                        
  46.         set_tris_c(0xff);                                                      
  47.         set_tris_d(0x1f);                                              
  48.         set_tris_e(0xff);                                              
  49.  
  50.         output_low(PIN_A3);                                                
  51.         output_low(PIN_A4);                                                
  52.         output_low(PIN_A5);                                                    
  53.         output_low(PIN_A2);                                            
  54.  
  55.         lcd_init();                                                                    
  56.         SETUP_ADC(ADC_CLOCK_INTERNAL);                 
  57.         SETUP_ADC_PORTS(AN0_TO_AN1|VSS_VDD);           
  58.         SET_ADC_CHANNEL(0);                                                    
  59.         }
  60.  
  61.  
  62.  
  63.  
  64.  
  65. void main()
  66.                 {
  67.                 init();                
  68.                 while(1)
  69.                         {      
  70.                         i2c_start();
  71.                                             i2c_write(SLAVE_ADDRESS);
  72.                         i2c_write(0x05);
  73.                         i2c_start();
  74.                         i2c_write(SLAVE_ADDRESS | 0x01);
  75.                         fogadottadat=i2c_read(0);
  76.                         fogadottadat2=i2c_read(0);             
  77.                         i2c_stop();
  78.  
  79.  
  80.                
  81.  
  82.                
  83.                                                                                                
  84.         //Convert the temperature data
  85. //First Check flag bits
  86. if ((fogadottadat & 0x80) == 0x80){ //TA >= TCRIT}
  87. if ((fogadottadat & 0x40) == 0x40){ //TA > TUPPER}
  88. if ((fogadottadat & 0x20) == 0x20){ //TA < TLOWER}
  89. fogadottadat = fogadottadat & 0x1F; //Clear flag bits
  90. if ((fogadottadat & 0x10) == 0x10){ //TA < 0°C
  91.     fogadottadat = fogadottadat & 0x0F; //Clear SIGN
  92.        
  93.  
  94.                                                                 Temperature = 256.0 - ((float)(fogadottadat *16 + fogadottadat2) / 16.0);
  95. }else //TA >= 0°C
  96.  
  97.                                
  98.                                 Temperature = ( (fogadottadat * 16 + fogadottadat2)/ 16.0);
  99.  
  100.  
  101.                                                                         lcd_putc("\f");
  102.                                                                         sprintf(felsosor,"ertek: %4.2f" ,Temperature);
  103.                                                                         sprintf(alsosor,"ertek: %4.2f" ,Temperature);
  104.                
  105.                                                                         a=0;                                                                           
  106.                                                                         while(a<=16)                                                   
  107.                                                                                 {
  108.                                                                                 lcd_putc(felsosor[a]);                         
  109.                                                                                 a++;                                                           
  110.                                                                                 }
  111.                        
  112.                                                                         lcd_putc("\n");
  113.                                                                         a=0;                                                                           
  114.                                                                         while(a<=16)                                                   
  115.                                                                                 {
  116.                                                                                 lcd_putc(alsosor[a]);                                  
  117.                                                                                 a++;                                                                   
  118.                                                                                 }
  119.                        
  120.                 delay_ms(50);
  121.  
  122.         }
  123.  
  124. }
  125.  
  126. }
  127.         }
  128.                 }


Mi lehet a baj?
(#) vilmosd válasza KaiserA hozzászólására (») Ápr 1, 2014 /
 
Kerdes : Milyen szenzorral dolgozol? Nagy valoszinuseggel nem olvassa jol a PIC, es a program nem tudja feldolgozni az ertelmetlen adatot.
Következő: »»   507 / 1224
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