Fórum témák
- • Kapcsolóüzemű tápegység
- • Autóriasztó és központi zár
- • Boombox javítás
- • CNC építése házi alkatrészekből az alapoktól
- • Li-Ion saját akkucsomag készítése
- • Elektromos távirányítós kapunyitó
- • Erősítő mindig és mindig
- • Analóg oszcilloszkóp javítása
- • LED szalag
- • Hangszórójavítás (otthon)
- • Számítógép hiba, de mi a probléma?
- • Mosógép vezérlők és általános problémáik
- • Sprint-Layout NYÁK-tervező
- • Érdekességek
- • Kaputelefon
- • Transzformátor készítés, méretezés
- • Villanypásztor
- • Kondenzátor
- • Arduino
- • Videomagnó problémák
- • IMI villanymotor
- • Digitális adatátvitel
- • Mosogatógép hiba
- • Nagyfeszültségű tápegység
- • 3-fázisú Modbus-os teljesítményszabályzó (SCR power controller)
- • Rádióamatőrök topikja
- • Elfogadnám, ha ingyen elvihető
- • Villanyszerelés
- • TDA7294 végerősítő
- • Klíma szervizelés, javítás
- • Klíma beszerelése, fűtés-hűtés házilag
- • Kombikazán működési hiba
- • Általános antennás kérdések, válaszok
- • Dobozolási technikák, műszerdobozok
- • Elektronikai témájú könyvek újságok
- • Elektromos vezérlésű pneumatika
- • Internetes rádióvevő
- • Alternativ HE találkozó(k)
- • 3D nyomtatás
- • Felajánlás, azaz ingyen elvihető
- • Akkumulátor töltő
- • Háromfázisú aggregátor
- • Szintetizátor javítás
- • Sütő javítás
- • Laptop javítás, tuning
- • Autós erősítős kérdések, problémák
- • Mikrohullámú sütő javítás, magnetron csere, stb.
- • Villanymotor
- • Vegyes barkácsfogások
- • Digitális óra
- • Hűtőgép probléma
- • TV hiba, mi a megoldás?
- • Szünetmentes táp javítása, élesztése
- • Erősítő építése elejétől a végéig
- • Műhelyünk felszerelése, szerszámai
» Több friss téma
|
- 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.
a pineket már leellenőriztem korábban, az rendben van.
Viszont amit furcsállok, hogy a Vss Vdd között csak 1,05V mérhető A hozzászólás módosítva: Feb 5, 2021
MpLabX -en keresztül programozod? Lehet, hogy úgy működik, mint az IPE?
Az IPE nem alapértelmezésben nem ad Vdd tápot a kontrollernek. A menüben be kell állítani, hogy szolgáltassa. (Egy egész násztánc - nem tárolja le - minden esetben újra el kell járni.)
Másrészt, ha 5.00V -ot állítasz be programozási feszültségnek, a visszamért Vdd feszültség alacsonyabb lesz, mint amit a program tolerál. Próbáld 4.75V -on.
Sziasztok!
Pic18-al szeretnék készíteni egy programból állítható DC tápegységet. A bemeneti tápfeszültség 14Vdc, kimenet 0-12Vcd lenne. Áram a lehető legkisebb 10K terhelés esetén nem változzon a feszültség. Van valakinek ötlete a megvalósításra? Programozás nem gond, csak a hardver nem áll össze.
PWM kimenet, RC tag, műveleti erősítő. LM324-gyel viszonylag jól le lehet menni a nulla közelébe.
Van esetleg egy sematikus rajzod? Fontos lenne a kimenet tejesen DC legyen. A hozzászólás módosítva: Feb 9, 2021
Mit jelent a "teljesen"? Milyen felbontásra van szükséged?
Mi az a felbontás?
Lehetőleg ne legyen frekvencia.
Hogy mekkora lépésekben szeretnél fel-le menni. Mondjuk ha 0.05V a felbontás, akkor ennek többszörösét tudod csak beállítani.
Valamekkora hullámosság PWM esetén biztosan lesz.
Ha tényleg csak pár mA kell, akkor elgondolkodhatsz áteresztőtápos megoldáson is, de ott a teljes feszültségcsökkenés a tranyót fogja fűteni. Itt nagyon kicsi lesz a hullámosság.
A 0.05V lépések úgy gondolom elég lenne.
Rákerestem az áteresztőtápra de ezt hogy tudom Pic-el szabályozni?
digitális potméterrel pl.
Egy nagyobb feszültséget is elviselő digitális potméterrel simán megoldható a feszültség osztó is, nem?
Sziasztok! szeretnék készíteni egy olyan eszközt, ami félóránként méri a hómérsékletet és a páratartalmat. Ez eddig megvan, siket megcsinálni Ezzel a szenzorral.
A gondom az, hogy szeretném ha ezt a mérést végezné 1-2-5 napig (vagy 2 hétig is akár) és utána ezekhez az adatokhoz hozzá tudnék jutni. Memóriát kapcsolni a PIChez? Amit PCvel lehetne kiolvasni? Vagy valami kijelzőt rá, amire kiiírhatná sorban és fel lehet jegyezni?
Van valakinek ilyesmivel tapasztalata, melyik a jól használható megoldás?
Szia! Kijelzőről félóránként lejegyezni nehézkes. Én sd kártyát használnék, majd pc-ről kiolvasnám.
Ettől függetlenül memóriát érdemes mellérakni.
SD kártya.. nem is jutott eszembe. Köszi!
Viszont akkor minek mellé a memória? (még küldő memóriát se használtam soha) Minden félórában lefut a folyamat, a mérés eredményét SD-re írja egy dátummal és időponttal. Ehhez a PIC belső memóriáját használnám. Vagy valami más oka is a külső memóriának?
Valójában nem értek hozzá, de a hex-es Józsi mondta, hogy érdemes külső memóriát használni. 1Megás 500 Forintocska és nem is foglal sok helyet. Én mindenhova rakok, plusz rtc-t.
A PIC belső memóriája néha korlátozott számú írást visel el, ha elkopik, a PIC megy a levese. Külső memória esetén olcsóbb a csere.
Köszi. Erre még sose gondoltam.
Esetleg egy konkrét memórát tudnátok ajánlani? Mivel sose használtam, legalább lenne egy kiindulási eszközöm.
És köszönöm a tippeket.
Én 24LC1025-öt használok, de ez nem mérvadó.
1. Ha kijlező, akkor Nextion ... jó sok adatot meg tud jeleníteni, grafikonokat tud létrehozni, érintős ...
2. Ha Rx-Tx lábavan a PIC-nek akkor egy USB-RS232 adapterrel soros adatátvitel...
3. Ha tud USB-t a PIC akkor meg azon átküldeni PC-re az adatokat A hozzászólás módosítva: Feb 10, 2021
Sziasztok!
DS18B20-al mérnék hőmérsékletet, de 000.0000 értéket mutat. Mikroc-ben programozok PIC16F887-t.
A library-ban levő példaprogrammal próbálnám megszólaltatni, de nem akar a 0-án kívül semmit sem mutatni.
// Set TEMP_RESOLUTION to the corresponding resolution of used DS18x20 sensor:
// 18S20: 9 (default setting; can be 9,10,11,or 12)
// 18B20: 12
const unsigned short TEMP_RESOLUTION = 12;
char *text = "000.0000";
unsigned temp;
void Display_Temperature(unsigned int temp2write) {
const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
char temp_whole;
unsigned int temp_fraction;
// Check if temperature is negative
if (temp2write & 0x8000) {
text[0] = '-';
temp2write = ~temp2write + 1;
}
// Extract temp_whole
temp_whole = temp2write >> RES_SHIFT ;
// Convert temp_whole to characters
if (temp_whole/100)
text[0] = temp_whole/100 + 48;
else
text[0] = '0';
text[1] = (temp_whole/10)%10 + 48; // Extract tens digit
text[2] = temp_whole%10 + 48; // Extract ones digit
// Extract temp_fraction and convert it to unsigned int
temp_fraction = temp2write << (4-RES_SHIFT);
temp_fraction &= 0x000F;
temp_fraction *= 625;
// Convert temp_fraction to characters
text[4] = temp_fraction/1000 + 48; // Extract thousands digit
text[5] = (temp_fraction/100)%10 + 48; // Extract hundreds digit
text[6] = (temp_fraction/10)%10 + 48; // Extract tens digit
text[7] = temp_fraction%10 + 48; // Extract ones digit
// Print temperature on LCD
Lcd_Out(2, 5, text);
}
void main()
{
ANSEL = 0; // Configure AN pins as digital I/O
ANSELH = 0;
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;
InitTimer0();
//megszakítások
szamlal=0; figyel=0; sek=0; //perc=0; ora=0;
TRISA=0b00111110; //1,2 portok vízszint bemenetek
TRISB=1; //csapok záró-nyitó kimenetei nyomó gombok bemenetei
TRISC=0b00001100; //kimenetek
TRISD=0b00000000;
TRISE.RE2=1;
INTCON.RBIE=1;
INTCON.RBIF=0;
IOCB=0b11111111;
INTCON.GIE = 1;
Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
////////////////////////
while(1)
{
/////////////////////////////// //
//--- Perform temperature reading
Ow_Reset(&PORTE, 2); // Onewire reset signal
Ow_Write(&PORTE, 2, 0xCC); // Issue command SKIP_ROM
Ow_Write(&PORTE, 2, 0x44); // Issue command CONVERT_T
Delay_ms(1000);
Ow_Reset(&PORTE, 2);
Ow_Write(&PORTE, 2, 0xCC); // Issue command SKIP_ROM
Ow_Write(&PORTE, 2, 0xBE); // Issue command READ_SCRATCHPAD
Delay_us(120);
temp = Ow_Read(&PORTE, 2);
temp = (Ow_Read(&PORTE, 2) << 8) + temp;
//--- Format and display result on Lcd
Display_Temperature(temp);
Delay_ms(500);
/////////////////////////////// ////////////////////
}
}
Mi a nem működés oka? A hozzászólás módosítva: Feb 10, 2021
Több oka lehet, a kiderítésében sokat tud segíteni egy logikai analizátor. Pl. nincs/nem jó a felhúzó ellenállás, nem jó a kontroller órajele, nem jó az IC stb.
A kódból nem derül ki. Mekkora órajellel járatod a PIC-et? A viszonlyag szűkös időkeretek miatt érdemes nagyobb órajellel hajtani a kontrollert, legalább a teszt erejéig. A belső, maximum 8 MHz még kevés is lehet, attól függően, hogy a 1-Wire kód mennyire vagy mennyire nem optimalizált.
Szia!
Az oszcillátor belső és 8 MHz. Lehet meg kéne emelni?
A mikroe javaslata szerint az oszcillátor frekvenciának legalább 4MHz-nek kell lenni.
Szóval: 8MHz belső oszcillátor, a PORTE.RE2 láb az onewire bemenet. A DS18B20 szonda jó, más hőmérőben működik, a PORTE.RE2 láb vezérelhető. A PIC16F887 példa programjával nem és nem akar működni.
Logikai analizátorral kell megnézni az adatvonalat, anélkül csak tippelgetni lehet. Azzal azonnal látszik, hol a hiba. Nincs vezérelve a láb vagy hibás időzítések vannak stb.
Felhúzóellenállás mekkora?
Sziasztok PIC16F1827 helyettesíthető?
|
|