marți, 23 aprilie 2019

Indicare schimbare stare buton

    Am folosit montajul din articolul precedent, realizat cu o placa Arduino Uno (o clona, de fapt), cu un shield cu un mic breadboard, un led (galben), un buton fara retinere si niste fire.
    Schema este aceeasi cu cea din articolul precedent:
    Programul testat este state-button_0.ino si functionarea este aratata in filmulele urmatoare:
indicare schimbare stare buton
indicator for state change of the button

sâmbătă, 20 aprilie 2019

Intarziere comanda iesire digitala folosind functia millis()

my english article

   Desi am mai prezentat folosirea functiei millis(), de exemplu in articolul Masurare timpi apasare butoane folosind functia millis(), am zis sa scriu acest articolas pentru o aplicatie mai "papabila", accea de a a aprinde un led cand se apasa un buton si acesta sa se stinga doar dupa un anumit timp, prin compararea timpului de cand s-a apasat butonul cu timpul actual. Bineinteles ca nu e un lucru nou, fiind prezenta in mai multe articole e net, unul fiind Using millis() for timing in care s eface aprinderea unui led cu intermitenta (acesta se gaseste si in exemplele din programul Arduino IDE)
    Eu am pus un buton la pinul D3 catre masa (GND) si un led la D4 conectat la masa (printr-o rezistenta de 100-470 ohmi). Am activat rezistenta de pull-up interna (de 10k) pentru a avea intrarea la plus cand butonul nu e apasat.
  Starile sunt, conform schemei logice
urmatoarele:
- sistem in asteptare, led stins
- buton apasat, led stins
- eliberare buton, led-ul se aprinde imediat
- led aprins timpul cat a fost definit
- led stins, in asteptare.
    Programul rescris de mine este delay_button.ino, care face ce am descris mai sus, iar in ecranul de monirtorizare seriala (Serial Monitor) vom vedea starile:
   Am inlocuit butonul cu un sensor de infrarosu, 
care in repaus are iesirea in LOW si cand este activat in HIGH, programul modificat devenind delay_sensor.ino.
in ecranul de monirtorizare seriala (Serial Monitor) vom vedea starile:
   Starile sunt similare:
- repaus, led stins
- detectie miscare, ledulul se aprinde
- led aprins un timp definit 
- iar repaus, ledul fiind stins.
   Pentru senzorii cu logica negativa la iesire, adica in repaus este HIGH, respectiv LOW cand e activ, am modificat programul foarte putin
acesta devenind delay_sensor1.ino.
    Am facut 2 filmulte cu senzorul cu infrarosu;
Intarziere comanda iesire digitala folosind functia millis()
delay off using millis()

duminică, 14 aprilie 2019

Stocare programe (sketch-uri Arduino) pe un canal de Github

    Deoacere lucrez de pe mai multe calculatoare si din diverse locuri, in plus vreau sa ii arat cuiva repede sau sa gaseasca repede un program (sketch Arduino), am apelat la stocarea programelor pe platforma Github, unde am propriul canal: https://github.com/tehniq3
   Pentru a avea o ordine si a fi usor de gasit un program, trebuie grupate pe directoare, aici numindu-se Repertories; deja am ajuns la 154, inainte de realizarea unuia pentru acest articol.
    Am zis sa creez un director numit test si pasii sunt urmatorii:
- se apasa pe + si se alege, dupa cum se vede si din poza de mai sus New repertory.
- apare o zona unde se da numele, in cazul de fata test

- se completeaza la descriere un comentariu, eu pun de obicei adresa articolului unde il folosesc sau de unde am luat primele informatii
- se apasa butonul Create repertory
- pentru ca un utilizator sa vad usor informatiile, vom creaa fiseirul README, prin apasarea link-ului cu acel nume
- va apare o fereastra in care se vad informatiile scrise la descriere
- aceste informatii sunt prea putine, asa ca vom pune si o poza din articolul din care ne inspiram sau din alta parte, oricum o poza semnificativa, asa ca dam click dreapta si aflam adresa pozei

