florinangeru Postat Octombrie 9, 2012 Partajează Postat Octombrie 9, 2012 Salutare tuturor,Am o problema cu senzorul de perimetru de la alarma auto in sensul ca nu pot dezactiva zona perimetrala exterioara pentru ca telecomanda din cheia masinii nu stie sa trimita un al doilea impuls pe un canal auxiliar (explicatie data de cei de la VIPER ROMANIA) si cand parchez masina intr-o zona mai circulata imi sar vecini in cap ca este stresanta alarma masinii :(. Solutia gasita de mine este una destul de simpla, la nevoie sa intrerup cablurile care trimit semnal de la senzorul de perimetru exterior catre alarma astfel ramanand activ doar perimetrul interior. Pentru asta am schitat un modul bazat pe arduino uno la care atasez un releu ce va comanda senzorul de perimetru al alarmei, un led de stare ce imi va indica cand releul este ON/OFF si un microtouch care imi va actiona releul in starea ON/OFF. Astfel releul in pozitia OFF va avea ledul de stare OFF si va mentine senzorul de perimetru exterior activ. In pozitia ON ledul de stare va fi ON si releul va dezactiva senzorul de perimetru exterior. Ledul aprins imi va servi ca avertizare ATENTIE PERIMETRU EXTERIOR DEZACTIVAT.Am atasat schita si codul la care intampin o problema si nu reusesc sa o rezolv de doua zile. Teoretic ar trebui sa functioneze brici dar dupa ce il incarc ledul de stare sta aprins in continuu iar releul trece in ON aleatoriu cand vrea el :(. Rog useri priceputi in microcontrolere si arduino sa imi dea o mana de ajutor . int switchPin = 8; int relayPin = 13; boolean lastButton = LOW; boolean currentButton = LOW; boolean relayOn = false; void setup() { pinMode(switchPin, INPUT); pinMode(relayPin, OUTPUT); } boolean debounce(boolean last) { boolean current = digitalRead(switchPin); if (last != current) { delay(5); current = digitalRead(switchPin); } return current; } void loop() { currentButton = debounce(lastButton); if(lastButton == LOW && currentButton == HIGH); { relayOn = !relayOn; } lastButton = currentButton; digitalWrite(relayPin, relayOn); } Link spre comentariu
Ticu Postat Octombrie 10, 2012 Partajează Postat Octombrie 10, 2012 Oarecum offtopic: daca tot montezi un buton, n-ar fi mai simplu ca el sa fie un comutator basculant care sa faca direct ce fac contactele releului? Elimini montajul, releul si consumurile lor. Link spre comentariu
florinangeru Postat Octombrie 10, 2012 Autor Partajează Postat Octombrie 10, 2012 Pai o sa apelez la un intrerupator basculant pentru moment dar avand in vedere ca va fi actionat destul de rar la nevoie e posibil sa oxideze plus ca nu e prea hi-tech in comparatie cu restul din masina si nici avertizare luminoasa nu am. Am un buton in bord dedicat si neutilizat, l-am achizitionat si montat ceva timp in urma pentru alt proiect dar nu imi mai e util asa ca il folosesc pentru alarma . Link spre comentariu
Ticu Postat Octombrie 10, 2012 Partajează Postat Octombrie 10, 2012 Mai elegant ar fi un buton prin apasare, cu auto-retinere si cu led inclus, ca cel din poza. Mi-e rusine pentru pret, dar e anti-vandal! Eventual si un releu de 12V daca mai sunt necesare contacte. Sigur, decizia e a ta. Link spre comentariu
florinangeru Postat Octombrie 14, 2012 Autor Partajează Postat Octombrie 14, 2012 intradevar pretul este exorbitant dar ideea in sine este buna, momentan am facut un adaptor cu un basculant si o sa il montez zilele astea ca solutie provizorie pana gasec ceva mia elegant . Cel mai elegant ar fi fost o cheie briceag cu trei butoane dar nu e tocmai ieftina, am fost la obor la specialisti si mi-au cerut 500lei..... o sa trag o fuga prin talcioc poate gasesc ceva chilipiruri ca atunci cand mi se ivise ocazia sa iau una cu 40lei nu am vrut acuma....... Link spre comentariu
florinangeru Postat Octombrie 17, 2012 Autor Partajează Postat Octombrie 17, 2012 Nimeni nu se pricepe la Arduino? :cry: Link spre comentariu
script22 Postat Octombrie 23, 2012 Partajează Postat Octombrie 23, 2012 nu prea inteleg eu ce ai acut tu acolo da nu e mai simlpu asa (acm urmeaza sa iti dai tu seama cum faci pe arduino )nu stiu in ardunio da in bascom e cam asaportb.1 = input 'setam ca intrare butonportb.1 = 1 'enable pull up rezistorportb.2 = output ' aici vine releu si ledu in paralelportb.2 = 0 la pornire ledul e stinsdoif portb.1 = 0 thenwaitms 3 toggle portb.2 end ifloopcodu asta e pt bascom acm vezi si tu dac ail poti compila in bascom si scrie in arduino stiu ca merge da nu garantez nam incercat. Link spre comentariu
florinangeru Postat Octombrie 23, 2012 Autor Partajează Postat Octombrie 23, 2012 Multumesc mult de ajutor incerc sa il rescriu in arduino si vad ce iese. Revin cu rezultatele Link spre comentariu
Liviu M Postat Octombrie 23, 2012 Partajează Postat Octombrie 23, 2012 if portb.1 = 0 thenwaitms 3 La ce-s bune alea 3 ms? Link spre comentariu
florinangeru Postat Octombrie 23, 2012 Autor Partajează Postat Octombrie 23, 2012 pai dupa actionarea butonului asteapta 3ms si apoi ia urmatoarea stare altfel la o singura apasare a butonului releul se va cupla si decupla ramanand in-una din stari dupa cum ii tuna. Link spre comentariu
Ticu Postat Octombrie 24, 2012 Partajează Postat Octombrie 24, 2012 Eu as pune o asteptare de vreo 1000 ms , fiindca in 3 ms nu apuci sa iei degetul de pe buton. Link spre comentariu
florinangeru Postat Octombrie 24, 2012 Autor Partajează Postat Octombrie 24, 2012 Inca nu am apucat sa testez nimic poate reusesc deseara iar in ceea ce priveste milisecundele o sa tatonez valoarea lor . Va tin la curent Link spre comentariu
Liviu M Postat Octombrie 24, 2012 Partajează Postat Octombrie 24, 2012 Dupa parerea mea, intarzierea aia nu face nimic. Nici bine nici rau.Daca se voia soft debouncing nu e corect facut. Dupa cele 3 ms (cam putine, totusi), se mai testeaza o data port.1 si daca e tot 0 atunci se actioneaza releul.Dupa actionarea releului sunt iarasi necesare niste ms, pentru ca releul nu comuta instantaneu, are si el nevoie de cateva ms acolo. Link spre comentariu
Ticu Postat Octombrie 24, 2012 Partajează Postat Octombrie 24, 2012 Fara intarziere:Testeaza portul 1, gaseste 0 (buton apasat), comuta iesirea, reia testarea, gaseste tot 0 (buton tot apasat), comuta iesirea din nou etc.Adica iesirea e un astabil, pe care releul il urmareste sau nu, in functie de frecventa.Cu intarziere si butonul permanent apasat, tot astabil este, dar cu frecventa mai mica. Singura speranta e ca intarzierea sa fie atat de mare incat operatorul sa fi apucat intre timp sa ridice degetul de pe buton... De aceea propuneam 1 secunda, ca sa nu fie apasarea contra-cronometru. Link spre comentariu
Liviu M Postat Octombrie 25, 2012 Partajează Postat Octombrie 25, 2012 Ups, mi-a scapat toggle (bascom-ul nu e favoritul meu).Da' 3 ms pauza pentru un releu cred ca-l face sonerie. 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