marți, 12 aprilie 2016

Afisaj cu 4 cifre controlate de TM1637 si Arduino

   Un afisaj ieftin este cel cu 4 cifre de 0.36"(9,14mm) din 7 segmente led controlate de integratul TM1637:
   El se poate folosi pentru un ceas, pentru indicatii de temperatura si umiditate, ceas cronometru, etc.
   Pentru inceput am cautat pe net si am gasit cateva articoole in care se prezinta acest afisaj impreuna cu Arduino, doar ca eu m-am oprit la articolul de la http://www.arduino.md/hardware/lcd-and-leds/0-36-led-display-4-digit-red/ care foloseste libraria care se poate descarca de la http://www.arduino.md/wp-content/uploads/library/TM1637-4-digit-display-tube.zip !
  Schema de test e foarte simpla:
   Am adaptat libraria mentionata mai sus pentru a afisa si alte simboluri:
si am folosit si un senzor de temperatura si umiditate DHT11 (sketch-ul permite folosirea si a unui senzor AM2302/DHT22):
   Schema utilizata este:
   Pe canalul de github (https://github.com/tehniq3/) am pus libraria mea modificata, care include si sketch-ul cu DHT11, adresa fiind https://github.com/tehniq3/TM1637-display.
   Am facut si un filmulet numit Arduino, afisaj cu TM1637 si senzor DHT11

si inca unul in engleza, numit Arduino, TM1637 display & DHT11 sensor

   

vineri, 12 februarie 2016

Prezentare si stocare date pe pagina ThingSpeak (4) - folosind placa WeMos D1

   De curand, am intrat in posesia unei placi de dezvoltare care se bazeaza pe un ESP8266 si arata ca o placa Arduino Uno. Ea este o clona (copie) a placii WeMos D1.
   

   Pentru a fi mai usor de folosit am notat pe fata si corespondenta pinilor de la ESP8266MOD (asta are a mea inscriptionat, iar pe net apare ca este un ESP8266EX):
   Deoarece se bazeaza pe un ESP8266 ca si placa NodeMCu, am incarcat un sketch similar (NodeMcu_or_WeMosD1_random.ino) pentru a trimite niste date aleatorii catre un canal ThingSpeak, cum am prezentat in articolul Prezentare si stocare date pe pagina ThingSpeak (2) - folosind placa NodeMcu si l-am incarcat folosindu-ma de programul Arduino IDE, cum am prezentat in articolul Placa NodeMcu v.0.9 programata in Arduino IDE, doar ca acum selectez placa WeMos D1:

   Am facut si 2 filmulete:


   Ulterior, am pus un senzor de temperatura DHT11 (ca asta a fost liber) si am incarcat sketch-ul modificat (NodeMcu_or_WeMosD1_DHT.ino), in care pinul de date al senzorului este conectat tot la GPIO5 (ca si in exemplul cu NodeMcu), care are corespondenta la D15/SCL.
   In momentul scrierii acestui articol, datele se pot vedea la https://thingspeak.com/channels/86999:
   Am facut si 2 filmulete:

luni, 1 februarie 2016

Prezentare si stocare date pe pagina ThingSpeak (3) - folosind Arduino si ESP8266-05

   Fata de exemplele anterioare in care am folosit o placa Arduino conectata la o placa de retea tip shield cu W5100 (Prezentare si stocare date pe pagina ThingSpeak), apoi o placa NodeMcu v0.9 ["construita" pe baza unui modul Wi-Fi ESP8266-12E, vezi Prezentare si stocare date pe pagina ThingSpeak (2)], acum o sa ma folosesc de o placa Arduino conectata la un modul Wi-Fi ESP8266-05, care nu are decat partea de comunicare, dupa cum se vede in articolul Modulul de retea "uairles" ESP8266-05 si Arduino:
   Deoarece alimentarea se face cu tensiune de 3,3V trebuie si celelalte intrari sa le am la nivel logic de 3,3V, asa ca am folosit un modul de conversie a nivelului logic
   O alta varianta de interfata este cea prezentata in documentatia modului GPRS M590 si prezentata de mine in articolul Modul GPRS cu M590 (3)
   O schema de conectare este:
doar ca eu am folosit un Arduino Nano si un modul extern de alimentare, pastrand, in mare, modul de conectare:
ulterior, am folosit un cablaj de test cu conectori:
   Sketch-ul folosit de mine este ThingSpeak_arduino_esp8266_ds18b20.ino si se bazeaza pe combinatia a 2 sketch-uri gasite in articolele A Simple IoT Project with the ESP8266 WiFi module si ESP8266 Wifi Temperature Logger.
   In momentul testelor, am realizat un canal, care se vede asa:
   Am facut si 2 filmulete:

vineri, 15 ianuarie 2016

Module radio NRF24L01 (2)

   In articolul precedent am transmis pozitia unui joystick (axele x si y), inclusiv pozitia butnonului de pe el (apasat sau liber). Datele transmise si primite se puteau vedea in ecranele de monitorizare seriala.
   Am zis sa termin sketch-ul din articolul RadioLink-Joystick-To-Servos de pe site-ul arduino-info.wikispaces.com in care se transmitea pozitia joystick-ului catre 2 servomotoare montate, dar nu implementase aprinderea unui led cand se apasa butonul de pe joystick.
   Schema de conectare a joystick-ului la placa Arduino Uno si a modulului radio NRF24L01 ramane identica cu cea prezentata anterior:
iar receptoprul are schema de conectare astfel:
   Am folosit o sursa externa de 5V/1A pentru alimentarea celor 2 servomotoare, decoarece alimentarea prin USB de la calculator nu ar fi fost suficienta.
   Cateva imagini cu montajul in functiune:
- in repaus:
- buton apasat:
- joystick la stanga:
joystick la dreapta:
joystick in sus:
joystick in jos:
   Am facut si 2 filmulete:

 
   Pe https://github.com/tehniq3/ am postat cele 2 sketch-uri:
- pentru emitator: nrf24l01_tx_2servo_sw.ino
- pentru receptor: nrf24l01_rx_2servo_sw.ino

joi, 14 ianuarie 2016

Benzi de leduri multicolore cu control independent pentru fiecare led

   In ultimul timp se gasesc la preturi acceptabile benzi de leduri multicolore cu control independent pentru fiecare din leduri, adica fiecare led multicolor este comandat de un integrat (gen registru de deplasare).
   In articolul Difference between WS2801, WS2811 and WS2812 se prezinta foarte bine diferenta intre benzile de leduri multicolore contorlate de WS2801 si WS2812 (care are in interiorul ledului circuitul de control WS2811).
   In imaginea urmatoare se vede diferenta, in sensul ca banda cu WS2812 are 60 leduri multicolore pe o lungime de 1m, iar cea cu WS2801 are 32 leduri multicolore pe o lungime de 1m.
   In imaginea de mai jos se vede un led multicolor 5050 si un led WS2812:
   Diferenta este si in modul de comanda al circuitelor de comanda:
   Pentru teste, am avut 3 leduri multicolore controlate de WS2801, primite de la ARelectronics. Le-am conectat in cascada si le-am comandat cu libraria Adafruit-WS2801-Library, dupa ce m-am documentat din articolul https://learn.adafruit.com/12mm-led-pixels, iar schema de conectare la placa Arduino este, in mod uzual:
   Eu am avut doar 3 leduri multicolore, asa ca am alimentat din mufa USB a calculatorului.
   Pentru comanda, am folosit exemplul numit "strandtest" pe care l-am modificat pentru 3 leduri multicolore si am adaugat niste "cazuri particulare", cum e tricolorul Romaniei:
   Sketch-ul folosit se numeste ws2801_3leds_2m4a.ino !
 
 
 
 
dupa cum se vede si filmuletele:
   Ulterior, am achizitionat o banda de leduri multicolore WS2812 in lungime de 1m de pe www.banggood.com.
   Pentru ea, am folosit libraria Neopixel. Modul de conectare a impus un alimentator separat, deoarece consumul benzii cu 60 de leduri multicolore este destul de mare.
   La testele initiale am folosit exemplu "stantest" al librariei Neopixel..
apoi am modificat sketch-ul, care devine ws2812B_test.ino
   Cand testam sketch-uri, schema a fost ca cea din articolul Difference between WS2801, WS2811 and WS2812
iar cand l-am folosit independent
   Eu nu am folosit rezistenta inseriata cu pinul de comanda cand am incarcat sketch-uri.
   Cateva exemple de combinatii de culori si variatii de intensitate realizate cu sketch-ul meu ws2812B_test.ino, in poze se vede si consumul (in amperi):
 
 
 
 
 
 
 
 
 
 
si cateva filmulete: