Sunteți pe pagina 1din 29

Capitolul 3

Realizarea practică a sistemului de acţionare electrică tip ascensor, cu


comandă electronica

Pentru realizarea acestui sistem, am ales că placă de dezvoltare Arduino Mega, deoarece
mi-a dat posibilitatea utilizării unui număr mai mare de pini digitali,faţă de alte plăci arduino.
Această placă foloseşte un microcontroller ATmega2560.

Iniţial, pentru realizarea acestui sistem, am încercat să utilizez o placă de dezvoltare


Arduino Uno, însă având în vedere faptul că pentru realizarea proiectului a fost nevoie utilizarea
unui număr mai mare de pini, am utilizat placă Arduino Mega.

Avantajele principale pe care placa Arduino Mega le are faţă de placa Arduino Uno sunt:

 54 de pini digitali faţă de cei 14 pini digitali pe care le are Arduino Uno
 16 pini analogici – cu 10 pini mai mult decât Arduino Uno
 15 iesiri cu semnal PWM – faţă de 6 ieşiri pe care placă Arduino Uno le poate oferi

Sistemul este de tip ascensor şi este format din următoarele componente:


 motor pas cu pas;
 motor de curent continuu;
 senzor ultrasonic;
 4 butoane ;
 registru de deplasare 74HC595;
 4 afişajuri 7 segmente;
 L293D driver chip;
 A4988 driver;
 7 rezistoare de 680 de ohmi;
 acumulator 19V;
 acumulator 9V;

1
3.1 Descrierea sistemului sistemului de comanda

 Comanda motorului pas cu pas

Pentru comandă motorului pas cu pas am utilizat driver-ul A4988. Acesta este utilizat
pentru comandă motoarelor pas cu pas bipolare în diverse aplicaţii cum ar fi:

 hard disk;
 copiatoare,printere 3D;
 CNC-uri;
 alte aplicaţii ce necesită precizie ridicată;

Pentru a comandă motorul cu acest driver am utilizat doar 2 pini pe placă Arduino Mega. S-a
folosit un pin pentru a controla direcţia în care motorul se învârte şi un pin pentru a controla
numărul de paşi pe care îi face acesta.

2
Fig 3.1 Schema bloc a driver-ului A4988
Driver-ul permite 5 regimuri diferite de deplasare:
 full-step
 half-step
 quarter-step
 eight-step
 sixteenth-step

Aceste regimuri permit rezoluţii mai mari pentru comandă motorului, împărţind un pas al
acestuia într-un număr intermediari de paşi, prin polarizarea bobinelor cu nivele intermediare de
curenţi.
În cazul motorului pe care îl folosesc, JK42HS60 -1704A Nema 17, acesta are 200 de paşi
pe revoluţie atunci când operează în regimul full-step.De exemplu, atunci când motorul operează
în regimul quarter-step acesta îşi măreşte numărul de paşi pe o revoluţie de la 200 la 800 de paşi.

Fig 3.2 Motor pas cu pas

Avantajele acestui mod de comandă a motorului pas cu pas sunt:

3
 Acuratete mai mare
 Reduce numărul de vibraţii
 Realizează o comandă mai silenţioasă

Dezavantajul major al acestui mod de comandă este că în aplicaţiile în care motorul comandă o
sarcina cu o greutate mare acesta nu reuşeşte să păstreze un cuplu suficient de mare pentru a
susţine acea sarcina.

Fig 3.3 Regimul de funcţionare a motorului pas cu pas

Pentru a trece de la un regim la altul trebuie că pinii MS1, MS2, MS3 să fie alimentaţi
conform tabelului de mai jos:

Tabel 3.1 Modul de conectare a pinilor MS1, MS2, MS3

4
 Comanda afisaj-urilor

Pentru afişaj am utilizat 4 afişaj-uri 7 segmente cu catodul comun ce sunt conectate la


placă arduino prin intermediul unui registru de deplasare 74HC595. Am conectat în acest fel
afisajurile pentru a reduce numărul de pini utilizaţi de placă arduino.Am reuşit să reduc numărul
de pini de la 7 pini la numai 3,având suficient spaţiu pe placă pentru a conecta şi restul
componentelor.

Registrul de deplasare 74HC595

Un registru este format din mai multe bistabile şi permite memorarea şi / sau deplasarea
informaţiei la comandă impulsurilor de tact. Pentru realizarea registrelor se folosesc de obicei
bistabile D.

Acest registru SIPO- Serial Input- Serial sau Parallel Output in tehnologie CMOS de 8 biţi

5
Fig 3.4 Schema bloc a unui registru 74HC595

Tabel 3.1 modul de reprezentare a pinilor

Simbol Pin Descriere

Q0, Q1, Q2, Q3, Q4, 15, 1, 2, 3, 4, 5, 6, 7 parallel data output


Q5, Q6, Q7

GND 8 ground (0 V)

Q7S 9 serial data output

MR 10 master reset (active


LOW)

SHCP 11 shift register clock


input

STCP 12 storage register clock


input

OE 13 output enable input


(active LOW)

DS 14 serial data input

Q0 15 parallel data output 0

VCC 16 supply voltage

6
 Afisajul 7 segmente cu catod comun

Afişajul cu şapte segmente (de asemenea denumit, afişaj LED cu 7 segmente) este o
modalitate de a reprezenta numere în sisteme electronice . Fiecare dintre segmentele care
formează afişare sunt numite a, b, c, d, e, f şi g sunt asamblate astfel încât să permită a activă
fiecare segment separat, astfel obţinând orice cifra.
Afisajurile cu şapte segmente sunt de două tipuri: anod comun şi catod comun.
 Pentru tipul anod comun, tot circuitul de tip anod sau segmente sunt conectate intern la
un pin comun pentru a fi conectat la potenţialul pozitiv (nivel "1"). Aprinderea
individuală a fiecărui segment este realizată prin aplicarea unui potenţial negativ (nivel
"0") pentru pînul corespunzător printr-o rezistenţă care limitează fluxul de curent.
 Pentru tipul catod comun, toţi catozii de LED-uri sau segmente sunt unite intern pentru o
dată comună pentru a fi conectaţi la potenţialul negativ (nivel "0"). Aprinderea
individuală a fiecărui segment se face prin aplicarea unui potenţial pozitiv (nivel "1") care
corespunde printr-o rezistenţă de limitare a fluxului de c

Fig 3.5 Schema unui afisaj 7 segmente

Sistemul de şapte segmente este conceput pentru numere, nu şi pentru litere, de aceea unele litere
nu sunt compatibile şi sunt uşor de a fi confundate cu un număr, sau uneori nu se pot distinge.

7
În următorul tabel sunt date cifrelor de la 0 la 9:

Tabel 3.2 Codurile pentru reprezentarea cifrelor de la 0 la 9

Fig 3.6 Simulare in Proteus a circuitului

8
 Senzor ultrasonic

Senzorul ultrasonic HC-SR04 este un dispozitiv care poate măsură distanţă până la un obiect
utilizând ultrasunete.Măsoară distanţă trimiţând o undă, la o frecvenţa specifică, către un obiect
după care aştepta că acea undă să se întoarcă din obiectul respectiv.

Având în vedere că sunetul traversează prin aer cu o viteză de aproape 344 m/s , poţi calcula
distanţă pe care undă o străbate cu ajutorul formulei:

Această formulă include drumul de la senzor la obiect şi respectiv drumul de la obiect la senzor
Cazurile în care senzorul nu reuşeşte să detecteze un obiect:
 atunci când obiectul are o formă ce poate transmite undă departe de senzor;
 atunci când obiectele sunt prea mici pentru a putea trimite undă înapoi către senzor.

Acest senzor este unul dintre cei mai populari şi uşor de utilizat senzori de distanţă. Este
compatibil cu Arduino şi prezintă câteva avantaje faţă de senzorii de distanţă analogici:

 necesită doar pini I/O digitali,


 are imunitate mai mare la zgomot.

9

Fig 3.7 Senzorul ultrasonic HC-SR04


 Comanda motorului de curent continuu

Pentru realizarea acestui sistem de actionare tip ascensor am utilizat un motor de curent
continuu care este conectat la placa arduino prin intermediul unui circuit integrat L293D.

Acest circuit integrat (motor driver chip) se foloseşte atunci când avem un consumator de
tensiune/curent/putere mai mare decât suportă circuitul Arduino. Din specificaţiile
microcontrolerului se poate observa că la conectarea unui LED, difuzor, bec, este necesar câţiva
zeci de miliamperi şi o tensiune de 5V , în timp ce un motor consumă de la sute de miliamperi în
sus şi necesită o tensiune de 12V + .

Acest integrat poate fi utilizat pentru:

 Motoare pas cu pas


 Motoare de curent continuu

Acest integrat este folosit pentru a oferi un curent bidirectional de pana la 1A si tensiuni de la
4.5V la 36V.

10
Fig 3.8 Configuraţia şi tipul pinilor

Tabel 3.3 Semnificatia fiecarui pin

PIN TYPE DESCRIPTION

NAME NO.
1,2EN 1 I Enable driver channels 1 and 2(active high
input)

<1:4>A 2,7,10,15 I Driver inputs, non-inverting

<1:4>Y 3,6,11,14 O Driver outputs

