Jump to content
ELFORUM - Forumul electronistilor

mini proiecte pe PIC18F4455


Guest utopic
 Share

Recommended Posts

Guest utopic

In primul rand buna ziua. Sunt nou venit pe acest forum, fiind la primul meu post. Am rasfoit cu atentie paginile de pe acest forum si am vazut lucruri ff interesante facute cu PIC-uri. Sunt student la calculatoare, intru in an terminal si am decis sa ma ocup serios de programarea microcontrolerelor. Cam tarziu insa pana acum 6 luni nu stiam ce este un microcontroler. Intrucat m-a fascinat acest sub domeniu am decis sa fac ca si lucrare de liceenta ceva bazat pe microcontrolere. De altfel si in cariera as vrea sa ma orientez spre acest domeniu. Am inceput prin a achizitiona primul meu microcontroler, un PIC18F4455, care de altfel e si singurul pe care am dezvoltat aplicatii. Ma consider incepator in acest domeniu chiar daca am realizat cateva aplicatii. Cea mai complexa a fost comunicarea intre 2 microcontrolere prin bluetooth. Am integrat si un TSOP de la care "citeam" semnalul de la o telecomanda. Acum a venit vacanta si am hotarat sa profit la maxim de ea fiind si ultima. Asa ca am decis sa realizez cat mai multe mini proiecte pt. a ma familiariza cu acest subdomeniu al electronicii. Pentru inceput am decis sa dezvolt 2 proiecte: 1. Vreau sa fac un termometru realizat cu senzorul digital DS18S20 si sa afisez pe un LCD. Stiu, s-a discutat mult acest subiect. Le-am citit pe toate topicurile despre acest subiect. In primul rand am achizitionat senzorul. Acum intervine prima problema: am citit, ca sezorul se poate conecta 1 pin - out, 2- masa, 3- Vdd. Dar cica se poate conecta pinul pt. Vdd tot la masa si senzorul se alimenteaza prin semnale parazite???. Cum e mai oki? Eu ma gandesc ca sa pun simplu 1 pin de intrare pt. a colecta datele, 1 pe Vdd si 1 la masa.A doua mare problema insa vine acum: am zis sa iau un LCD....m-am tot gandit si am demontat un Philips din epoca de piatra....nush daca are nume :)) parca D2 scrie pe el. LCD-ul pare unul de 2*16. Dar mare mi-a fost mirarea ca atunci cand l-am demontat nu are conectori....adica eu ma asteptam sa pot lipii niste fire ....dar nu....nici vorba de asa ceva....habar n-am cum pot sa il conectez. Probabil vi se pare amuzant, insa chiar nu inteleg cum as putea face...Apoi am demontat o agenda electronica....din acea la 3,8 lei :))...Are un LCD ceva mai mare,.....dar la fel....nu am cum sa lipesc....nu are niciun fir nimic. Se vad pe sticla niste "urme" de pini....Am tot citit pe aici ca cel mai oki e lcd de nokia 3310. Ei bine chiar am un nokia 3310 semifunctional. Insa mi-e teama ca il demontez dejaba......mi-am luat inima`n dinti dar n-am putut nicicum sa desfac surubelele telefonului :)))Asa ca ma gandesc sa cumpar un lcd de 3310, dar sa am de unde......dar pot lipii oare fire pe pini??? Nu stiu daca intelegeti ce vreau sa spun, intrucat si mie mi se pare hilar si chiar penibil ceea ce intreb dar chiar nu stiu cum sa fac :). Daca as reusii asta banuiesc ca nu e mare diferenta intre schemele pe care le-am tot vazut aici pt. pic16F si picul meu 18F, nu? 2. Cel de al 2-lea proiect e cam asa: vreau sa reglez un ventilator printr-o telecomanda. Ma gandesc sa folosesc un motor pas cu pas pe care sa pun "o alice". Stiu ca pentru acest motor e nevoie de ULN2003, pe care l-am achizitiona. Am inteles ca un astfel de motoras as gasii in imprimanta. Pana aici e oki, sau cel putin asa sper. Apoi cea mai mare problema e ca nu stiu cum sa recunosc semnalul de la telecomanda....am inteles ca trebuie sa decodez protocolul RC5. Nu prea am inteles cum se face exact acest lucru....si mai ales habar n-am sa-l implementez pe 18F4455-ul meu. DAR m-am gandit sa fac eu un mini protocol: ceva de genul: iau un emitator, il conectez la o tastatura matriciala, si fac asa: apas unu sa palpaie ledul 1 data (stins-aprins 100ms- stins). Daca apas 2 sa se execute de 2 ori aceasta palpaiere.....si eu doar sa verific un contor in pic. Oare e ok asa? Exista o varianta mai buna si totodata usor de inteles? Deocamdata cam atat. Scuze pt. postul lung dar am considerat necesar si o mica descrie fiind primul meu post. Astept raspunsuri, opinii si va multumesc anticipat.P.S. Stiu sa programez doar in mediul MPLAB in C si asm.

Link to comment
Share on other sites

Guest utopic

nu aveam de gand sa imi schimb mediul de lucru, dar imi place mult acest compilator. mersi. astept in continuare idei. deocamda sunt in colaps si astept ajutorul vostru pentru a putea continua mini proiectele.

Link to comment
Share on other sites

Compilatorul e pe primul loc ... zic eu .Cum ziceam , eu folosesc MikroC 8.2 care insa pe site a disparut (au bagat pe git MikroC PRO care pare cam rigid) nu conteaza ca stii lucra in mediul MPLAB , asm . Acest compilator suporta si segvente de cod .asm ex: asm { block of assembly instructions } are incluse o multime de functii predefinite care sa iti usureze munca . Este simplu de utilizat daca stii C singurul lucru care nu il suporta este pointer care functii.

 

In legatura cu primul proiect:

- DS18S20 are o rezolutie de 9 biti , poate functiona si in regim normal si parazit ;pentru functionare parazita ori fac ca in datasheet ori pui o rezistenta de pull up ( 1-2K) la pinul de date, insa trebuie sa ai un delay de aprox 1 secunda pentru ca ds'ul sa termine convertirea temperaturii ( pt. modul normal e foarte mica <100 ms ) apoi citirea implicita.

Pe post de display poti sa iti cumperi unul care sa aibe HD44780 Hitachi Standard.

Un display de Nokia3310 e cam greu de utilizat ... trebuie sa iti creezi propria librarie cu caractere , etc.

Acele display'uri care le-ai scos din agenda aia electronica sau acel Philips sunt asemanatoare cu cele dintr-un display gen 2x16 doar ca nu au driver (driverul era pe placa), nu prea are rost sa te complici cu ele.

 

Diferenta intre schemele cu 16F si 18F este mica .

 

Nu stiu cum se comanda un motor pas cu pas dar nu pare foarte greu . ULN2003 duce 500mA.

Pentru decodare RC5 poti vizita acest site ... si eu am incercat dar nu mi-a prea iesit din cauza unor probleme de hardware . http://www.sbprojects.com/knowledge/ir/rc5.htm

 

Incearca sa decodezi semnal RC5 pt ca este mult mai simplu si nu trebe sa te complici cu emitatoare ......

Link to comment
Share on other sites

Guest utopic

mersi mult. am inteles cum sta treaba cu functionarea senzorului in regim parazit. cred ca prima data incerc sa fac in regim normal si apoi incerc si in regim parazit. e interesanta treaba. Maine ma duc la magazin sa cumpar un LCD. HD44780 Hitachi Standard. e driverul sau insasi LCD-ul. Nu stiu cum sa cer :jytuiyu . "Un display de Nokia3310 e cam greu de utilizat ... trebuie sa iti creezi propria librarie cu caractere , etc." Deci la cele HD44780 Hitachi Standard trimit direct stringuri pe el si le afiseaza? Asa simplu direct?Am gasit un LCD JHD 162A....care cred ca e cu HD44780 Hitachi Standard dar sunt cam sceptic ca-l gasesc la magazin :|.

Link to comment
Share on other sites

Guest utopic

da m-am uitat si peste topicul acela. Cum afisezi? Trimiti stringuri? Si LCD-ul pe care l-ai cumparat de nokia 3310 avea drive-ul acela? adik conectorii aia.Sample code.........=================unsigned char *text = "Akhter.";void main(){CMCON |= 0x07;ADCON1 |= 0x0F;TRISD = 0x00;Lcd_Init(&PORTD); // Initialize LCD connected to PORTDLcd_Cmd(Lcd_CLEAR); // Clear displayLcd_Cmd(Lcd_CURSOR_OFF); // Turn cursor offwhile(1){delay_ms(1000);Lcd_Out(1,1,text);}}================= am gasit acest mic program. dupa cum vad trimite intreg stringul pe LCD.....is putin confuz.Dar oricum, cel mai importan e ca mai intai sa cumpar acel LCD....si sa aiba acel driver ca sa pot conecta.

Link to comment
Share on other sites

Cind mergi sa iti cumperi acel lcd ceri un Display LCD 16x2 sau 16x1 .. de care vrei (iti recomand cel cu backlight) doar sa fie compatibil HD44780 Hitachi Standard.Pot fi de la diferite firme , numai sa nu te pui sa dai 50 lei pe unu . Eu zic sa nu te arunci inca la lcd de nokia 3310 pentru ca e cam greu de lucrat cu el ( parerea mea ).

Din cite vad ai inceput si cu MikroC ... te poti uita in help si vezi ce face si cum lucreaza fiecare functie predefinita.

Functia "Lcd_Out();" afiseaza textul direct insa codul ei .asm e format dintr-o multime de segvente.....

Link to comment
Share on other sites

Guest utopic

N-am prea inteles bine ceea ce se vorbeste in http://www.picbasic.co.uk/forum/showthr ... 10+display dar oricum vreau sa ma apuc de treaba. Acum vroiam sa plec la magazin dupa LCD dar am uitat sa va intreb o chestie. Cand cumpar LCD-ul , acesta are atasat si driverul, nu? Nu trebuie sa cer si driverul corespunzator, nu? Ma refer la LCD-ul HD447.80 Hitachi Standard cat si la cel de Nokia3310

Link to comment
Share on other sites

Guest cipoksan85

Da are si driver-ul, este chit complet. Daca ai cautat pe google sa vezi cum arata ai fi vazut ca este un lcd, iar pe spate ii este atasat o placutza plina de electronica, iar acolo se afla si driverul!!

Link to comment
Share on other sites

cauta la sectiunea bazar si gasesti (viewtopic.php?f=59&t=40375&st=0&sk=t&sd=a&start=15). nu ti-ai pus locatia deci greu de estimat daca iesi ieftin sau nu cu transportul.

mai poti cumpara daca esti din bucuresti de la www.comet.srl.ro , stiam ca au preturi mici.

 

nu se face ventilator folosind motor pas cu pas!! vezi ca sunt motoare in cc care se pot comanda cu pwm.

 

Legat de protocolul RC5 cauta aici la sectiunea PIC dar prin mesajele din anul 2005-2006 ca erau ceva topicuri deschise si era si cod in C. In mare ai asa: 1 logic si 0 logic formate dintr-un front crescator sau descrescator , trecerea din 1 in 0 sau din 0 in 1 facandu-se la mijlocul intervalului (de aici poate si un pic de dificultate). Atentie ca din TSOP iti vine semnalul cu nivel logic schimbat. Tot o problema este ca pentru un 1 logic durata palierului in Low nu este egala cu cea a palierului de High (este o mica diferenta intre ele) deci nu poti sa depistezi nivelul semnalului facind esantionare la o anumita perioada de timp (la unele telecomenzi mai merge, dar sunt unele care sunt uricioase). Mai lesne este sa te folosesti de faptul ca si 1 si 0 logic au o tranzitie din High in Low sau din Low in High si apoi te gandesti cum sa folosesti asta.

 

P.S. ai spus ca ai reusit sa faci un proiect ce realizeaza comunicatia prin bluetooth intre doua microcontrollere. Imi poti spune ce modul de bluetooth ai folosit si mai ales cit costa si de unde l-ai procurat?

Link to comment
Share on other sites

Guest utopic

Mersi pt. raspunsuri. Maine dimineatza ma duc sa achizitionez un LCD (sper sa aiba la magazinul de unde imi procur de obicei piese).

Legat de dispozitivul bluetooth. ACT-BT5701Sv2 se numeste. Acum am cautat pe net daca este de cumparat si am gasit. http://www.actisys.com/price.html da vad ca e fff scump. Eu am primit 2 astfel de dispozitive de la facultate. Eu is ff multumit de ele...dar la pretul ala...

 

 

"nu se face ventilator folosind motor pas cu pas!! vezi ca sunt motoare in cc care se pot comanda cu pwm. "

Banuiam eu ca e o prostie ce zic....dar nu stiam ca sunt asa motoare care le pot comanda cu pwm in afara de cele servo si pas cu pas :jytuiyu

Oare astfel de motoare in cc gasesc de cumparat?

Link to comment
Share on other sites

orice motor de cc il poti comanda in pwm. Oricum nu trebuie sa cumperi un motor de cc ci mai usor este sa-l gasesti prin preajma ta (tot felul de electronice mai vechi pe care nu le mai folosesti. stiu ca prin videorecordere sau video playere gasesti motorase bune (destul de puternice) sau vezi si tu ce mai ai prin casa ). La magazin poate platesti cit nu face un motor de cc. Tu il cumperi ca sa inveti nu sa repari ceva deci .... mai bine il recuperezi de undeva. Motoarele pas cu pas nu se folosesc pentru a realiza un ventilator a carui turatie poate fi controlata pentru ca sunt foarte scumpe, au putere mica vis-a-vis de un motor de cc de acelasi gabarit, si nici turatia nu ajunge sa aiba cine stie ce valori ridicate. Un motor pas cu pas la care rezolutia este de 1,5 grade nu va avea viteza foarte mare, unul care are rezolutia de 15 grade pe pas va avea o viteza mai mare, dar ambele sunt scumpe si nu se merita in asa o aplicatie. Ele sunt foarte precise dar tu la un ventilator nu ai de ce sa folosesti un motor care sa fie capabil sa fac la o rotatie completa N pasi. Daca intr-o secunda face cu 3 rotatii complete mai mult nu cred ca te deranjeaza.

Link to comment
Share on other sites

Guest utopic

No mare ghinion :(( Spectra(singurul magazin de electronice pe care-l stiu din Tg. Mures) nu are LCD HD447.80 si nici macar Nokia3310 :((Are un singur fel de LCD si anume A202....la care nici nu gasesc datasheet-ul pe net :((...ah si mai si costa 45RON :(De unde as putea sa cumpar....?? Care sa trimita eventual prin posta....

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines