joi, 11 iunie 2015

USB Converter

De multe ori când cumpărați diverse "gadget-uri" pentru microcontrolere aveți nevoie de o sursa externa de alimentare. Va propun o schema-un convertor USB-care transforma 5v de la mufa USB in 6V, 12V, 15V in funcție de cat cere "gadget-ul" respectiv. Curentul maxim este de 150mA. Schema are in componenta circuitul integrat LM3578, pentru detalii despre acest circuit folosiți Google.com.

Schema:

 Daca studiați puțin schema interna a circuitului integrat LM3578 veți observa ca acesta conține un tranzistor la ieșire care se ocupa de conversia tensiunii atâta timp cat este deschis. Curentul de colector ( pin 6 ) circula prin L1, care înmagazinează energie sub forma de câmp magnetic. Când tranzistorul este închis ( blocat ) curentul continua sa circule prin L1, D1 către sarcina.
Tensiunea de ieșire consta din suma dintre tensiunea de intrare si tensiunea indusa prin bobina.
Tensiunea de ieșire depinde de curentul cerut de sarcina si "duty cycle-ul" tranzistorului intern.
R5 si R6 =  divizor de tensiune care "cedează" o parte din tensiune comparatorului din LM3578 pentru a putea regla tensiunea de ieșire.
C5 = determina frecventa de ceas = aproximativ 55kHz
L2,C1,C9 si C10 = se comporta ca un filtru de intrare.

Pentru a obţine la ieșire o tensiune de 6V : R5= 47K si R6=9K1
Pentru a obţine la ieșire o tensiune de 12V : R5=110K si R6=10K
Pentru a obţine la ieșire o tensiune de 15V : R5=130K si R6=9k1

Pentru o mai buna înțelegere puteți simula schema utilizând PROTEUS unde veți putea modifica R5 si R6 si veți vedea ce obțineți la ieșire.

Pentru un cablaj mai mic puteți utiliza numai componente SMD.

duminică, 7 iunie 2015

Programator serial uC AVR ( gama 20 pini )


Programatorul este o interfata siProg compatibila cu programul PonyProg ce se poate descarca de la www.lancos.com .

Alimentarea acestui programator se realizeaza direct din portul serial al calculatorului. Aceasta tensiune este redresata de diodele D1, D2 si D3, filtrate cu C1 si C2 si stabilizata la +5V cu un regulator din seria 78L05.

Condensatoarele C4 si C5 au valoarea cuprinsa intre 22p si 33pF iar diodele zenner D4 si D5 sunt de valori 5V1 sau 4V7.

Schema:

 
1.       Dupa descarcarea programului PonyProg ----- il instalati ------- il deschideti --------- SETUP ------- aici se allege tipul de programator si portul de comunicatii COM ( tip programator: SiProgAPI ).

2.       Se intra in meniul DEVICE ----- AVR micro ------ se selecteaza tipul de uC. Acest programator suporta urmatoarele tipuri de uC : AT90S1200, AT90S2313, ATTiny2313.

3.       Se incarca fisierul .HEX ce trebuie scris in uC accesand meniul FILE ----- Open Device File

4.       Se intra in meniul COMMAND ------- Security and Control ---------- aici se selecteaza bitii de configuratie ( protejare la citire,..etc ).

5.       Scrierea se face accesand meniul COMMAND ------ Write All

In continuare va atasez cablajul PCB pentru aceasta schema:
Cablaj partea cu cupru:

SISTEMUL DE NUMERATIE


1.      Sistemul zecimal

Este sistemul de numeratie pe care il utilizam din copilarie dar putin stiu ca acest system foloseste o numeratie cu 10 cifre si este un system in baza 10.

Pozitia cifrelor are o foarte mare importanta.

Citirea numerelor se face de la stanga la dreapta iar numararea pozitiei se face de la dreapta la stanga.

Ex:                 504                                        citirea se face de la stanga la dreapta: cinci, zero, patru

                                                                      Pozitia de la dreapta la stanga : 4 – pozitia 0
                                                                                                                                     0 – pozitia 1
                                                                                                                                     5 – pozitia 2

Reprezentarea numarului in baza 10 :
      504 = 4 * 100 + 0 * 101 + 5 * 102

