Sari la conținut
ELFORUM - Forumul electronistilor

Timer cu PIC12F675


Seppy

Postări Recomandate

Buna seara ,

as avea nevoie de un timer care la conectarea alimentarii sa temporizeze :

o iesire : 1,5 sec ON - 1,5sec OFF -1,5sec ON - 1,5sec OFF - ON pina decuplez alimentarea si

alta iesire : 1,5 sec ON - 1,5sec OFF -1,5sec ON - OFF pana decuplez alimentarea ,cu un PIC 12F675 care il mai am acasa

Va multumesc

Seppy

Link spre comentariu

1. Prima ieșire rămâne ON după două cicluri ON-OFF iar a doua rămâne OFF . Am înțeles bine ?

2. Cât de precise trebuie să fie intervalele ?

3. Și , în final, ce dorești ? Un .hex ?

Link spre comentariu

Facut repede pe genunchi si fara pretentii, da?

Proiectul pentru mplabx + xc8:

timerElforum.zip

 

Hex-ul pentru cine nu vrea sa se murdareasca pe maini.

timerElforum.X.production.hex.txt


LE Nu am testat nimic. La cat e de simplu ar trebui sa mearga din prima. Daca nu merge, spui ce nu merge (cat mai detaliat) si incerc sa repar.

 

A, manualul de utilizare: merge cu oscilatorul intern. Cele doua iesiri sunt GPIO4 si GPIO5. GPIO4 e cea care ramane ON, GPIO5 e cea care se stinge.

 

Hexul e in fisierul .hex.txt. Trebuie stearsa extensia .txt.

Editat de Liviu M
Link spre comentariu

Daca este ceva de genul (GIF-ul de mai jos se repeta ca de deh ... nu merge altfel postat dar programul are o singura executie):

nobxw1.jpg

 

atunci programul poate fi:

#define ON  1
#define OFF 0

void main() {
   ANSEL = 0;
   CMCON = 7;
   GP0_bit = OFF;
   GP1_bit = OFF;
   TRISIO0_bit = 0;
   TRISIO1_bit = 0;
   
   while(1)
   {
      GP0_bit = ON;
      GP1_bit = ON;
      delay_ms(1500);
      GP0_bit = OFF;
      GP1_bit = OFF;
      delay_ms(1500);
      GP0_bit = ON;
      GP1_bit = ON;
      delay_ms(1500);
      GP0_bit = OFF;
      GP1_bit = OFF;
      delay_ms(1500);
      GP0_bit = ON;
      GP1_bit = OFF;
      
      while(1);
   }
}

mikroC for PIC

 

 

LE: too late ... :limb: M-a invins Liviu la secunde ...

blink_then_stop.txt

Editat de mars01
Link spre comentariu

Daaaa . Eu am fost ultimul , așa că nu mai postez . E aproape identic cu ce a postat Marius . Dar am o întrebare - La ce e bună bucla mare while(1) ?

Link spre comentariu

@Radu: asa functioneaza microcontrollerele, daca nu le dai de lucru permanent, o iau de la capat (se reseteaza).

@Thunderer: 1. Buna intrebare. Functioneaza si asa dar primul while(1) nu e necesar.

2. Asa e cerinta, o iesire trebuie sa ramana OFF. Nu era nevoie de comanda respectiva (GP1 e deja facut OFF cateva linii mai sus), dar nici nu deranjeaza (un compilator care optimizeaza cat de cat o sterge oricum :)).

 

LE Radu, ti-am inteles intrebarea gresit, sorry.

Editat de Liviu M
Link spre comentariu

:rade:

Doar am aruncat niste instructiuni pe gard, vorba vine.

Prima bucla while(1) nu are sens, este acolo doar din obisnuinta, intotdeauna primul lucru care il fac introduc bucla infinita in care va lucra controller-ul. Nu imi mai aduc aminte unde am citit si despre ce compilator (sorry) dar undeva scria ca este indicat ca intotdeuna sa existe o bucla infinita in program.

Ultima bucla while apare din cauza primei :)

 

Ultima linie

GP1_bit = OFF;

apare de la copy-paste.

Link spre comentariu

Am facut montajul pe board si functioneaza cum am vrut . ">http://fyoj69.jpgarata ca vai si amar , dar merge . Urmeaza sa-i proiectez un cablaj dupa schema care am gandit-o si sa-l termin cat mai repede .

 

Multumesc UDAR , Liviu M ,si mars01 pentru ajutor .

o sa postez si o imagine cu " produsul finit " cand va fi gata

Seppy

scuze pentru calitatea slaba a imaginii

Editat de Seppy
Link spre comentariu
  • 4 luni mai târziu...

Va salut dragi colegi!

Este perioada coacerii strugurilor și se pare că de acest lucru află întotdeauna și necuvântătoarele: căprioare, mistreți, s.a.m.d.

Cum la tăiat, legat, săpat, stropit, erbicidat, prășit au lipsit, am decis ca nu as prea fi de acord să vină chiar acum.

Trecând peste introducerea non-tehnică, v-aș ruga dacă este cineva dispus să îmi facă un progrămel pentru un PIC 12F675 care sa facă următoarele:

La alimentare, un pin este 1 minut on și 5 minute off

alt pin este 5 secunde on și 5 secunde off, în perioada în care pinul anterior este on, după care este și el 5 minute off

Aș fi interesat dacă se poate implementa și o citire a luminii mediului înconjurător cu un fotorezistor sau cu un panou recuperat dintr-o lampă de grădină, astfel încât montajul să nu mai activeze cele două ieșiri pe timpul zilei.

Descrierea practică: prima ieșire activează o goarnă timp de un minut și o face să tacă pentru alte 5 minute. A doua ieșire aprinde un far auto 5 secunde, îl stinge 5 secunde în perioada cât țipă și goarna. Fotorezistența sau panoul recuperat face liniște în vie ziua, când animalele sunt plecate la treaba lor.

O parte din logistică există, mai lipsește creierul. IMG_20170819_233420.jpg

Editat de Marius84
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