miercuri, 10 februarie 2021

Arduino pentru incepatori

    Deoarece sunt multe proiecte, mai simple sau mai complexe, cu placile de dezvoltare Arduino, un neinitiat poate sa se sperie... am cautat un tutorial pentru incepatori, dar nu am gasit, asa ca voi face eu unul.

     Sa zicem ca nu ati luat o placa Arduino Uno, ci una Arduino Nano... modul de functionare este similar.

     Daca alimentati dintr-o mufa USB de la PC sau laptop, pe placa este un led aprins, care indica alimentarea placii, iar unul va clipi  odate pe secunda. Dupa cum se constata, ledul ce se aprinde cu intermitenta este cel conectat la pinul digital numit D13, printr-o rezistenta la masa.

   Dupa ce vom capata un pic de experienta, vom realiza montaje pe breadboard

   Urmatorul pas important este descarcarea programului ce ne ajuta la scrierea si incarcarea programelor in placa de dezvoltare Arduino.
    Eu folosesc programul Arduino IDE 1.8.12, 
care se poate descarca de  AICI !
    Bun, dupa instalarea programului, avand placa conectata, trebuie sa fim siguri ca s-a instalat driver-ul interfetei USB, care, in cazul acestei placi este un CH340:
   Daca am rezolvat acest pas, vom alege placa Arduin Nano
cu portul activ
alegem versiunea cu "old bootloader"
observand in coltul din dreapta jos informatiile
    Daca ati reusit sa urmati acesti pasi cu rezultate similare (clar va fi alt port), putem trece la modificarea programului BLINK, care se gaseste la exemplele venite cu programul Arduino IDE:
    In prima faza, nu vor urmari structura programelor (sketch-urilor) Arduino, ci vom modifica o valoare dintr-o linie, si anume delay(1000); care inseamna o pauza de 1 secunda (1000ms)
acasta linie este pusa dupa aprinderea ledului, care este, in programul original delay(1000), iar noi o vom modifica in delay(100), adica o intrarziere de 0,1secunde
   Deoarece am scos doar un zero, nu ar trebui sa fie probleme, dar vom verifica oricum, prin compilarea programului
care ar trebui sa se termine cu mesajul
   Urmeaza incarcarea programului in placa Arduino Nano
care se incheie cu mesajul
   Dupa ce ati trecut prin acesti pasi cu succes, puteti incerca si alte variante de programe, cu efecte de stingere/aprindere ale ledului de la D13, acestea se gasesc pe canalul meu de Github, la adresa https://github.com/tehniq3/blink 

    Pentru cei care sunt obisnuiti sa reproduca experimentele din filmulete, am facut si eu unul:

joi, 14 ianuarie 2021

Alta versiune de ceas animat cu date meteo (4)

   Deoarece versiunea anterioara avea un mic "defect", schimband intensitatea luminoasa a afisajului matriceal foarte repede daca erau variatii bruste ale luminii din mediu apropiat, am corectat asta in fisierul LEDMatrixV2ro4.ino din subdirectorul LEDMatrixV2ro4.

   Pentru a nu ma mai deplasa la montaj, am implementat incarcarea de la distanta, care am prezentat-o in articolul Programare de la distanta (OTA) placa de dezvoltare cu ESP8266 asa ca acum trebuie folosite fisierele din subdirectorul LEDMatrixV2ro5

   De asemenea, am adaugat si domeniul temperaturilor, de exemplu, daca indicatia era -1.90C, acum este  -1.90C ( -2.8 /  0.30C).
   Schema este aceeasi

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