504 = 5 * 102 + 0 * 101 + 4 * 100

10x                             10 = baza

                       X = pozitia cifrei respective

Ex:  1982 = 2 * 100 + 8 * 101 + 9 * 102 + 1 * 103

Daca intelegem acest system de numeratie va fi foarte usor pentru celelalte sisteme de numeratie pentru ca sunt asemanatoare.

2.      Sistemul binar

Daca sistemul zecimal foloseste o numeratie cu 10 cifre, sistemul binar foloseste o numeratie pe 2 cifre sau este un system in baza 2. Cele 2 cifre sunt 0 si 1 numite biti, 8 biti (8 cifre de 1 si 0 ) se numeste octet sau byte.

Luam la intamplare numarul binary 10110010. Daca ne uitam la el nu intelegem nimic, este o insiruire de 0 si 1 iar noi stim doar sistemul zecimal. Stiind doar sistemul zecimal vom transforma numarul binar in numar zecimal.

10110010 = 0 * 20 + 1 * 21 + 0 *22 + 0 * 23 + 1 * 24 + 1 * 25 + 0 * 26 + 1 * 27

                       = 0 + 2 + 0 + 0 + 16 + 32 + 0 + 128

                  = 2 + 16 + 32 + 128

                  = 178

Este acelasi principiu de calcul ca si in cazul sistemului zecimal diferenta fiind doar baza ( aici este 2 iar la zecimal este 10 ).

Concluzia este : numarul binar 100110010 = 178 in sistem zecimal.

Acum sa transformam numarul zecimal 178 in sistem binar. Vom aplica metoda restului impartirii la 2 a numarului, adica: daca restul impartirii la 2 0 scriem 1 in caz contrar scriem 0 si continuam impartirea cu catul.

Exemplificare:

178 :2 = 89,0 rest 0 scriem 0

89 : 2 = 44,5 rest 5 scriem 1

44 : 2 = 22,0 rest 0 scriem 0

22 : 2 = 11,0 rest 0 scriem 0

11 : 2 = 5,5 rest 5 scriem 1

5 : 2 = 2,5 rest 5 scriem 1

2 : 2 = 1,0 rest 0 scriem 0

1 : 2 = 0,5 rest 5 scriem 1 , catul a ajuns 0 si ne oprim. Citirea se face de jos in sus 10110010 ceea ce este adevarat.

 3.      Sistemul Hexazecimal

Sistemul binar este un sistem putin mai greu in cazul in care se folosesc succesiuni lungi de 1 si 0. Acest lucru a dus la cautarea unei solutii mai practice pentru reprezentarea numerelor binare si s-a gasit urmatoarea solutie : se taie jumatate de octet (byte) si se reprezinta fiecare jumatate printr-o cifra.

Valoarea maxima a unei jumatati de octet ( byte ) este 15, in binar 1111, iar pentru ca cele 10 cifre ale sistemului zecimal nu sunt de ajuns s-a decis sa se foloseasca si primele 6 litere ale alfabetului pe post de cifre si asa s-a nascut sistemul hexazecimal.

In continuare va prezint tabelul de conversie pentru jumatati de octet

 

Binar

Hexazecimal

Zecimal

0000

0

0

0001

1

1

0100

2

2

0011

3

3

0100

4

4

0101

5

5

0110

6

6

0111

7

7

1000

8

8

1001

9

9

1010

A

10

1011

B

11

1100

C

12

1101

D

13

1110

E

14

1111

F

15


Pentru a reprezenta un octet (byte) ne vor trebui 2 cifre hexazecimale. 
Exemplu:
10010101 : prima jumatate = 1001                 
                   a doua jumatate = 0101
-dupa injumatatire vom lua fiecare jumatate si o vom transforma in hexazecimal.
       1001 ------ conform tabelului ------  = 0x9
       0101 ------ conform tabelului ------  = 0x5

 Acestea fiind spuse observam ca 10010101 = 0x95 

Conversia din hexazecimal in zecimal
-          Luam ca exemplu numarul hexazecimal 0xB1
0xB1  =  0xB ------- conform tabelului  ------- = 11        
            = 0x1 -------- conform tabelului -------- = 1

 rezulta 11 * 161 + 1 * 160 = 177  0xB1 = 17
 
