ArduShop.ro

ArduShop.ro
cod Z4A413ZN reducere 5%, pentru vizitatorii paginilor mele !

marți, 26 septembrie 2017

Voltmetru pentru 1,1V (poate inlocui modulul cu C520D)

   Tot dand de scheme cu voltmetrul realizat cu integratul C520, care avea cap de scala 1V si era bun de folosit ca indicator de panou, am zis sa fac si eu unul cu Arduino, in cazul de fata o placa Arduino Nano cu ATmega168 si un afisaj cu catod comun din 4 cifre.
   Schema este extrem de simpla, constand doar in placa Arduino Nano si afisaj:
fata de schema lui C520 care mai necesita si 3 tranzistori si un decodificator BCD la 7 segmente, dupa cum se vede din articolul C520 d epe site-ul http://www.next.gr/:
   Si pe blog, am postat mai de mult articolul cu mutimetrul preluat din revista Tehnium 
   Voltmetru meu e simplu, indicand de la 0.000 la 1.100V cap de scala, daca se incarca sketch-ul volmeter_v1m0.ino
   Am facut 2 filmulete, in care se vede cum afiseaza:
voltmetru pentru 1,1V (poate inlocui modulul cu C520)
1.1V voltmeter can replace C520 chip
   Voltmetru, mai evoluat, este prezentat in articolul Voltmetru digital cu auto-scalare cu Atmega8
care are originile in cel prezentat in articolul A 10 Bit LED Digital Panel Meter With Auto Ranging Based On The ATMEGA8

   In limita posibilitatilor (lipsa timp), o sa incerc sa adaptez si eu pentru Arduino...

Termometru cu dioda 1N4148 ca senzor pe afisaj led multiplexat

