10vid Postat Iulie 5, 2011 Partajează Postat Iulie 5, 2011 O varianta cu uC care doarme 100% din timp si e trezit doar cand unul din senzori isi schimba starea. Ordinea senzorilor nu conteaza. Schimba extensia din .txt in .hex. #include "p12f629.inc" goto mainorg 04h;**********************************************;Interrupt on change GP0 & GP1 service routine movlw 1 call delay ;asteptam 0.2s pentru asezare contact movlw 11b andwf GPIO,W btfsc STATUS,Z goto maxim sublw 3 btfsc STATUS,Z bsf GPIO,2 ;pornim pompa retfiemaxim bcf GPIO,2 ;oprim pompa movlw 25 call delay ;delay 5s retfie ;******************************************main bsf STATUS,RP0 bcf OPTION_REG,NOT_GPPU ;enable pull-ups bsf IOC,0 ;config. interrupt on change bsf IOC,1 bcf STATUS,RP0 bsf INTCON,GPIE bsf INTCON,GIEdoarme sleep goto doarme;*****************delay ;delay = W/5 s clrf 40hloop2 clrf 41hloop3 decfsz 41h,F goto loop3 decfsz 40h,F goto loop2 addlw -1 btfss STATUS,Z goto delay return;*****************org 2007h ;configuration worddw 00000110000100bend pompa_PIC12f629.txt Link spre comentariu
EFTIMIE Postat Iulie 5, 2011 Autor Partajează Postat Iulie 5, 2011 Multumesc mult am niste nelamuriri schema respecta cerintele pt. ca am nevoie de ordine in actionarea senzorilor respectiv cand cade S1 sa nu porneasca pompa cand cade S2 porneste pompa si merge pana se ridica S1 cu temporizarea de 5s dupa care se opreste si ciclul se reia si nu stiu sa transform in fisier hex. decat din asm. Link spre comentariu
10vid Postat Iulie 5, 2011 Partajează Postat Iulie 5, 2011 Acel fisier .txt e de fapt un .hex gata facut, dar se pare ca acest site nu te lasa sa uploadezi fisiere cu extensia .hex, si a trebuit sa ii schimb numele in .txt. Dar oricum acel hex e gresit, acum vad: delay-ul de 5s vine dupa oprirea pompei. Se pare ca nu eram in clar ce era cu acel delay la ora cand am scris codul. Voi pune alt hex si sursa. #include "p12f629.inc" goto mainorg 04h;**********************************************;Interrupt on change GP0 & GP1 service routine movlw 1 call delay ;asteptam 0.2s pentru asezare contact movlw 11b andwf GPIO,W btfsc STATUS,Z goto maxim sublw 3 btfsc STATUS,Z bsf GPIO,2 ;pornim pompa retfiemaxim movlw 25 call delay ;delay 5s bcf GPIO,2 ;oprim pompa retfie ;******************************************main bsf STATUS,RP0 bcf OPTION_REG,7 ;enable pull-ups bcf TRISIO,2 ;pin pompa --> output bsf IOC,0 ;config. interrupt on change bsf IOC,1 bcf STATUS,RP0 bsf INTCON,GPIE bsf INTCON,GIEdoarme sleep goto doarme;*****************delay ;delay = W/5 s clrf 40hloop2 clrf 41hloop3 decfsz 41h,F goto loop3 decfsz 40h,F goto loop2 addlw -1 btfss STATUS,Z goto delay return;*****************org 2007h ;configuration worddw 00000110000100bend Senzorii pot fi schimbati intre ei, nu conteaza care e sus si care e jos. Conteaza cand sunt ambii inchisi si cand sunt ambii deschisi. pompa_PIC12F629.txt Link spre comentariu
Ticu Postat Iulie 5, 2011 Partajează Postat Iulie 5, 2011 Dl. Eftimie, puteti preciza daca senzorii inchid sau deschid contactul in prezenta lichidului ca sa nu existe confuzii? Link spre comentariu
EFTIMIE Postat Iulie 6, 2011 Autor Partajează Postat Iulie 6, 2011 Pt. dl.TICU senzorii in prezenta lichidului sunt inchisi (reed atras si face contact electric). Pt. dl. 10vid cum ma revansez? Link spre comentariu
Ticu Postat Iulie 6, 2011 Partajează Postat Iulie 6, 2011 Vestea proasta e ca .hex-ul da eroare la incarcarea in pic629, la fel si prima varianta. Verificat alternativ cu alt .hex, ca sa fiu sigur ca programatorul si pic-ul sunt bune.Pentru siguranta intarzierea de 5 sec. putea fi prevazuta in ambele situatii (ambii senzori inchisi sau ambii deschisi). Probabil golirea se face lent si nu v-a dat contacte multiple, de aceea nu ati avut probleme. Umplerea e mai turbulenta, se fac valuri si senzorul e mai agitat. Link spre comentariu
10vid Postat Iulie 7, 2011 Partajează Postat Iulie 7, 2011 Ce eroare da? Trebuie sa recunosc, eu nu am incercat codul pe 12F629, pentru ca nu am acest cip. In schimb l-am incarcat (de fapt o versiune adaptata) pe 12F615 si chiar m-am jucat putin cu el pe breadboard si merge foarte bine.Delay-ul de 5s e putin inutil, uC ignora oricum contactele multiple date de un singur senzor. Dar e totusi bun probabil pentru a prelungi viata senzorului superior (mai putine actionari, daca apa trece peste el).Observ o diferenta intre 629 si 615, si anume ca la 629 trebuie sa ai inscris in ultima locatie de memorie (3FF) valoarea OSCCAL (calibrare oscilator intern). Sa fie oare aia eroarea?Atasez un zip cu hexuri pentru ambele cipuri. pompa_615_629.zip Link spre comentariu
Ticu Postat Iulie 7, 2011 Partajează Postat Iulie 7, 2011 Cu temporizarea aveti dreptate, de fapt nu e necesara. Senzorii 11 (contacte) determina oprirea pompei, 00 (intreruperi) determina pornirea, iar orice alta combinatie nu schimba starea releului. Sus prima inchidere a contactului va determina oprirea, eventuale deschideri scurte ulterioare nu mai schimba starea. Acum sigur ca ultimul cuvant il are beneficiarul...Nu am 615, am incercat numai 629. WinPIC Programmer zice Error: Programming failed! (vezi poza), iar pus pe placa PIC-ul consuma 0,5 mA timp de jumatate de secunda, apoi zero si nu raspunde la nimic, La fel cu Osccal-ul editat manual la valoarea cu care a venit din fabrica.Fisierele hex in varianta ultima, dupa de-zipare nu sunt recunoscute de program (invalid file name) chiar daca le pot citi cu Notepad si chiar daca le dau eu numele fisier.hex !!! Mai bine nu le comprimati... Link spre comentariu
Ticu Postat Iulie 7, 2011 Partajează Postat Iulie 7, 2011 Scuze ca revin. Un alt dezarhivator imi zice de la inceput pentru .zip "fisier corupt". Poate mai incearca si altcineva. Link spre comentariu
10vid Postat Iulie 8, 2011 Partajează Postat Iulie 8, 2011 Nu cred ca e corupt zip-ul, pentru ca eu il pot descarca si dezarhiva fara probleme (folosesc 7zip). Sa nu fie vreo problema de arhivator sau mai rau, de calculator (virusi etc.) la dv. Dar oricum, acea poza arata codul corect (aceleasi numere ca si la mine in programator), asa ca de aici totul tine de softul si programatorul fiecaruia. Poate cel mai bine ar fi sa reasamblati sursa asm (eu am folosit MPASM).Atasez din nou codul cu un nou update, si anume pentru tratarea cazului unei pene de curent. Se pare ca la aplicarea tensiunii, orice pin configurat ca output, poate sa ia o valoare nedefinita, adica pompa se putea porni singura. Mai mult, dupa aplicarea tensiunii de alimentare, nu e obligatoriu sa se produca vreo intrerupere daca contactele sunt stabile.Acesta poate deveni un caz periculos daca, dupa o pana de curent bazinul e deja plin si pompa se porneste, iar intreruperi nu au de ce sa se mai produca.Astfel, in noul update, dupa power-up pinul de pompa e adus la 0v. Apoi o intrerupere initiala e provocata (intrerupere software), pentru a "citi" starea contactelor. pompa v5.zip Link spre comentariu
Ticu Postat Iulie 8, 2011 Partajează Postat Iulie 8, 2011 Poza e facuta la versiunea 1 necomprimata, cand nu se putea programa 629.O varianta electrotehnica cu relee si una cu tranzistoare. Dupa primul contact facut de S2 urmatoarele nu mai conteaza, pompa se opreste si nu mai porneste pana la deschiderea lui S1. La fel, dupa prima deschidere a contactului S1 restul nu mai sunt luate in considerare, pompa porneste si nu se mai opreste decat la prima inchidere a lui S2. Dupa intreruperi de alimentare pompa nu porneste decat daca rezervorul e gol (S1 si S2 deschise). Link spre comentariu
EFTIMIE Postat Iulie 8, 2011 Autor Partajează Postat Iulie 8, 2011 Multumesc mult saptamana viitoare am pic12f629 si ma apuc de ele. Link spre comentariu
EFTIMIE Postat Iulie 15, 2011 Autor Partajează Postat Iulie 15, 2011 Salut astazi am incarcat fisierul in 629 am facut montajul si nu functioneaza .Astept si alte pareri. Link spre comentariu
EFTIMIE Postat Iulie 20, 2011 Autor Partajează Postat Iulie 20, 2011 Salut baieti ,o idee noua ceva la fisierele postate nu functioneaza pic-ul desi la programare imi da ca totul este O.K.,dar pus in montaj nu executa nimic astept totusi un ajutor pt. ca cel cu 555 mi-a mancat sanatatea. Link spre comentariu
Liviu M Postat Iulie 20, 2011 Partajează Postat Iulie 20, 2011 Interesant ar fi de stiut cu ce ai programat picul, cum ai setat bitii de configurare si ce ai facut la programare cu valoarea OSCCAL (vezi si un post anterior al lui 10vid). Ca sa vezi ce e cu osccal-ul asta, cauta pe forum, s-a mai discutat. Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum