Sari la conținut
ELFORUM - Forumul electronistilor

Automat cu PIC 12F675


mars01

Postări Recomandate

Stimati colegi,Am nevoie de ajutorul dvs pentru realizarea unei scheme si softului aferent pentru un astabil/monostabil folosind un PIC 12F675.El trebuie sa functioneze asa:1. Astabilul sa functioneze cu o perioada Toff ~ 10" si Ton ~ 3". La Power ON sa plece cu iesirea (la care se cupleaza un releu) pe "0" logic (deci un delay de 10" pana la primul puls de 3").2. Sa aiba o intrare care atata timp cat este in "1" logic, iesirea (cea cu releul) sa fie tinuta in "0" logic. O actiune de inhibare.3. Sa mai aiba o intrare (la care va fi conectat un intrerupator tip Push). La fiecare apasare a intrerupatorului sa se schimbe starea iesirii (daca iesirea este in "0" logic sa treaca in "1" logic si invers, deci o functie de bistabil).4. La Power ON sa se reseteze de fiecare data, sa nu retina starea anterioara opririi.Multumesc anticipat.

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

Top autori în acest subiect

  • mars01

    26

  • ratoiul

    17

  • Ticu

    7

Top autori în acest subiect

Imagini postate

Aseara cand am postat eram obosit si am gresit. La punctul 3 trebuie sa fie:

 

3. Sa mai aiba o intrare (la care va fi conectat un intrerupator tip Push). La fiecare apasare a intrerupatorului sa se schimbe starea iesirii in regim de monostabil. Adica o apasare a intrerupatorului Push si iesirea este comutata in "1" logic pentru 3 secunde. In acelasi timp aceasta apasare va opri astabilul. O apasare prelungita a butonului nu produce impulsuri suplimentare ci doar primul impuls. La o a-2-a apasare din nou un puls, si numai unul, de 3 secunde, dublata de o repornire a astabilului. Si asa mai departe.

 

 

Ticu, esti pe aproape :aplauze . Tensiunea principala de alimentare este 12V.

 

Este vorba de o modificare pe care vreau sa o fac la masina personala. Auto are optiunea AutoHold dar de fiecare data cand se porneste masina trebuie apasat butonul de AutoHold ca aceasta functie sa porneasca. Butonul este un Push simplu, normal deschis.

 

Vreau sa automatizez aceasta optiune ca sa nu mai uit sa apas butonul.

 

Cand butonul este activat, se aprinde si un bec din buton. Eu m-am gandit asa: pornesc motorul -> astabilul actioneaza electronic comanda de autohold din 10 in 10 secunde si cand conditiile sunt intrunite (centura pusa si usile inchise) functia de autohold este activata -> prin activarea functiei de autohold se aprinde becul butonului, preiau acest semnal si il folosesc ca inhibator pentru astabil: opresc astabilul sa mai trimita impusuri.

 

Ca alternativa, sa zicem ca sunt in trafic si am nevoie de dezactivare a functiei de autohold si fac aceasta apasand odata butonul de autohold. Aceasta dezactivare trebuie sa fie valabila pana la urmatoarea apasare a butonului sau pana la oprirea motorului. La umatoarea repornire a motorului totul se repeta in aceasi pasi.

Deci, primul impuls al butonului va da un impuls de 3 secunde si numai unul catre comanda autohold (pentru a o dezactiva, si opreste si astabilul sa mai trimita impulsuri de activare (un fel de Hold). Urmatorul impuls al butonului, trimite un impuls catre comanda autohold si astfel activeaza functia de autohold si in acelasi timp face un Resume la astabil care reincepe monitorizarea semnalului de inhibare (semnal cules de pe butonul becului).

 

Probabil ca este foarte stufos ce am scris, o sa fac un desen sa fie mai clar.

 

Eu am facut deja un montaj cu 555, dar este prea mare si nu prea am loc unde sa il montez(sunt 3 relee reed plus alte componente), din aceasta cauza m-am adresat voua.

 

LE: Cam cum vad eu situatia:

post-70254-139829498991_thumb.jpg

Link spre comentariu

Salut,Eu am facut asa cum ai cerut in primul post, acum joaca-te cu asta si mai tarziu modific softul,trebuie sa merg pana la banca. La trecerea pe mod bistabil apesi 1 - 2 secunde si apoi apesinormal, in mod astabil deasemenea apesi normal. Timpii nu sunt cei mentionati de tine, suntde 1 secunda ca sa fie observata mai usor functionarea.

post-58963-139829499115_thumb.jpg

Link spre comentariu

Multumiri lui @ratoiu, chiar voiam sa spun ca eu ma opresc la partea de soft. Ar mai fi cateva clarificari. Spune daca e corect. Poate lamurim si semnele de intrebare.Semnale de INTRARE:a. +12V de la cheia masiniib. +12V (?) de la becul din pushbutonul AH al masiniic. MASA (?) de la un pushbuton (AH) Semnale de IESIRE:d. iesire pt. un releu (12V ?) al carui contact NO a inlocuit pushbutonul AHFunctii:1. La aparitia lui (a), la iesire apare o succesiune de pulsuri (astabil 10 sec. LO / 3 sec. HI - incepe totdeauna cu LO)2. La aparitia lui (b), iesirea trece in 0 (se inhiba astabilul). Conditii: existenta lui (a) si lipsa lui ©.3. La aparitia lui ©, iesirea trece in HI pentru 3 sec. (functie de monostabil), indiferent de starea lui (b). Conditie: existenta lui (a).

Link spre comentariu

Va multumesc pentru raspunsurile date, dar pentru a fi mai clar ce am nevoie, postez schema logica a ceea ce am realizat folosindu-ma de LM555.La pornire motor auto, bistabilul se alimenteaza cu 12V. In starea default (imediat dupa pornire), Rel 1 alimenteaza cu 12V astabilul. Acesta incepe sa oscileze incepand cu Toff~10s (deci la alimentarea sa, releul Rel 2 ramane ~10s in stare inactiva). Primul impuls de la astabil va activa Rel 2 care va porni functia AutoHold a autovehicolului. Cand autohold este activ, semnalul SIG trece din 0 in 1 si va opri (inhiba) astabilul. Daca in timp ce merg cu autovehicolul vreau sa dezactivez functia de Autohold, apas o data butonul "Push Buton". Bistabilul activeaza Rel 1 , care intrerupe alimentarea astabilului si va alimenta cu 12V monostabilul. Acesta va da unicul sau impuls si va activa Rel 3 care va opri functia AutoHold. Daca apas inca odata butonul "Push Buton" , bistabilul va comuta alimentarea cu 12V de la monostabil la astabil, care va emite succesiunea de impulsuri din care primul impuls va activa functia de AutoHold.Este necesar astabilul, fiindca este posibil ca sa nu fie intrunite conditiile de pornire ale AutoHold-ului de la primul impuls (trebuie sa fie si centura de siguranta pusa si usile inchise) si el o sa tot trimita impulsuri pana va primi SIG in 1 logic, adica functia de AutoHold este activa.Dpdv al masinii, functia de AutoHold se activeaza cu un contact intre IN 1 si IN2. La urmatorul contact intre IN1 si In 2 se dezactiveaza functia de AutoHold. La urmatorul contact intre IN 1 si IN 2 se activeaza functia de autohold si tot asa (avand celelalte condtii indeplinite: centura pusa si usi inchise).Deci schema trebuie sa aiba un singur Push Button.Ticu:Semnale de INTRARE:a. +12V de la cheia masiniib. +12V (poate sa fie mai mica tensiunea) de la pushbutonul AH al masinii. Foarte usor poate fi transformat in nivele TTL.c. pushbuton (prin apasare face contact la MASA).Semnale de IESIRE:d. iesire pentru un releu (la 12V sau 5v) cu un contact NO care intr-adevar inlocuieste pushbutonul AH original al masinii.Functii:1. La aparitia lui (a), la iesire apare o succesiune de pulsuri (astabil 10 sec. LO / 3 sec. HI - incepe totdeauna cu LO)2. La aparitia lui (b), iesirea trece in 0 (se inhiba astabilul). Conditii: existenta lui (a) si lipsa lui ©.3. La aparitia lui ©, iesirea trece in HI pentru 3 sec. (functie de monostabil), indiferent de starea lui (b). La aparitia lui © astabilul se inhiba pana la urmatoarea apasare a lui ©. [Prima apasare a lui © inhiba astabilul si iesirea trece in HI pt 3 sec., a doua apasare a lui © porneste astabilul s.a.m.d] Conditie: existenta lui (a).

post-70254-139829499305_thumb.jpg

Link spre comentariu

Schema ar putea arata ca cea de mai jos. Ledul de semnalizare nu e obligatoriu.Revenind la soft, algoritmul atasat vi se pare potrivit?Operatiile cuprinse in bucla verde se fac la start, cu scopul cuplarii AH - marcata prin aprinderea becului.Odata aprins becul, se trece la testarea starii butonului, cu o frecventa de 2 ori / secunda (bucla galbena).Dupa ce s-a detectat butonul apasat, se verifica starea becului.Daca este aprins, se incearca stingerea lui (decuplarea AH) printr-un puls de 3 s (bucla neagra).Daca este stins, se incearca aprinderea lui (cuplarea AH) printr-un puls de 3 s, operatie repetata dupa 10 s pauza (bucla albastra). Cand s-a aprins, se revine la testarea starii butonului (linia violeta).Apasarea pe buton trebuie sa depaseasca 0,5s pentru a fi detectata, dar sa fie mai scurta de 3 s; in caz contrar vom avea cuplare urmata de decuplare (sau invers).

post-29403-139829499571_thumb.jpg

Link spre comentariu

Multumesc Ticu pentru schema, este OK (probabil mai este nevoie de un condensator mic pe intrarea lui 7805, cel putin asa apare din datasheet); sa inteleg ca se foloseste oscilatorul intern al PIC-ului.Softul insa este obstacolul principal...

Link spre comentariu

Sper sa nu-l plictisim prea mult pe @ratoiul in ce priveste softul... E deosebit de amabil si a ajutat pe multi.Despre algoritm ce parere ai, satisface cerintele tale?Schema e inspirata din cea data anterior. Am introdus un tranzistor pentru a transforma situatia practica "Bec aprins = +12V pe bec" in conditia B "Bec aprins = intrarea 1 la masa". Alt tranzistor alimenteaza releul, pentru ca PIC-ul nu suporta de regula curentul releului.

Link spre comentariu

Salutare,Mai mars01 te repeti, eu astept de la tine probe pe un breadboard si discutam concret.Ai facut astfel de teste ? Daca le-ai facut, atunci poti comenta functionarea uC-luisi spui cum functioneaza, ce te nemultumeste. Este a treia oara cand vii cu noi explicatiidespre cum doresti sa functioneze, de ca si cum eu nu as fi inteles nimic din ce ai cerut,este fals, softul este creat exact cum ai cerut. In schema facuta eu nu pun tot ca sa simulez functionarea softului, pentru ca nu am nevoie, daca doresti o schema completaeu pot sa o fac, insa atentia mea este retinuta mai mult de soft, de aceea cred ca potisa o faci tu, adica sa pui rezistentele de limitare pe led-uri, rezistente de polarizare latranzistoare, regulatorul de tensiune la 5V, condensatoarele de filtraj etc. Acum inschema data de mine am o greseala, in dreptul butonului monostabil este scris bistabil.Led-ul D2 semnalizeaza starea in care este, astabil sau monostabil, avind o temporizare de 10 secunde pare incomod sa stiu la un moment dat ce face montajul, mai functioneaza sau nu, de aceea este pus D2, rezistentele de pe porturile GP0 si GP1 sunt la masa si nu la plus, atentie domnule Ticu (toate cele bune cu ocazia asta) in rest asa cum s-a cerut (functie de nivelele logice pe intrari uC-ul functioneaza in mod astabil 10s nivel logic 0, 3s nivel logic 1 sau numai nivel logic 0, apoi trecerea in mod monostabil 3s la prima apasare si apoi tace, la adoua apasare 3s si trece in mod astabil). Ceea ce ai cerut nu este complicat, nu trebuie sa faci diagrame, sunt suficiente cateva cuvinte exprimate clar.

Link spre comentariu

Cred ca este un defect al meu, am impresia ca nu sunt suficient de clar si atunci explic din nou. In nici-un caz nu am dorit sa insinuez ceva, dimpotriva va sunt profund recunoscator!!!Multe multumiri @ratoiul si @Ticu, o sa testez montajul si o sa revin cu un feedback.

Link spre comentariu

rezistentele de pe porturile GP0 si GP1 sunt la masa si nu la plus

Scuze, eu am gresit. Pun schema din nou, corectata. Divizorul din 12V l-am pus cu raporrtul 1/2, presupunand ca la pornire s-ar putea sa scada acumulatorul spre 10V.

post-29403-139829500088_thumb.jpg

Link spre comentariu

Buna seara!Intr-un final am reusit sa imi aloc timpul pentru a ma ocupa de acest montaj, programare PIC etc.Din pacate nu lucreaza cum aveam nevoie.Daca atunci cand pinul 6 al UC trece in HI (apas butonul corespunzator) intr-adevar astabilul se opreste, in schimb cand pinul 5 trece in HI se intampla asa:- daca apas pe buton (pinul 5) cand iesirea (pin 7) este LO nu se intampla nimic, astabilul isi continua activitatea ca inainte.- daca apas pe buton (pinul 5) cand iesirea (pin 7) este HI si astept cu butonul apasat ca impulsul sa se termine, cand butonul revine (pin 5 trece in LO) apare un impuls HI pe iesire (pin 7) dupa care iesirea ramane LO (efect monostabil). Daca mai apas odata pe buton (pinul 5), astabilul isi reia activitatea.Eu am nevoie ca oricand apas pe buton monostabil (pinul 5), chiar daca starea de la iesire (pin 7) este LO, sa am un impuls monostabil la prima apasare dublata de dezactivare astabil, la urmatoarea apasare pe pinul 5, la iesire sa apara impulsurile date de reactivarea astabilului, si tot asa .Din cate vad LED-ul functioneaza asa:- cand astabilul este activ, LED-ul este ON- cand astabilul este inactiv, LED-ul este OFFSi cam atat.Se poate oare modifica soft-ul pentru a corespunde cu necesarul meu? Conform schemei pe care am facut-o ultima oara, partea de bistabil nu functioneaza cum as vrea.LE: Cand pun pinul 5 in HI se incinge stabilizatorul ca naiba daca tin mai mult timp apasat butonul respectiv. Am folosit un 78L05 si nu 7805. Pot mari rezistenta de pull down la 47K?LLE: si daca nu abuzez prea mult, se poate reduce durata HI (Ton) a impulsului la cca 1.5sec?Multumesc!

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