-          Convertim numarul zecimal 177 in binar pentru a demonstra ca este acelasi numar binar din exemplul de mai sus:
177 : 2 = 88,5 = rest 5 scriem 1
88 : 2 = 44 = rest 0 scriem 0
44 : 2 = 22,0 = rest 0 scriem 0
22 : 2 = 11,0 = rest 0 scriem 0
11 : 2 = 5,5 = rest 5 scriem 1
5 : 2 = 2,5 = rest 5 scriem 1
2 : 2 = 1,0 = rest 0 scriem 0
1 : 2 = 0,5 = rest 5 scriem 1
 
Daca citim de jos in sus  10110001

Conversia din hexazecimal in binar
0xB1 = 0xB ------- conform tabelului ------ =11    ------ in binar ----- = 1011         
          = 0x1 -------- conform tabelului ----- = 1   -------- in binar ----- = 0001

 rezulta ca 0xB1 = 10110001


PROTEUS V8 si ARDUINO

Proteus este un software foarte util pentru pasionatii de electronica si nu numai, oferind posibilitatea desenarii schemelor,proiectarea cablajelor ( PCB-uri ) si simularea schemelor. In versiunea PROTEUS v8 dezvoltatorii au introdus si optiunea de simulare a placilor de dezvoltare ARDUINO dar si a altor placi de dezvoltare.
Placile ARDUINO suportate de PROTEUS sunt cele dotate cu microcontroller ATmega168, ATmega328P si ATmega2560 ( ARDUINO MEGA 2560 ) ; personal detin o placa ARDUINO MEGA2560.
In continuare va voi prezenta cum puteti simula schemele bazate pe placa de dezvoltare ARDUINO MEGA2560 .
  1. Deschideti PROTEUS

  • Accesati meniul FILE - - - - New Project

  • In fereastra ce se deschide bifam, binenteles dupa ce dam un nume proiectului si ii specificam locul unde trebuie salvat, "From Development Board" iar mai jos in sectiunea "Micro-controller Family" lasam selectat 'ALL" si in sectiunea "Development Board" selectam placa de dezvoltare sau ce microcontroller are in componenta. In cazul meu am ales "ARDUINO MEGA2560"

  • Click pe butonul "FINISH"
  • Dupa ce ati apasat "FINISH" va aparea urmatoarea fereastra sau dupa caz in functie de ce a-ti selectat

  • Observati ca s-a deschis o fereastra ce contine doua tab-uri ( Schematic Capture si Source Code)
                             - Schematic Capture: unde este microcontroller-ul aferent placii de dezvoltare si unde voi veti desena schema.
                             - Source Code: unde trebuie sa scrieti codul sursa pentru microcontroller-ul respectiv. Veti observa ca are aceiasi structura ca si softul de dezvoltare original ARDUINO de aceea puteti scrie codul in IDE-ul ARDUINO si apoi cu Copy-Paste il transferati in PROTEUS.



In continuare va voi arata un exemplu si anume vom aprinde doua leduri:
  • desenam schema

Atentie la desenarea schemei !!!, va trebui sa va duceti cu mouse-ul pe pinul la care doriti sa conectati led-urile click ----- click dreapta ---- copy apo faceti click in afara zonei punctate cu rosu  ----- click dreapta ------- Paste si acum puteti conecta led-urile la pinul sau pinii respectivi.

  • scriem codul sursa

  • click pe butonul "PLAY" din stanga - jos - colt


GATA!!!!!!!!.......a fost greu????????.

marți, 17 martie 2015

ARDUINO - Ce este ARDUINO?


Arduino este o platform open-source utilizata pentru realizarea proiectelor electronice. Aceasta platform este formata dintr-o placa electronic ce contine un microcontroller si un pachet software sau IDE ( Integrated Development Environment). IDE-ul este folosit pentru a scrie partea de programare ( cod ) si a incarca programul in placa electronic sau in microcontroller.

Platform Arduino a devenit extreme de popular, mai ales in randul incepatorilor in tainele microcontroller-elor sau a electronicii, datorita simplitatii, ofera o larga paleta de librarii pentru foarte multe proiecte ( motoare, senzori, ecrane LCD, etc… ).