english version of article

   Dupa ce am tot folosit un afisaj led cu 4 cifre din 7 segmente fiecare pentru a realiza ceasuri cu alarma si indicare de temperatura, etc, acum m-am decis sa simplific la maxim treaba si sa folosesc o dioda 1N4148 ca senzor de temperatura, placa Arduino Nano (cu microcontorler ATmega168, dar merge foarte bine si varianta cu ATmega328) si afisajul LFD080AAG103 cu catod comun (se poate folosi foarte bine is unul cu anod comun, schimbandu-se doar cateva linii in program.
   Masurarea temeperaturii se bazeaza pe faptul ca pe jonctiunea diodei caderea de tensiune scade cu 2,2mV cu cresterea unui grad (Celsius, Farenheit), dupa cum se observa din figura 1 din datasheet-ul (fisa de catalog) a diodei 1N4148:
   Am mai folosit dioda 1N4148 ca senzor in articoleul Ceas cu reglaj manual al orei si datei, alarma si termometru pe afisaj multiplexat cu 4 cifre led, care se bazeaza pe articolul Thermometer diode based de pe https://www.hackster.io/.
   Pentru ce-i ce vor sa aprofundeze acest mod de masurare, le recomand citirea articolelor DIODE-BASED TEMPERATURE MEASUREMENT de la Burr-Brown, resepctiv Accurate Temperature Sensing with an External P-N Junction de la Linear Technology.

   Schema folosita de mine este:
   Initial, am curatat programul ceasului cu termonetru, adica cu prezentare temperatura cu 2 cifre (numere intregi), devenind diode_thermometer_display_1.ino
   Dupa asta, am decis sa modific sketch-ul pentru a afisa si un numar dupa virgula, cu o zecimala, acesta devenind diode_thermometer_display_2.ino
   In acest sketch masurarea se face mai rar, pentru a nu aparea variatii bruste de temperatura, dupa cum se vede in filmuletele:
termometru cu dioda 1N4148 ca senzor pe afisaj led multiplexat
thermometer with 1N4148 diode as sensor on multiplexed led display

joi, 21 septembrie 2017

Alimentare leduri 1W cu LM317 ca generator de curent constant

    Primind de la Alex cateva leduri de 1W cu radiatoare aferente, am zis sa fac si ceva teste cu ele.
   In prima faza, am apelat la un fost coleg, Robert, care a lipit fiecare led pe cate un radiator.
   Cel mai uzual mod de alimentare este acela cu curent constant, tinand cont ca pentru acestea, curentul maxim este de 240-350mA.
   Am preferat sa folosesc un LM317 ca sursa de curent constant, exact ca in fisa de catalog (datasheet), curentul fiind tensiunea de referinta de 1,25V impartita la valoarea rezistentei dintre pinii ADJ si OUTPUT:
   Pe net exista articolul LM317 Current Calculator, care are un calculator on-line:
 si pentru 350mA rezulta o rezistenta de 3,6 ohmi la minim 0,44W.
  Mai usor gasim valoarea de 3,9 ohmi, deci am avea un curent de 320mA
   Am avut la indemana rezistente de 12 ohmi la 0,5W ficare si am pus 3 in paralel obtinand o rezistenta echivalenta de 4 ohmi la 1,5W si un curent de 310mA
   Am facut si 2 filmulete cu testele si dupa cum se observa, am pus ledurile cu micile lor radiatoare pe alta radiatoare pentru ca disipa multa caldura si pentru a le putea folosi cateva ore aprinse incontinuu, aceste radiatoare sunt necesare:
   In articolul LED Driver Using the LM317 se prezinta schema de conectare a unui led de 1W la 12V, mai usor de reprodus de cineva care nu e foarte familiarizat cu schemele electrice clasice:
   In articolul Voltage & Current Regulators And How To Use Them scris si publicat de Rod Elliott, apare o schema de generator de curent constant, care se poate regla in domeniul 256-340mA:
   PS1: Nu uitati sa puneti si radiator la LM317...
   PS2: La acest tip sursa de curent constant de pot lega in serie mai multe leduri, dar trebuie sa se tina cont ca tensiunea de alimentare sa fie mai mare cu cel putin 2-3V fata de caderea de tensiune pe ledurile inseriate.. deci putem folosi schema pentru 1 sau 5 leduri inseriate daca alimentam de la 23-24Vcc

luni, 11 septembrie 2017

Ceas cu reglaj manual al orei si datei, alarma si termometru pe afisaj multiplexat cu 4 cifre led

   Fata de ceasurile anterioare, am folosit o dioda 1N4148 drept senzor de temperatura, cum a gasit Vlad Gheorghe in articolul Thermometer diode based.
   Intai am testat schema si sketch-ul pe o placa Arduino Uno, in loc de Arduino Mega ca in articol:
   Am facut modificari in sketch pentru a creste precizia, folosind referinta interna de 1,1V in loc de 5V, avand ca inspiratie articolul Arduino Tutorials – Chapter 22 – the AREF pin. Sketch-ul (programul) se gaseste pe canalul de Github, fiind diode_sensor_v1.ino. Incarcandu-l, pe ecranul de monitorizare seriala vom vedea:
termometru cu dioda 1N4148 ca senzor
1N4148 diode as temperature sensor
   Am masurat tensiunea de referinta, care are valoarea de 1,076-1,077V.
si cea de pe dioda
   Revenind la ceasurile din articolele anterioare unde am folosit ca senzor de temperatura pe DHT11, am facut modificarea pentru a folosi dioda 1N4148:
   Sketch-ul, care foloseste dioda 1N4148 ca senzor de temperatura, dar pastreaza facilitatile ceasurilor anterioare: alarma, reglaj manual ora si data, afisare ora alarma, etc, reglaj automat intensitate afisaj functie de lumina din mediu ambiant, este multiplexedclock4_7.ino.
   Am facut 2 filmulete in care prezint partea de masurare temperatura a ceasului:
ceas cu reglaj manual, data, alarma si termometru
RTC clock with manual adjust, date, alarm & temperature using Arduino
PS: La recomandarea lui Vlad, am modificat ca la intuneric sa avem afisat doar ceas, cu aprinderea intermitenta a secundelor si, eventual, indicare alarma activa. Sketch-ul modificat este
 multiplexedclock4_8.ino. De asemenea, daca se apasa butonul "+"apare cu intermitenta ora de alarma, dupa cum se vede in filmuletul ceas cu reglaj manual, data, alarma si termometru (2)
12.09.2017
   Am realizat un al doilea film, in engleza, de data asta, cu facilitatea de a afisa in timpul noptii doar a orei, vedeti RTC clock with manual adjust, date, alarm & temperature using Arduino (2).
18.09.2017
   Am modificat sketch-ul ca data si anul sa apara mai rar... incarcati sketch-ul multiplexedclock4_8rev1.ino si veti vedea cum se prezinta datele, ca in filmuletul ceas cu reglaj manual, data, alarma si termometru (4)

vineri, 25 august 2017

Ceas cu reglaj manual al orei si datei, alarma si termometru cu higrometru si afisaj multiplexat cu 4 cifre led (3)

   Ceasul prezentat in articolul precedent a fost imbunatatit, la recomandarea lui Mihai Brandusoiu, care l-a realizat si el. Nu am mai modificat nimic in schema, ci ca mod de functionare.
   Mihai, a realizat ceasul in forma definitiva, sa zic asa, nu doar pe breadboard ca mine:
   In versiunea de acum, daca se intra in meniul de reglare, dar nu se regleaza ora sau data, ceasul nu memoreaza nimic is nu se pierd secundele (deoarece ele erau resetate la zero) si i s-a implementat partea de a vedea la cat e programata alarma, pana acum trebuia intrat in meniul de reglaj.
  Schema este aceeasi:
   Ceasul prezinta, ca si pana acum ora cu secunde animate (in dreapta se aprinde punctul daca e alarma activa), apoi data, anul, temperatura si umiditatea.
   Daca se apasa pe butonul + dupa ce se inica umiditatea retiva a aerului apare ora alarmei cu aprindere intermitenta, pentru a fi usor de identificat. Dupa 3 secunde se revine la functionare normala. 
   Daca se apasa butnul ADJUST se intra, ca si la versiunea anteriora de ceas, la reglaj ora, minute, an, luna, zi, activre sau dezactivare alarma, reglaj ora si minut alarma daca alarma e activata. 
   Daca in timpul alarma este in functiune se apasa butonul +, aceasta inceteaza pana in ziua urmatoare.
   Am facut 2 filmulete, in care se vede modul de functionare si reglaj, cand se foloseste sketch-ul multiplexedclock4_6.ino:
18.09.2017
    La solicitarea lui Florin Bargaouanu, care a realizat si el acest ceas, utilizand un senzor DHT22 (care e mai precis decat DHT11), am modificat sketch-ul, care devine multiplexedclock4_6rev1.ino.
Modificare costa in aceea de a afisa mai rar data si anul, in acest cad afioseaza de 6 ori ceas-temperatura-umiditate, apoi ceas-data-an-temperatura-umiditate. E ceva similar cu ce imi zisese Vlad sa faca noaptea, sa afiseze fara data.
   Am facut si postat filmuletul ceas cu reglaj manual, data, alarma, termometru si higrometru (7), care arata mai bine cum se prezinta informatiile pe ecran.

Placa de dezvoltare cu microcontroler STM32F103C8T6

   In anul 2015 am achizitionat o placa de dezvoltare cu pret foarte bun (aproape 4$, la data aceea) tinand cont ca este cu un microcontroler pe 32 biti, cu frecventa de lucru de 72MHz (vedeti datasheet)... la prima vedere similara cu Arduino Due, cum ar fi Nano fata de Uno, sa zic. Din pacate, in acea perioada nu am gasit rapid informatii despre ea s-o folosesc cu programul Arduino IDE, asa ca a ramas sigilata punguta ei pana acum, cand din discutii cu Andrei Timofte, am zis s-o testez si eu.
   Am conectat placa conform indicatiilor din articolul How To Program STM32F103C8T6, dar am constatat ca nu se aprinde nici un led de pe placa de dezvoltare.
asa ca am legat ca in articolul ARDUINO GOES STM32, adica am scos firul de 3,3V de venea de la interfata USB-FTDI si am alimentat cu un cablu USB din calculator.
   Dupa ce ma urmarit schema placii prezentate in articolul mentionat anterior, am desfacut legaturile de realizate in prima faza si le-am conectat pe lateral
schema devenind
    In mod normal, cei 2 jumperi sun in pozitia O (in dreapta, cum se vede in poza de mai jos).
   Anterior, am facut sa am placile de dezvoltare cu STM32, descarcand de la https://github.com/rogerclarkmelbourne/Arduino_STM32 fisierul comprimat, l-m dezarhivat si l-am pus in subdirectorul hardware din cel in care este instalat programul Arduino IDE:

   Dupa ce se incarca sketch-ul si se configureaza programul Arduino pentru placa noastra
Board: Generic STM32F103C series
‘Variant: STM32F103C8 (20k RAM, 64k Flash)’
Upload method: Serial
‘Port: cel alocat interfetei USB-FTDI de PC’
se trece jumperul BOOT1 pe pozitia 1
si se apasa butonul REST (RESET)
   Se apasa butonul de UPLOAD (incarcare)
   Se pune jumperul BOOT1 in pozitia normala de functionare si apoi placa functioneaza cu programul incarcat.
   Deoarece led-ul intern conectat la PC13 este legat la plus, logica este inersa, adica la comanda de HIGH e stins, respectiv la LOW e aprins, am modificat sketch-ul BLINK prezentat in articolul How To Program STM32F103C8T6 realizand un efect stroboscopic, dupa cum se vede in filmuletul pe care l-am facut. Sketch-ul modificat este STM32F103C8_blink.ino. Am mai modificat si testat sketch-ul din exemplele incarcate odata cu partea de placa de dezvoltare cu STM32, cel numit BlinkNCount, am meu are definit ledul de pe placa la PC13, cum e in cazul real. Acest al doilea sketch testat este STM32F103C8_BlinkNCount.ino.
   Filmuletul de care ziceam , mai sus, se numeste STM32F103C8 Arduino IDE


marți, 22 august 2017

Ceas cu reglaj manual al orei si datei, alarma si termometru cu higrometru si afisaj multiplexat cu 4 cifre led (2)

   La recomandarea lui Vlad Gheorghe, am adaugat si reglaj al intensitatii luminoase a afisajului cu leduri prin folosirea unei fotodiode. Fata de schema din articolul precedent, am mutat butonul de reglare INCREASE (+) de la A1 la D0 (Tx) si la A1 am pus fotorezistenta, de fapt divizorul rezistiv realizat din fotorezistenta conectata la +5V si o rezistenta de 10k la masa (GND).
   Sketch-ul folosit este acum multiplexedclock4_5.ino si are implementata functia de reglarare automata a intensitatii luminoase a afisajului, dupa cum se vede in filmuletele:
ceas cu reglaj manual, data, alarma, termometru si higrometru (3)
ceas cu reglaj manual, data, alarma, termometru si higrometru (4)
RTC clock with manual adjust, date, alarm, temperature and humidity using Arduino (2)
   Ca si in cazul ceasului din articolul precedent, pe ecran se prezinta ciclic urmatoarele: ora (cu indicare secunde prin aprindere cu intermitenta led dintre ora si minute, respectiv indicare activare alarma prin aprindere led din dreapta afisajului), data (in format zi.luna), an, temperatura si umiditate.
   Daca se apasa butonul ADJUST, la finalul ciclului de afisare, se intra in modul de reglare: ora, minute ceas, an, luna, zi, dezactivare sau activare alarma (ora si minut alarma). Reglajul se face pentru fiecare meniu din butonul fara retinere INCREASE (+) si se trecela urmatorul prin apasarea butonului ADJUST.
   In timpul alarmei, se poate opri provizoriu prin apasarea butonului INCREASE (+).

luni, 21 august 2017

Ceas cu reglaj manual al orei si datei, alarma si termometru cu higrometru si afisaj multiplexat cu 4 cifre led

   Fata de articolul anterior, unde am realizat un ceas cu reglaj manual al orei, acum am adaugat si data si anul, pe langa alarma si indicare temperatura si umiditate, deoarece am discutat cu Mihai Brindusoiu si a zis ca ar fi utila si aceasta indicatie a datei.
   Schema este identica cu cea din articolul precedent,
doar programul este modificat (multiplexedclock4_4.ino).
   Ca si in ca zul precedent, informatiile sunt prezentate ciclic: ora cu indicare secunde (aprindere cu intermitenta punct dintre ore si minute) si alarma activa sau nu (punct din partea dreapta afisaj), data (in format zi si luna), an, temperatura si umiditate relativa a aerului.
   Daca se apasa  butonul ADJUST, la finalul ciclului (dupa indicare umiditate), se intra in meniul de reglare ora (care se poate modifica prin apasarea repetata a butonului + sau tinerea lui apasata mai mult timp si valorile se schimba la 0,1 secunde; daca s-a ajuns la valoare maxima a orei, aceasta devine 0 si re reia reglajul).
   Dupa apasarea butonului ADJUST se intra in meniul de reglaj minute, care functioneaza identic ca la reglajul orelor, doar ca maximul este 59 dupa care se revine la zero.
   De data asta, la apasarea butonului ADJUST, se intra la reglajul anului, care i se poate regla valoarea pana la maxim 2030, dupa care revine la anul curent (2017). Formatul, de prezentare, este Yr.xx:
   Se trece la reglajul lunii, prin apasarea butonului ADJUST, iar reglajul se face cu butonul +, maximul fiind 12, dupa care se revine la valoarea minima 1. Formatul de prezentare este Ho.yy, deoarece nu pot scrie litera m/M si H a fost cea mai apropiata:
   Reglajul zilei se face functie de luna selectata, dupa cum e prezentat pe blogul lui Doz, in articolul Arduino Astronomical Clock (or Arduino Pond Pump Controller!). Formatul de prezentare este dY.zz:
   Dupa apasarea butonului ADJUST se intr ain meniul de activare sau dezactivare alarma. Daca ramane pe dezactivat, siustemul intra in modul de functionare normal,
 iar daca este activa,se trece la reglaj ora si minute, dupa care revine la functionarea normala.
    Am facut un scurt filmulet, numit ceas cu reglaj manual, data, alarma, termometru si higrometru, in care se observa modul de functionare si de reglaj al orei, datei, alarmei, etc:
   Am mai facut un filmulet mai lung, ceas cu reglaj manual, data, alarma, termometru si higrometru (2), de o calitate mult mai slaba, multumita telefonului Allview A5 Ready 😒, in care am trecut prin toate etapele de reglare si functionare, inclusiv alarmare si dezactivare provizorie a acesteia:
    De asememea, am facut si un filmulet cu comentarii in limba engleza (RTC clock with manual adjust, date, alarm, temperature and humidity using Arduino):