joi, 23 februarie 2017

Modul de 4 afisaje de 8x8 leduri controlate de MAX7219

   Fata de afisajele de 8x8 leduri controlate de MAX7219 care se pot configura dupa dorinta ca pozitionare, dupa cum am prezentat in articolul Afisaj matriceal din 8x8 leduri controlat de MAX7219, pe piata se gaseste un modul cu 4 afisaje:
   Daca se incarca un sketch prezentat in articolul mentionat anterior, se observa ca textul este rotit la 90 grade pe fiecare afisaj. La inceputul acelui articol am prezentat libraria LedControl dupa informatiile gasite intr-un articol de pe site-ul tronixstuff.com, doar ca pentru modelul meu, de atunci, nu era ok, fiind rotit.. asa ca e numai bun pentru modulul de acum.
   Modul de legare este identic
   Am conectat un sezor DS18B20 la pinul D8 si am scris sketch-ul LedControl_MAX7219_DS18B20.ino obtinand modul de prezentare din filmuletele:
termometru pe matrice led 32x8 cu MAX7219
termomether on 32x8 led display module with MAX7219
  Schema de conectare este simpla:
  Dupa asta, am adaugat si un modul de ceas cu DS1307:
si am incarcat sketch-ul LedControl_MAX7219_DS18B20_DS3231.ino, care merge si cu DS3231, dar si cu DS1307.
  Modul de presentare a informatiilor se vede din filmuletele:
ceas cu termometru pe afisaj de 32x8 leduri
termomether with clock on 32x8 led matrix
14.03.2018
   Deoarece versiunile noi de Arduino IDE nu mici modificri trebuie schimbate const prog_uchar ---> const unsigned char pentru a evita mesajul error: 'prog_uchar' was not declared in this scope si astfel, ultima versiune e LedControl_MAX7219_DS18B20_DS3231rev1.ino !!!

marți, 21 februarie 2017

Ceas cu termometru cu Arduino Due si afisaj de 3,95" (10cm) - 2

   Dupa ce m-am jucat suficient cu afisajul de 3.95" (10cm) pentru Raspberry Pi, comandandu-l cu o placa Arduino Due, am zis sa urmez (iar) sfaturile lui Vlad si sa am un ceas cu caractere frumoase, nu patratoase ca pana acum.
   Am preluat sketch-ul lui realizat pentru o placa Arduino Mega, pentru care e enevoie ori de afisaj tip shield (cu integrate pentur conversie semnal logic 5V la 3,3V cu cat lucreaza afisajul) sau unul ca al meu dar o interfata cu CD4050.
   S-o luam pe rand... afisajul meu se poate conecta direct la o placa Arduino Due pentru ca lucreaza tot cu nivele logice de 3,3V ca si afisajul, schema fiind:

   Skech-ul lui Vlad este derivat dintr-un al meu in care foloseam un afisaj mai mic, de 1.8" (4,6cm) cu ST7735B, Afisaj TFT de 1,8" cu driver ST7735B (4) - ceas cu alarma si reglaj manual al datei si orei + termometru in care memoram date alarmei si starea in EEPROM-ul procesorului de pe placa Arduino Mega:
   Pentru ca placa Arduino Due nu are memorie EEPROM, am adaptat ca la termostatul dual cu Arduino Due si afisaj de 3,95" (10cm), unde am utilizat memoria EEPROM de pe modulul de ceas cu DS3231.
   Primul sketch, care citeste tenperatura de la integratul de ceas (DS3231), schema care se adauga la cea de conectare la placa Arduino Due este:
   Pe ecran, in functie de evolutia sketch-ului 4inch_clock_1.ino, pe ecran, icoana de indicare a alarmei este un ceas mic
apoi un ceas mai mare
respectiv un clopotel
care au culori diferite, in functie de stare:
- alb, pentru asteptare
- albastru, pentru alarma dezactivata
- rosu, alarma activa (iesirea BUZZER in 1 logic)
    Am facut si niste filmulete din care se poate vedea modul de afisare:
ceas si termometru cu Arduino Due pe afisaj de 3.95" (10cm) - 4
ceas si termometru cu Arduino Due pe afisaj de 3.95" (10cm) - 5
ceas si termometru cu Arduino Due pe afisaj de 3.95" (10cm) - 6
   La sugestia lui Cristi Vasilache si cu ajutorul lui, am implementat un simbol grafic pentru ceas:
dupa cum se vede si in ceas si termometru cu Arduino Due pe afisaj de 3.95" (10cm) - 7
    Am integrat, ca la ceasul anterior, citirea temperaturii cu un senzor dedicat, DS18B20, schema de conectare patrand-o pentru a putea incarca diferite sketch-uri la teste, fara a modifica schema:
    In sketch-ul 4inch_clock_1d.ino  apare si un simbol de anulare a alarmei, schimband intre timp si culorile:
- rosu, alarma anulata
- alb, alarma in asteptare
- verde, alarma activa

  In sketch-ul 4inch_clock_en1d.ino este versiunea in engleza, dupa cum se vede in filmuletul Arduino Due clock thermometer on Raspberry Pi 3.95" display (3) (intre timp e corectat la texte):

luni, 20 februarie 2017

Placa de comanda motoare cu L293D

  Primind in teste un sasiu cu 4 motoare, o placa Arduino Uno, 6 senzori optici de distanta, un suport de 4 baterii AA si un shield (placa) pentru comanda motoare cu L293, am zis intai sa ma familiarizez cu ultima componenta mentionata, placa de comanda...
   Am citit prin articolul Adafruit Motor Shield, dar cel mai mult m-a ajutat articolul Controlando motores DC com o Arduino Motor Shield L293D, in care se controlau 2 motoare.. eu am modificat sketch-ul un pic (test_shiled_L293_4motors.ino) legand cele 4 motoare dupa schema:
si am facut 2 filmulete:

    In materialul de la adafruit-motor-shield.pdf gasim informatii detaliate despre pinii folositi, de retinut ca dintre cei digitali liberi sunt doar D2 si D13, cei analogici sunt toti liberi (A0..A5)... iar in documentul Understanding the Adafruit Motor Shield Library sunt explicatii si despre registrul de deplasare 74HC595 care este pe placa.
   Schema acestei placi de comanda este: