vineri, 11 decembrie 2020

Mesaje complexe intre placi Arduino pe comunicatie seriala (4)

   Avand o solicitare pentru rezolvarea transmiterii a 10 valori numerice intre 2 placi Arduino, tot pe serial, am zis sa incerc si asta. Cele 10 valori sunt 7 temperaturi pozitive ca numere intregi (pot trimite valori 0..255) si 3 pozitii de comutatoare (0 - deschis, 1 - inchis). Schema de test este aceeasi, ca cea din articolul precedent:
   Programul placii Arduino ce trimite datele este tx_10variables.ino, iar programul placii receptoare este rx_10variables.ino. In ecranele de monitorizare seriala se pot obersva valorile:
   Am realizat filmuletul Mesaje complexe intre placi Arduino pe comunicatie seriala (4):
    Ulterior, s-a cerut si primirea unui raspuns din partea placii receptoare, asa ca am modificat programele, astfel ca transmitatorul foloseste programul tx_10variables_rx_1variable.ino, iar receptorul programul rx_10variables_tx_1variable.ino.

sâmbătă, 5 decembrie 2020

Scari luminate inteligent (2)

actualizare in 9.8.2021

   Am completat articolul Scari luminate inteligent publicat in noiembrie 2018 pentru versiunea cu Arduino.

   Schema pentru test pentru maxim 17 leduri cu 2 butoane fara retinere, functioneaza cu programul 17leds_running_2button.ino

respectiv schema ce foloseste senzori, de exemplu PIR, functioneaza cu programul 17leds_running_2sensors.ino


   Se observa ca:
- butoanele fara retinere sau senzorii dintr-un capat sunt la A4 si, respectiv, A5;
- iesirile sunt de la D1 la A3 (D1-D2-D3-D4-D5-D6-D7-D8-D9-D10-D11-D12-D13-A0-A1-A2-A3).

    Programele sunt flexibile si se pot comanda mai putin de 17 leduri, doar se modifica linia 15
dar trebuie tinut cont ca numararea incepe de la D1. 
   De exemple, daca comandati doar 5 barete, ca aveti o scara mica, comenzile baretelor (prin tranzistoare sau tranzistoare cu relee) se vor da pe iesirile D1, D2, D3, D4 si D5.

   In repaus, ledurile se aprind slab, dar daca se doreste indepartarea aceset facilitati se comenteaza liniile:
astfel

 luni. 9.8.2021
   O versiune cu fotorezistenta pentru a inhiba aprinderea slaba, in repaus, a luminilor, inclusiv jocul de lumini, pe timp de zi se poate realiza prin folosirea unei fotoresistente si a unei rezistente in schema de divizor rezistiv (vedeti articolul Using a Photocell / Analog Voltage Reading Method). Se elimina a 17-a lumina, numarul maxim fiind 16:
iar programul ce trebuie folosit este 16leds_running_2sensors_ldr.ino iar numarul maxim de scari se modifica din linia

luni, 9 noiembrie 2020

Sistem de automatizare pentru umplere bazin cu apa

     Desi am mai publicat eu ceva acum mult timp, o solutie cu integrate CMOS, in articolele Automat pompa si Automat pompa, inclusiv simulare functionare

a venit randul si unei automatizari cu Arduino.
    Schema de test este:

  Dupa cum se vede in schema, in rezervor vor fi 4 tije (de inox), una fiind masa (GND), una pentru rezervor pe minim, una pentru mijloc si una pentru maxim.
  Daca bazinul va fi gol, nivelul apei sub minim, se va aprinde un led rosu si va porni pompa, 
daca nivelul creste peste jumatate, se aprinde ledul galben si pompa continua sa functioneze, 
pana se depaseste nivelul maxim indicat de un led verde.
Daca nivelul apei scade, dar nivelul apei este mai mare decat mijlocul, se aprinde ledul galben, iar pompa este oprita.
Daca nivelul apei scade sub jumatate reporneste pompa,
   Modul de functionare se vede si in filmuletul facut de George Dacin:
   Pe parcursul realizarii montajului am primit si niste poze:

   Programul pentru aceasta automatizare este watertank1.ino.

11.11.2020
   Am primit un nou filmulet de la George

miercuri, 14 octombrie 2020

Comanda motor de curent continuu in ambele sensuri, incluzand limitari de deplasare (ver.2)

    In completarea articolului anterior unde foloseam limitatori de cursa cu contact inchis si contact deschis, de data asta se folosesc in schema limitatori cu contact normal inchis (NI/NC). Schema a fost prezentata de Bogdan Argatu, ca fiind folosita usual in actuatoare.

   Schema desenata de Bogdan, cu mici adaptari, facute de mine, este:

   

Schema, redesenata de mine, este:

    Ca si in articolul precedent, voi prezenta cazurile de functionare, incpand cu o pozitie intemediara, cand nu sunt actionate limitatoarele si se apasa butonul fara retinere SW1 ce poate si o comanda temporizata (daca timpul necesar parcurgerii cursei intregi, in cele mai grele conditii, este de 20 secunde, sa zicem, comanda noastra va fi de minim 22-25 secunde).
    Cand se ajunge la capatul de cursa corespunzator, in cazul de fata, LIM1, motorul se opreste:

    Se poate da comanda doar in sens invers, deoarece dioda D4 permite circularea curentului
Dupa ce motorul incepe sa se miste, limitatorul de cap de cursa SW1 nu mai este actionat si se inchide contactul, strapand dioda D4, astfel ca motorul functioneaza in continuare:
pana este actional limitatorul LIM2 de cap de cursa:
   Motorul poate fi comandat doar in primul sens de deplasare, cand se apasa butonul SW1, deoarece curentul poate circula prin dioda D3
apoi, imediat cum mlotorul incepe sa se miste, se revine la functionarea normala, cand limitatoare nu sunt actionare si se poate comanda motorul, intr-un sens 
sau in altul
   Am facut si capturi video pentru a vedea simularea functionarii:
- cu prezentare in romana
- cu prezentare in engleza




luni, 12 octombrie 2020

Comanda motor de curent continuu in ambele sensuri, incluzand limitari de deplasare

     Deoarece un motor de curent continuu isi schimba sensul de rotatie in functie de cum este alimentat, ele sunt folosite, impreuna cu un sistem de reductoare mecanice, la actionarea geamurilor electrice ale autoturismelor, dar se pot folosi pentru a trage o jaluzeaza, sa deschida sau sa inchida o fereastra batanta sau chiar pentru o poarta culisanta. 

Pentru cam totate aplicatiile sunt necesari limitatori de cursa.






    O schema simpla, ce implica limitatori de cursa pe circuitul de forta este:

   In schema prezentata, SW1 este un buton fara retinere ce alimenteaza releul REL1, iar SW2 pentru REL2. Daca consideram ca SW1 este folosit pentru rotirea in sensul acelor de ceasornic (si consideram deschidere), atunci SW2 este pentru rotire in sens trigonometric (inchidere). LIM1 si LIM sunt limitatori de cursa, ce au fiecare cate un contact normal inchis (NI/NC) si un contact normal deschis (ND/NO).
   In repaus, cu usa/poarta/fereastra intredeschisa schema si pozitia limitatorilor este cea prezentata mai sus.
   Daca se apasa butonul fara retinere SW1 sa se deschida complet usa, motorul este alimentat:
 cand se ajunge la capat, limitatorul LIM1 este actionat si motorul nu mai este alimentat, deoarece are ambele borne la masa:
    In locul butoanele SW1 si SW2, cu releele respective se folosesc sisteme de actionare gen telecomanda auto sau chiar alte sisteme de comanda ce mentin contactul o durata mai mare decat cea necesara unei curse complete, in cel mai defavorabil caz. Daca usa se inchide in 11 secunde si se dechide in 12 secunde, vom alege, acoperitor, sa fie actionare releele 15 secunde.
   Usa este deschisa la maxim, si deci limitatorul LIM1 este actionat, asa ca e posibila doar comanda de inchidere, care se da prin actionarea butonului SW2
Functionarea continua chiar si dupa ce limitatorul LIM1 nu mai este actionat, deoarece se asigura contact la masa
Cand se ajunge la capatul de cursa pentru inchidere este actional limitatorul LIM2 si se intrerupe alimentarea motorului:
   Acum, usa se poate doar deschide, prin apasarea butonului SW1, deoarece motorul este alimentat de contactul limitatorului LIM2 catre masa:
imediat ce limitatorul LIM2 revine in repas, circuitul permite alimentarea in continuare a motorului in sensul deschiderii:
sau reinchiderii:
sau opri intr-o pozitie intredeschisa daca nu se comanda nici un releu:
    Am facut si o captura video pentru simularea in programul Circuit Wizard (in poze am scris gresit numele programului 😎):
si inca una cu descriere in engleza: