Sari la conținut
ELFORUM - Forumul electronistilor

controler de temperatura cu histerezis, si ceas


grifonul_alb

Postări Recomandate

Vreau sa fac un controler de temperatura cu histerezis, si ceas.PIC18F4550 este microcontrolerul folosit.In schema folosesc: - 4 senzori LM335 pe intrarile A0-3. - 3 taste (push-button) pe B4-6; - un display Hitachi 2X16 pe iesirile D0-5; - 3 relee(in schema sunt LEDuri) pe iesirile E0-2; - pe iesirea D7 este un LED de test.Am reusit sa programez/implementez in MIkroC for PIC partea de convertor A/D pentru cei 4 senzori sipartea de ceas si programul functioneaza. La ceas mai trebuie sa calculez/reglez deoarece are un avas de 3 minute la una ora.Probleme intampinate: pentru taste am vrut sa folosesc intreruperile externe . Cand le activez din registri programul se blocheazasi nu mai functioneaza nimic. Unde am gresit la setarile registrilor sau de ce nu functioneaza impreuna TMR0 si intreruperile externe?Varianta de acum este cu functia BUTTON din MicroC for PIC.Programul si schema mai jos.Multumesc.

Link spre comentariu
  • Răspunsuri 32
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • grifonul_alb

    16

  • nic20

    11

  • UDAR

    2

  • Liviu M

    1

Top autori în acest subiect

O posibila problema ar fi faptul ca in rutina de tratare a intreruperilor nu resetezi niciodata flagurile de la intreruperile externe. Asta inseamna ca dupa ce ai prima intrerupere externa, PIC-ul tau ramane blocat in rutina de tratare a intreruperilor.

void interrupt() {  if (INTCON.TMR0IF && INTCON.TMR0IE) { //daca ai eveniment TMR0 [b]SI[/b] TMR0 e activ      counter = counter +1;      INTCON.TMR0IF = 0;      TMR0L=0xFF;      T0CON.TMR0ON=1; //START TIMER <<< ey???  }  if(INTCON.INT0IF && INTCON.INT0IE){ //daca ai eveniment pe RB0 [b]SI[/b] INT0 e activ       INTCON.INT0IF = 0;...  }...}

PS Am extins testul si la TMR0IE/INT0IE pentru ca flagurile sunt setate si daca intreruperea nu e activa. Fara testul respectiv, odata ajuns in rutina de tratare a intreruperilor vor fi tratate (eronat) si intreruperile (momentan) inactive dar pentru care a fost setat flagul.

Link spre comentariu

Pe langa faptul ca am uitat de resetare flaguri am asignat si tastele Enter, Sus, Jos la LATB4_bit, LATB5_bit si LATB6_bit in loc de PortB4 .

Sper ca in 2-3 zile sa pun o varianta functionala si testata pe PIC18F4550 nu doar in simulator.

 

Multumesc Liviu M pentru idee.

Link spre comentariu
  • 4 luni mai târziu...

Da o sa pun un hex. Partea de ceas nu stiu cat de bine merge. Dar partea de controler de temperatura functioneaza perfect. Din luna mai 2013 functioneaza primul montaj si din iunie 2013 functioneaza si al doilea montaj.Probleme: 1. in cazul in care ramane fara tensiune electrica nu salveaza setarile.2. nu am un cablaj facut. Primul montaj este pe oplaca de test si al doilea montajul este facut pe un breadboard.

Link spre comentariu

Aici este un controler de temperatura cu histerezis care poate fi folosit pentru panou solar, centrala termica, boiler si incalzire in pardoseala. Daca gasiti ceva probleme - prezentatile pentru a putea corecta.

Link spre comentariu

In fisierul cu instructiuni am uitat sa scriu despre "reglajul" senzorilor.Daca montajul este folosit doar pentru panou solar cu apa calda si boiler - nu este necesar a se monta senzorii pentru centrala si ambient. Cu cat cablul pentru senzor este mai lung cu atat va indica o temperatura mai mica fata de cea reala.Pentru reglaj: 1. Se ia de baza senzorul cu cablul cel mai scurt.2. Din meniu se activeaza pompa pe ON (functionare continua) (de ex. pompa 0 - panou solar).3. Dupa o functionare de 1-2 minute se citesc temperaturile de pe cei doi senzori (senzor panou si senzor boiler) si se observa cu cat este "mai mica" temperatura din panou fata de cea din boiler.4. Din meniu la Reglaj S Panou se stabileste valoarea care trebuie adaugata la senzor pentru a citi/afisa valearea reala.Atentie la tipul de cablul folosit. La primul montaj am folosit un cablu de la sistemele de alarma , de genul 4 fire , ecranat. Si am 13-15 m de cablu pentru senzorul panou. Citirile senzorului panou sunt facute bine, fara sa apara oscilatii/ diferente mari intre citiri.La al doilea montaj am folosit un cablu, tot 4 fire, ecranat, de la sisteme de telefonie. Distanta 11 m pana la senzorul panou. Apar diferente mari intre citiri, uneori si de 10 grade Celsius, noroc ca, in program, este setat un histerezis de 5 secunde intre actionarile ON-OFF ale pompelor. In acest an va functiona asa, dar la primavara voi schimba firul si sper sa mai gasesc din cel folosit la primul montaj.In schema nu este desenat montajul cu tranzistor si releu pentru pompa centrala si pompa incalzire in pardoseala, dar este la fel cu cel pentru pompa panou.

Link spre comentariu

bun proiectul un pic complex cu setarileceva cu doi senzori lm335.cu doua set pointuri reglabile separat si histerzis minim 5 gradeare cineva?daca se poate cu afisaj cu leduri

Link spre comentariu

bun proiectul un pic complex cu setarileceva cu doi senzori lm335.cu doua set pointuri reglabile separat si histerzis minim 5 gradeare cineva?daca se poate cu afisaj cu leduri

Pai ai cel putin 2 senzori LM335Poti seta histerezisul dintre ele pentru ON si pentru OFF.Despre afisaj cu leduri , cred ca se poate, dar acum se gasesc mai usor LCD-uri prin bazaruri, pe la recuperari de electronice.Cred ca ar trebui sa explici la ce-ti trebuie tie un controler de temperatura si ce vrei sa faca pe pasi de executie.
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări