Afișare valori numerice pe display cu MAX7219

 Autor:   Publicat pe:    Niciun comentariu

MAX7219 este un controller pentru afișaje cu LED-uri în conexiune catod comun. Integratul este cunoscut mai ales datorită afișajelor matriciale 8x8, însă acesta poate controla la fel de bine și afișaje cu 7 segmente. Fiindcă vreau să construiesc un volt-ampermetru pentru o sursă de alimentare, am ales un afișaj cu 7 segmente și 8 caractere (digits) controlat de acest integrat. Conectarea la placa de dezvoltare este simplă, interfața fiind una serială de tip SPI, iar nivelele de tensiune sunt 5 V. Dar, partea de software nu este la fel de simplă, biblioteca LedControl pentru MAX7219 neavând funcții care să afișeze valori numerice de tipul float.

În acest articol voi realiza un montaj cu o placă de dezvoltare cu microcontroller ATmega328p care evaluează două intrări analogice și afișează tensiunea citită pe un afișaj cu 8 caractere controlat de MAX7219. Mai mult de atât, voi crea și câteva mesaje predefinite cu caractere ce pot fi afișate și pe afișaje cu 7 segmente.

Afișare valori numerice pe display cu MAX7219

Afișare valori numerice pe display cu MAX7219

Îmbunătățirea aspectului Arduino IDE

 Autor:   Publicat pe:    Niciun comentariu

Arduino IDE este mediul de dezvoltare oficial pentru plăcile Arduino dar și pentru multe alte platforme compatibile. Aspectul mediului de dezvoltare este mult simplificat, fără bare de unelte și panouri laterale ca alte IDE-uri. Această simplitate nu se rezumă doar la aspect. Unele funcții utile, cum ar fi auto-completarea unor cuvinte cheie lipsesc. Altele, cum ar fi numerotarea rândurilor de cod, sunt implicit dezactivate.

Actual, se află în dezvoltare o versiune modernă, îmbunătățită, numită Arduino Pro IDE. Se află încă în stadiul beta, iar până ce va fi lansată oficial, există câteva îmbunătățiri ce pot fi aduse mediului clasic de dezvoltare Arduino IDE. Vom vedea în această postare cum activează câteva funcții utile, dar și cum se schimbă tema și fontul editorului.

Arduino IDE cu temă de culoară întunecată

Arduino IDE cu temă de culoară întunecată

Termometru cu Arduino și ieșire... video

 Autor:   Publicat pe:    Niciun comentariu

Semnalul video analogic a fost înlocuit treptat cu cel digital care oferă o calitate și o rezoluție mai bune ale imaginii, fără perturbări. Astfel, dispozitivele de recepție a semnalului digital au devenit din ce în ce mai ușor de găsit și prețul lor a scăzut. Dar, generarea și modularea în radiofrecvență (RF) a unui semnal video digital (stream) este dificilă, necesitând echipamente costisitoare. În schimb, vechiul semnal video analogic este ușor de generat și poate fi modulat RF cu dispozitive simple. Modulatoare RF pot fi găsite în console de jocuri vechi, receptoare, playere VCR etc.

Un mod simplu de a genera semnalul video analogic este folosind un microcontroller. În continuare voi folosi o placă Arduino compatibilă împreună cu biblioteca TVout. ATmega 328p nu este foarte performant în acest scop, dar poate genera un semnal video alb-negru ce simulează un afișaj de 128x96 pixeli. Biblioteca folosește întreruperi, de aceea unele funcții ale microcontroller-ului nu pot fi folosite concomitent cu generarea semnalului video.

Termometru cu Arduino și ieșire video

Joc de lumini secvențiale cu NE555 și CD4017

 Autor:   Publicat pe:    Niciun comentariu

Utilizând circuitele integrate NE555 și CD4017, pot fi realizate aplicații variate, de la divertisment la utilizări în domeniul semnalizărilor diverse. În continuare este prezentat un circuit clasic care comandă un număr de până la 10 LED-uri, ce se aprind secvențial, unul după altul („lumină curgătoare”). Numărul LED-urilor poate fi redus, dacă este necesar. CD4017 are un pin de resetare, care este conectat la masă. Dacă se reconectează acest pin la una din ieșirile ce comandă LED-uri, secvența de aprindere ajunge până la acesta, apoi resetează integratul și o ia de la început.

Circuitul NE555 este configurat ca astabil de joasă frecvență. Frecvența este ajustabilă între anumite limite cu ajutorul unui rezistor semireglabil. R1, R2+RV1 și C2 determină frecvența de oscilație cuprinsă între 10 și 65 Hz (cu valorile din schemă). Poți calcula frecvența de oscilație a unui astabil cu NE555 folosind calculatorul de aici.

Joc de lumini secvențiale cu NE555 și CD4017

Construire suport multifeed pentru LNB-uri

 Autor:   Publicat pe:    Niciun comentariu

Chiar dacă o antenă de satelit este proiectată să recepționeze semnalul de la un singur satelit (poziție orbitală), adăugând LNB-uri suplimentare lângă cel central se pot recepționa sateliți aflați pe mai multe poziții orbitale relativ apropiate. Se realizează astfel un sistem de recepție multifeed. Acesta are avantaje și dezavantaje. Principalul avantaj față de un sistem motorizat este comutarea instantanee a canalelor de pe diferiți sateliți, fără a aștepta repoziționarea antenei. Dezavantajul este că semnalul recepționat de LNB-urile plasate în altă poziție decât focarul principal al antenei este mai slab. Totuși, performanțele sunt acceptabile cu antene de mici dimensiuni (90 cm).

Suporturi pentru mai multe LNB-uri se găsesc prin magazinele de specialitate. Multe dintre ele sunt proiectate pentru 2 sau 4 LNB-uri și nu permit prea multe ajustări, unele fiind specifice pentru o poziție orbitală. Vom încerca să construim un suport pentru LNB-uri și vom afla cum se calculează distanța dintre ele. Toate LNB-urile din sistemul de recepție trebuie să se afle la aceeași distanță de centrul antenei (distanța focală constantă) și trebuie să urmeze proiecția inversată a orbitei Clarke. Distanța focală este specifică antenei, iar proiecția orbitei depinde de diametrul antenei, locația în care se face recepția și sateliții aleși. Distanța dintre LNB-uri este proporțională cu diametrul antenei.

Sistem de recepție multifeed cu 8 LNB-uri

Sistem de recepție multifeed cu 8 LNB-uri (foto de Paul Lucas pe Flickr)

Acționare motoare pas cu pas cu Arduino (cod sursă)

 Autor:   Publicat pe:    Niciun comentariu

Motoarele pas cu pas sunt motoare fără perii care efectuează mișcări de rotație discrete în pași incrementali, spre deosebire de rotația continuă a unui motor electric obișnuit. Acest pot efectua un număr exact de pași, fiind construite din mai multe bobine alimentate într-o ordine specifică, de o secvență de impulsuri. Motoarele pas cu pas unipolare au două bobine, fiecare cu priză mediană. Aceste prize se conectează împreună la un pol al sursei de alimentare, iar cele patru terminale ale bobinelor sunt alimentate secvențial de driver (aceste motoare au minim 5 fire de conexiune). Celălalt tip de motor pas cu pas este motorul bipolar, cu două bobine, alimentate secvențial cu polaritate directă și apoi inversă (aceste motoare au 4 fire de conexiune).

Un driver cu tranzistoare pentru motoare pas cu pas unipolar și metode simple de generare a impulsurilor au fost prezentate în articolul anterior. Funcțiile de generare a impulsurilor din acel articol sunt mult prea simple și permit rotirea într-o singură direcție, în multipli de 4 pași. În acest articol voi exemplifica încă o dată modurile de acționare a bobinelor motoarelor pas cu pas și voi prezenta niște funcții care permit efectuarea de pași individuali și schimbarea direcției de rotație.

Acționare motoare pas cu pas cu Arduino (cod sursă)