- in fisierul README scriem ![nume](adresa)
- apoi apasam butonul Commit new file
- acum vom avea un fisier README vizibil cand se deschide si directorul test

- acum vom crea un fisier cu nume intuitiv si utilizabil imediat, asa ca va fi un nume urmat de terminatia ino pentru un sketch Arduino, de exemplu alarma_moto_v2.ino 
- urmeaza sa deschidem programul Arduino IDE si sa incarcam programul pe care dorim sa il facem public
- selectam tot txtul din el (CTRL+A) si apoi il copiem (CTRL+C)
-ne mutam in fisierul creat si dam descarcare (CTRL+V), adica aplicam clasica tehnica controlCcontrolV 😁
- se apasa butonul Commit new file si vom avea acum 2 fisiere in subdirectorul nostru
- apasam pe fisierul alarma_moto_v2.ino s a vedem continutul
- acum am 155 repertories
   Cum am creat fisierul alarma_moto_v2.ino  pot adauga si altele...
   Puteti accesa aces director urmand link-ul https://github.com/tehniq3/test !

sâmbătă, 13 aprilie 2019

Alt sistem de alarma

    Fata de sistemele de alarma prezentate in articolele Sistem de alarma
si Sistem de alarma (2)

aceasta a fost gandita de la zero pentru a permite adaptarea usoara la un sistem de comanda radio, ca cel prezentat in articolul Sistem simplu de comanda la distanta rotire 2 motoare in ambele sensuri
    Eu am realizat un modul simplu ce include 2 butoane fara retinere (folosesc rezistentele de pull-up active, si am contact pe LOW), dar pentru sistemul de comanda radio intrarile sunt comandate cand e nivel HIGH, dar e simpla modificarea. Partea cu comanda radio a testat-o Razvan Lazar, un prieten al lui Mircea Craciun, un vechi colaborator in proiecte cu Arduino.
   Revenind la sistemul de alarma propriu-zis, testat de mine, el are 2 butoane, unul de armare si unul de dezarmare, un senzor de detectie miscare cu intrarosii, 2 leduri, unul care insica starea de armare/dezarmare si unul pentru a indica activarea unuei goarne/sirene/claxon.
   Programul scris de mine este alarmsystem_0.ino si permite folosirea cu butoane fara retinere contact spre masa (comanda LOW)
sau cu sistemul de comanda radio, cu comanda in HIGH
    la pornire, sistemul e dezarmat:
daca se apasa pe butonul de armare, se aprinde scurt ledul galben (simuleaza goarna) si dupa circa 2 secunde se aprinde si leful galben ce indica armarea efectiva
daca se detecteaza miscare se aprinde cu intermitenta ledul galben timp de 10 secunde (se schimba usor valoarea timpului de la 10 secunde in maxim 30 cat e legal)
Daca nu mai este miscare, alarma asteapta, daca in timp ce goarna suna si se apasa butonul de dezarmare, sistemul de alarma se dezactiveaza....
    Am facut 2 filmulete;
Sistem de alarma
alarm sistem
   Razvan a facut si el 2 filmulete:
sistem alarma (2)

alarm system (2)
Nota: Daca senzorul e activat in HIGH ramane ca in program
iar daca e logica negativa, adica e activat in LOW se modifica in
Nota2: Am desenat si o schema de conectare pentru teste:
15.04.2019
    Varianta initiala are stare de asteptare la pornire si/sau repornire (variabila armare = 0)
,
dar se poate schimba sa fii armata la pornire/repornire (variabila armare = 1)
20.04.2019
   Am primit de la Razvan un scurt filmulet cu un alt tip de senzor RCWL-0516, ca cel prezentat de mine in articolul Senzor de miscare tip radar (Doppler)
   Filmuletul l-am numit alarm system with Doppler sensor