GROUN 4,5,12,13 --- Device ground


D

Vcc2 8 --- Power Vcc for drivers 4.5V-36V

3,4EN 9 I Enable driver channels 3 and 4 (active high


input)

11
Vcc1 16 5V supply

Circuitul L293D reprezinta o punte H dubla care permite motorului de curent continuu sa
ruleze inainte si inapoi.

Puntea H are numele derivat de la modul obişnuit de desenare a circuitului. Aceasta este
singura cale de tip solid state de a comanda motorul în ambele direcţii.
Acestea pot fi construite din:
 Component discrete
 Tranzistoare bipolare
 Tranzistoare MOS

Avantajele folosirii circuitelor integrate specializate cu punte H:

 simplitatea intregului circuit si a putinelor componente externe, are ca efect


micsorarea intregului cablaj si poate fi folosit in spatii inguste. Desigur aceasta
micsorare restrictioneaza folosirea unor puteri mari in cadrul puntii H. Aceste circuite
integrate sunt limitate in tensiune (de regula mai mult de 55V-60V , la un curent de
3A RMS) si este maximul puterii dezvoltate cu circuite integrate. Trecerea curentului
prin aceasta punte determina si disiparea puterii care aduce incalzirea jonctiunii.
 unele integreaza si partea de protectie logica, asigura conversia semnalelor TTL intr-
un cuvant contin partea logica si partea de putere.

Dezavantajele folosirii circuitelor integrate cu punte H:

 limitarea puterii datorata tipului de tranzistor indiferente ca este mosfet sau bipolar folosi;
 costul ridicat;
 pierderile de putere pot duce la scaderea eficientei intregului circuit.

12
Fig 3.9 Exemplu de punte h cu tranzistoare MOSFET

3.2 Descrierea realizarii sistemului tip ascensor proiectat

Schema bloc a sistemului de comanda tip ascensor este urmatoarea:

13
Fig 3.9 Schema montajului pentru comanda unui sistem tip ascensor

1- afisaj 7 segmente cu catodul comun


2- senzor ultrasonic HC-SR04
3- motor pas cu pas
4- motor de curent continuu
5- rezistoare
6- registru de deplasare 74HC595
7- arduino mega
8- circuit integrat L293D
9- modul A4988 pentru comanda motorului pas cu pas

Acest proiect de diploma are rolul de a prezenta modul de realizare a unui sistem tip
ascensor cu comanda electronica.

14
Fig 3.10 Diferite etape ale proiectului

Ascensorul este prevazut cu 3 nivele si are 110 cm in inaltime, avand 45 cm in lungime si


respective 25 cm in latime.
Cabina ascensorului are 25 de cm in inaltime si 20 de cm in lungime si latime.Pe cabina
ascensorului am montat un dispozitiv, utilizat la o imprimanta, ce utilizeaza un motor de curent
continuu care are montat pe axul ei o curea care pune in miscare usa ascensorului.

Cabina si peretii casei liftului sunt formati dintr-un policarbonat solid de 1mm.

15
Fig 3.11 Cabina ascensorului

Principiul de functionare

Componentele au fost conectate la placa Arduino Mega in felul urmator:

 motorul pas cu pas a fost conectat prin intermediul driverului A4988, acesta este conectat
la 5V de la placa si 19V pentru a putea comanda motorul,conexiunea intre driver si placa
arduino s-a realizat prin intermediul a 3 pini digitali;
 motorul de curent continuu este conectat la placa prin 2 pini digitali;
 butoanele sunt conectate la 5V , GND si la placa arduino cu cate un pin digital;

16
 senzorul ultrasonic este conectat la placa prin intermediul a 2 pini digitali si este conectat
la tensiunea de 5V si GND ;
 fiecare afisaj 7 segmente este conectat la placa arduino, prin intermediul unui registru de
deplasare 74HC595, care reduce numarul pinilor de la 7 la doar 3 pini.

Inainte de realizarea circuitului, fiecare componenta a fost testata pe un breadboard pentru a


garanta buna functionare a sistemului.

Fig 3.12 Testarea senzorului ultrasonic impreuna cu un afisaj 7 segmente


Senzorul ultrasonic este montat deasupra cabinei si are rolul de a masura distanta in
centimetri care se afla intre el si cabina. In functie de senzor, microcontrollerul comanda fiecare
display sa arate etajul la care se afla cabina.

17
Fig 3.13 Senzorul ultrasonic montat deasupra cabinei

18
Fig 3.14 Testarea motorului pas cu pas impreuna cu driver-ul A4988

Motorul pas cu pas este conectat la driver-ul A4988 cu pinii MS1, MS2, MS3 la
tensiunea de 5V ceea ce inseamna ca merge in regim “sixteenth” de pasi.
Fiind conectat in acest fel am realist marirea numarului de pasi de la 200 la 3200 pe revolutie
ceea ce ofera o miscare mai usoara a motorului atunci cand este comandat.

19
Fig 3.15 Testarea afisajului 7 segmente prin intermediul registrului 74HC595

Fig 3.16 Realizarea conexiunilor

20
Capitolul 4
Realizarea software a sistemului tip ascensor cu comanda
electronica

Cap 4.1 Setarea pinilor

Mediul integrat de dezvoltare (IDE) Arduino este destinat scrierii programelor ce pot fi
incărcate pe platformele fizice Arduino. Interfața este scrisă in Java și mediul de programare
folosește limbaje de programare de tip open source precum Processing, avr-gcc.
Pentru inceput se declara variabile egale cu pini conectati la placa Arduino. Pentru acest
proiect de licenta am utilizat pinii in felul urmator:

Fig 4.1 Declararea pinilor

21
In aceasta etapa am declarat variabilele buttonState, buttonState1, buttonState2,
buttonState3 starile prin care trec butoanele.Avand in vedere ca utilizez un butoane “push”
acestea pastreaza conexiunea doar atunci cand butonul este apasat.
Pentru a putea utiliza butoanele in acest proiect, se va tine cont de momentul in care un buton isi
schimba starea din LOW in HIGH.

 Void setup()

Aceasta functie este utilizata pentru a initializa variabile, a configure pini sau a utiliza
librarii. Aceasta setare va functiona o singura data dupa fiecare pornire sau resetare a placii
Arduino.

Fig 4.2 Configurarea pinilor

22
 Programarea motorului pas cu pas

Avand in vedere ca motorul pas cu pas are pinii MS1, MS2, MS3 conectati direct la sursa
de 5V de la placa Arduino acest lucru face ca motorul sa se deplaseze 3200 de pasi pe revolutie.
Pentru programarea motorului pas cu pas am declarat functiile up() si down() pe care le apelez
in momentul in care sunt apasate butoanele.

Fig 4.3 Declararea functiilor pentru comanda motorului

23
In urma testarilor successive s-a ajuns la concluzia ca pentru ca motorul sa urce cabina 25
cm motorul trebuie sa parcurga 40000 de pasi.

In codul de mai sus sunt reprezentate


 Pinul 4 reprezinta directia in care se invarte motorul.
 Pinul 5 pinul asociat pasilor pe care le face motorul

4.2 Programul final al sistemului tip ascensor cu comanda electronica

In functia void loop(), ce reprezinta functia principala este realizata functionarea ascensorului
dupa cum urmeaza:
 variabilele buttonState, buttonState1, buttonState2 buttonState3 retin valorile butoanelor
de la parter, etajul1, etajul2 si respective etajul3;
 se creeaza cate o conditie if pentru comanda fiecarui buton;
 daca butonul de la etajul 3 este apasat, variabila butonState se modifica din LOW in
HIGH si este rulat codul din interiorul conditiei if:

Fig 4.4 Codul pentru ca motorul sa urce cabina la etajul 3

In interiorul conditiei if se afla o bucla while cu conditia (i<4) Cat timp i<4 se va executa
codul din interiorul buclei while prin care se apeleaza functia up() astfel incat, motorul pas cu
pas, urca cabina pana cand aceasta va ajunge la etajul3 si deci variabila i=4.

24
Cand i=4, conditia i<4 nu mai este indeplinita si astfel se executa functia, din afara buclei
while, ce va deschide usa va astepta 2 secunde si o va inchide :

Fig 4.4 Functiile ce realizeaza miscarea usii

Acelasi principiu se realiezeaza si atunci cand ascensorul este chemat la etajul 2,1 sau
parter:

25
26
Atunci cand cabina se misca, senzorul masoara distanta intre el si cabina astfel incat sa se
afiseaze pe fiecare display etajul in care se afla cabina:

27
Pinul trig va trimite un semnal catre cabina. Acesta va
ricosa catre pin echo care va receptiona acel semnal.

Timpul in care semnalul ajunge de la trig la echo se


masoara in centimetri.

Daca distanta se afla intre 0 si 25 ,se va executa functia on3().

Daca distanta se afla intre 26 si 51 ,se va executa functia on2().

Daca distanta se afla intre 52 si 77 ,se


va executa functia on1().

In caz contrar, se va executa functia


on0().

28
Functiile on0(), on1(), on2() si on3() vor afisa pe toate afisajele 7 segmente valoarea:

 0-pentru parter
 1-pentru etajul 1
 2-pentru etajul 2
 3-pentru etajul 3

29

S-ar putea să vă placă și