Vizitator nelukyns Postat Martie 26, 2010 Partajează Postat Martie 26, 2010 Salutare tuturor,am si eu o mica problema semirezolvata...lucrez la un mic proiect,un sistem de alarma cu mai multe functii,comandate de un pic...functionarea acestui sistem e bazata pe o bariera infrarosu si un sensor de apropiere (capacitativ)...cind se va intrerupe bariera se va face o avertizare sonora (o sa folosesc un ISD 1420)...in caz ca se ignora mesajul... "intrusul" se va apropia de sensorul capacitativ (ex. la o usa)...sensorul va activa iluminarea incaperii si tot atunci un impuls va trimite un semnal catre calculator care la rindul lui va activa o camera video care va inregistra ce se petrece la usa data si va trimite un email cu data ora etc...cind "intrusul" pleaca - camera video se opreste,lumina se stinge...am atasat arhiva cu sursa asm si schema proteus...acolo am inlocuit avertizarea audio cu un led rosu...iar celelalte 2 cu led verde...Aceste functii (mai sus descrise)sunt de baza...dar eu la inceput de proiect mi-am pus in plan sa le coordonez cu un timp(ex.se trece bariera...activeaza sonorul...5 sec sa astepte apoi iar sa intre in regim de paza...) sau un afisaj(7 seg - ca e mai usor) care sa arate stop... si in loc de email un sms...dar acestea nu-s in puterile mele..Cu toate ca sunt incepator,am scris acest asm (pentru functiile de baza) ,el lucreaza (am simulat in proteus si RealPicSim)...dar eu cred ca nu l-am facut corect in sintaxa de aceea cer ajutorul celor avansati in domeniu...si poate ceva indicatii la functiile auxiliare(timp,afisaj,sms) ca aici e cel mai grav . Link spre comentariu
puiu Postat Martie 26, 2010 Partajează Postat Martie 26, 2010 1. Fara ca sa verific programul, deoarece cred ca l-ai facut cum l-ai dorit, as vrea sa iti dau un sfat, citeste ambele valori ale intrarilor o singura data, la inceput, RA0 si RA1 si depunele intr-o variabila interna pe care o testezi de-a lungul progrmului si apoi la o noua reluare a programului o reactualizezi. Astfel nu depinzi in derularea programului de variatia intrarilor care nu depind de tine. Link spre comentariu
srdjan Postat Martie 26, 2010 Partajează Postat Martie 26, 2010 iar daca va fi implementata practic povestea recomand sa folosesti iluminat cu led-uri infrarosii astfel intrusul nu va observa lumina cu ochiul liber si nu va sti ca e filmat crezand ca e protejat optic de bezna din jur. evident un intrus pregatit nu e asa naiv. Link spre comentariu
Vizitator nelukyns Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 Mersi de ideia cu variabila interna...dar la mine sunt 2 sensori diferiti...adica ei nu trebuie sa depinda unu de altu...poate ceva nu am inteles corect,dar daca le depun in variabila,si le verific in timpul programului...nu voi putea sa le directionez actiunile diferit..de ex daca bariera se intrerupe..iar capacitativul - nu,cum voi actiona doar mesajul sonor?Cit despre lumina infrarosie...mi-a venit aceasta idee mai inainte dar vreau sa ma rezum la ceva mai simplu .Poate peste ceva timp am sa ii imbunatatesc calitatile. Link spre comentariu
puiu Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 1. pe parcusul unei singure treceri a softului, deci daca ai o bucla, pentru o singura trecere prin bucla trebuie sa ai intrarile stabile. Inca o data subliniez ca intrarile nu sunt sincrone cu softul tau si asa rezolvi problema in general. Daca intrarile nu depind de soft, ele se pot schimba cand vor ele. Ti-ai pus problema ca in timp ce cosideri o intrare ca este in unu, ea se poate schimba in zero, desi tu esti pe ramura in care consideri ca intrarea este in unu? Link spre comentariu
Vizitator nelukyns Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 Da,m-am gindit la asta...dar am scris niste linii in plus care parca il sincronizeaza putin si anume asta am verificat cind am simulat in proteus si celalalt soft...pot sa conectez butonul de 3 ori la rind...si de trei ori la rind se aprinde ledu (pentru asta si am avut nevoie de acele 5-10 sec)...dar am in vedere ca softul totusi se tine de 0 si 1 de la intrare(poate cu mici retineri neinsemnate).Unicul mare dezavantaj de care sunt constient (la codul dat) este ca daca bariera permanent e intrerupta ,sensorul capacitativ e inactiv(mort) deoarece ciclul de la "ir" il tine afara.Dar pina cind asta nu ma deranjeaza...doar nu o sa il folsesc la banca... Link spre comentariu
puiu Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 1. Linile respective chiar nu sincronizeaza, adica daca la inceputul programului aveai ceva la intrare, tu mai testezi de-a lungul programului ce este la intrare. Poate am explicat mai greoi, dar s-ar putea ca tocmai acele lini de comanda sa te faca sa fi in alt caz. De exemplu la inceput verifici portul A,0 si ei o decizie in functie de aceea stare care trebuie sa fie aceeasi pe parcurgerea unui ciclu, sau a ramurei respective. Nu stiu cate secunde ai simulat softul tau, avand in vedere ca se reia tot timpul si nu este o pauza intre ele. 2. Cum ti cont de faptul ca de obicei sunt semnale care vin de la releu, si care de obicei au o perioada de tranzitie? Ce faci pe aceasta perioada?3. Eu ti-am spus parerea mea, la ceea ce ar trebui ca sa imbunatatesti softul. Nu inseamna ca nu s-ar putea sa mearga si asa. Dar .... Link spre comentariu
Vizitator nelukyns Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 Am sa mai incerc aceasta metoda,oricum apreciez mult faptul ca ma ajuti cu softul..dar pare complicat pentru nivelul meu de asm...cit despre rele..sunt poate metode de blocare a acelor semnale...incepind de la dioda in paralel...dar asta nu ma preocupa la moment.Mai am o intrebare...se poate doar de la un singur impuls(pin) de iesire de la pic...sa se afiseze la (4 afisaje de 7 seg) cuvintul "stop" (ma gindeam cumva sa multiplic acel impuls apoi prin multiplexor si alte circuite logice...etc),am ales aceasta metoda deoarece eu nu fac nimic cu textul dat (nu variez cifre,litere...nu misc etc) el doar se afiseaza la un semnal...stiu ca de obicei anodurile se unesc la un port...catodurile la alt port...dar eu cred ca e pentru functii mai serioase ... Link spre comentariu
puiu Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 1. Nu am inteles intrebarea. Link spre comentariu
Vizitator nelukyns Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 Am vrut sa zic ca de obicei aceste afisaje (7seg)folosesc min 12 pini de la pic pentru 4 afisaje ca in imagine (la care eu am spus ca e pentru functii mai multe)...dar la mine e doar afisare "STOP"...pentru aceasta cred ca nu e nevoie de toti acei pini...ci doar de un impuls de la un pin...multiplicat,multiplexat...etc , care va activa acele 4 afisaje sa arate STOP... Link spre comentariu
puiu Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 1. Daca in proiect afisajele sunt folosite numai pentru comanda STOP(pentru o afisa), se poate utiliza un singur pin al procesorului pentru a afisa acest lucru. De exemplu prin acel pin se comanda alimentarea acelui afisaj. Dar ma indoiesc ca cineva sa faca asa risipa de bani pentru ca acelasi lucru se putea face cu un LED in spatele unui ecran pe care scrie 'stop'. De regula pe acel afisaj se tipareste si altceva care se poate reprezenta cu ajutorul afisajelor cu 7 segmente, daca nu se alege cu 16 segmente sau un afisaj alfanumeric sau mai nou afisaje ca la telefoane care trebuie comandate la nivel de pixel. In concluzie fiecare afisare este pentru un anumit scop si afisarea poate fi statica sau multiplexata, dar asta este alta treaba. Link spre comentariu
francezu Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 Pentru ce vrei tu, mesaj static, nu ai nevoie nici de multiplexoare, nici de alte circuite logice. Vezi schema de mai jos ;katozii legati impreuna , si anozii corespunzatori segmentelor dorite legati la +5V. Cu un logic 1 pe pinul uC-ului se comanda intreg display-ul. Rezistenta R2 se alege in functie de curentul dorit prin fiecare segment. Link spre comentariu
Vizitator nelukyns Postat Martie 27, 2010 Partajează Postat Martie 27, 2010 aha... vai ce simplu...da eu ma complicam aiurea, nici nu m-am gindit la asta...mersi de ajutor,sper ca nu voi mai avea intreabari . Link spre comentariu
Vizitator nelukyns Postat Martie 28, 2010 Partajează Postat Martie 28, 2010 Iar eu...ma gindeam ca nu voi mai avea intrebari,dar totusi cu asm-ul au mai aparut niste neintelegeri. Se poate la general intr-un program sa se indeplineasca functii paralele(ex.undeva un timer isi trece timpul,dar paralel sa se execute alte linii de cod fara sa influenteze timer-ul)? Stiu ca suna cam fantastic...dar oricum poate ceva asemanator este. Asa cu executarea cursiva a softului multe nu pot face (ex.dupa intreruperea barierei,5-10 sec sa nu faca nimic,apoi iar sa se activeze, dar in acele 10 sec sa-si poata celalalt sensor indeplini comenzile.)Si ceva asemanator..cum arata o rutina care sa primeasca impulsul de la IR doar intr-un singur sens?Imi cer scuze ca va provoc "dureri de cap" cu intrebarile mele...dar asa e cind intri mai adinc in lumea asta - automatica/electronica ,multe neintelesuri si chestii interesante. Link spre comentariu
puiu Postat Martie 28, 2010 Partajează Postat Martie 28, 2010 1. Da, se poate. Ori lucri cu intreruperile sau faci prin soft acest lucru 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