In urmatoarele imagini aveti o placa ARDUINO UNO si ARDUINO MEGA 2560 si IDE-ul cu un program ( cod ) scris.

 
Figură 1. Placa ARDUINO UNO



Figură 2. Placa ARDUINO MEGA 2560.


Figură 3. IDE-ul ARDUINO
In figura 3, cea cu IDE-ul, este un program care face ca un led conectat la pinul 13 sa „clipeasca” ( se stinge si se aprinde la un interval de  1 secunda ). La prima vedere poate nu o sa intelegeti prea multe din program dar cu rabdare si multa documentare o sa va para usor. Documentatie despre Arduino, proiecte realizate cu Arduino veti gasi foarte multa deoarece este open –source sau mai bine zis , asa cum ne place noua romanilor, gratuita ( MOCA ) doar partea software, partea de electronica costa :D :P. Nu ezitati sa folositi www.google.ro .
Ce anume poate face acest ARDUINO?
Platforma a fost, si este, dezvoltata pentru incepatori, impatimiti de microcontrollere, hacker-ilor si tuturor celor care sunt interesati de creearea unor „obiecte” interactive. Arduino poate interactiona cu butoane, led-uri, motoare, difuzoare, unitati GPS, camere video si web, cu internetul, telefonul „destept ” sau smartphone, cu televizorul, etc……, bariere avand doar imaginatia voastra dar nu cred acest lucru!.
Ce gasim pe placa electronica?
Sunt foarte multe variante de placi arduino, dar in majoritatea cazurilor veti gasi urmatoarele componente:
POWER si COMUNICATIEA USB – alimentarea poate fi o sursa externa ( 2 ) sau se poate lua tensiunea necesara din conexiunea USB (1) care de asemenea face legatura dintre partea software si placa electronica. Mare atentie cand folositi sursa de alimentare externa, tensiunea acesteia trebuie sa fie cuprinsa intre 6 – 12 V .
Pinii 3V3(5), 5V (4), GND(3), AnalogIn(6), Digital PWM(7,8), Aref (9) – sunt foarte bine ganditi pentru ca puteti sa va conectati la ei cu simple fire. La majoritatea placilor arduino acesti pini, dar si ceilalti, sunt marcati vizibil pe placa.
·         GND = masa;
·         5V si 3V3 = sunt pini la care avem o tensiune de 5V respectiv 3V3 pe care o putem folosi pentru a alimenta altceva.
·         AnalogIn = cu acesti pini putem citi date analogice de la diferiti senzori analogici si transformate in date digitale.
·         Digital PWM = acesti pini sunt pentru a primi si transmite date la/catre diferite componente;
·         Aref = referinta analogica. Este utilizata pentru a seta o referinta externa pentru limita superioara .
Reset Button ( 10 ) – in cazul in care placa se blocheaza si nu mai ruleaza codul apasam acest buton si programul va incepe de la inceput.
Power LED Indicator (11) – ne arata daca placa este alimentata sau nu
Tx, Rx (12) – sunt pinii de comunicatie. Acestia ne arata daca se receptioneaza sau transmit date.
Main IC (13) – microcontroller-ul
Voltage Regulator (14)  – in cazul in care alimentam placa de la o sursa externa avnd tensiunea cuprinsa intre 12 -19V acesta nu lasa sa patrunda decat tensiunea necesara placii fara sa o distruga, dar daca tensiunea este mai mare de 20V acesta se va arde si cu mari sanse sa va strica si placa arduino.
Instalarea pachetului software ( IDE-ul )
Pentru a instala pachetul software accesati adresa http://arduino.cc  si mergeti la sectiunea DOWNLOAD si cautati versiunea de ARDUINO pentru sistemul de operare pe care il aveti instalat pe computer. Descarcati pachetul software iar apoi instalatil.
Dupa instalarea acestuia conectati placa electronic la computer, acesta isi va instala driver-le necesare. Accesati programul ARDUINO. Va apare o fereastra ca in figura urmatoare, aici vom scrie programul nostrum.


Figură 4. IDE ARDUINO.


Scrieti datele din Figura 3. apoi apasati  Ctrl+U pentru a compila programul si al incarca in placa Arduino. Dupa incarcare ledul de pe placa ar trebui sa „clipeasca” .