Sunteți pe pagina 1din 13

NUME PRENUME: Pop Mircea-Stefan & Man Mihai

Comanda Unei Masini de Spalat


grupa 30217/2
ÎNDRUMĂTOR: ING. DIANA SANDRU

3/20/2023
Contents
1 Specificații...............................................................................................................................3
2 Proiectare.................................................................................................................................4
2.1 Schema Bloc........................................................................................................................4
2.2 Unitatea de Control și Unitatea de Execuție........................................................................4
1.2.1 Maparea intrărilor și ieșirilor cutiei mari pe cele două componente UC și UE...............5
1.2.2 Determinarea resurselor (UE).........................................................................................5
2.2.3 Schema bloc a primei descompuneri...........................................................................7
2.2.4 Reprezentarea UC prin diagrama de stări (organigrama)............................................8
2.2.5 Schema de detaliu a proiectului...................................................................................9
3 Manual de utilizare și întreținere.............................................................................................9
4 Justificarea soluției alese..........................................................................................................9
5 Posibilități de dezvoltări ulterioare..........................................................................................9
6 Bibliografie..............................................................................................................................9

1|Page
COMANDA UNDEI MASINI DE SPALAT
1 Specificații

Automat simplu pentru comanda unei maşini de spălat, cu un mod manual şi câteva moduri
automate.

Iniţial automatul este într-o stare inactivă, cu uşa maşinii de spălat deschisă. Utilizatorul
poate seta parametrii de funcţionare manual (modul manual) sau poate selecta unul din modurile
pre-programate.

În modul manual, se pot seta: temperatura (30°C, 40°C, 60°C sau 90°C); viteza (800,
1000, 1200 rotaţii/minut); selectare / anulare prespălare, clătire suplimentară. Timpul rulării
programului depinde de temperatura selectată (apa vine cu o temperatură de 15°C şi se încălzeşte
1°C în 2 secunde) şi de funcţia selectată (prespălare – aceeaşi metodă ca şi spălarea principală,
clătire suplimentară – clătire de două ori; aceste funcţii sunt descrise în detaliu mai jos).

Modurile automate selectabile sunt următoarele:

1. Spălare rapidă - 30°C, viteza de 1200, fără prespălare, fără clătire suplimentară

2. Cămăşi - 60°C, viteza de 800, fără prespălare, fără clătire suplimentară

3. Culori închise - 40°C, viteza de 1000, fără prespălare, clătire suplimentară

4. Rufe murdare - 40°C, viteza de 1000, cu prespălare, fără clătire suplimentară

5. Antialergic - 90°C, viteza 1200, fără prespălare, clătire suplimentară

Fiecare program conţine etapele următoare: spălare principală (se alimentează maşina cu apă, se
încălzeşte apa, se roteşte cu o viteză de 60 rotaţii / minut timp de 20 minute, se evacuează apa),
clătire (se alimentează cu apă, se roteşte cu o viteză de 120 rotaţii / minut timp de 10 minute, se
evacuează apa) şi centrifugare (se roteşte cu viteza selectată pentru 10 minute). Dacă este
selectată prespălarea, are aceeaşi metodă ca şi la spălarea principală, cu excepţia faptului că se
roteşte pentru 10 minute.

Uşa se blochează după pornirea programului şi se deschide cu un minut după terminarea


programului. Maşina nu porneşte cu uşa deschisă.

În timp ce se selectează modul dorit (manual sau unul din modurile automate) se afişează durata
programului şi după ce se porneşte este afişat timpul rămas (afişarea timpului se realizează pe
afişoare cu 7 segmente).

2|Page
2 Proiectare

2.1 Schema Bloc

Figura 1 Cutia neagra a sistemului cu intrările și ieșirile stabilite

Pentru realizarea black-box- ului comenzii masini de spalat am ales urmatoarele intrari:
Resetul – pentru a aduce automatul in stare initiala, facand clear elementelor care au nevoie din
constructie (ex. Numaratoare, Unitati aritmetico- logice etc.)
Start – Este folosit ca un enable pentru pornirea programului ales. De asemenea, daca cerintele
pentru pornirea programului nu sunt indeplinite, acesta va ramane in aceasi stare.
Usa deschisa/inchisa – este un swich prin care semnalizam starea usii inchisa sau deschisa.
Manual/Automat – este un swich de pe care selecectam ce mod vrem sa alegem pentru spalare.
Selectare Program Automat – aceasta comanda este formata din 3 swichuri, de pe acestea
selectam 1 dintre cele 5 programe prestabilite de catre producator.
Selectare Program Manual – comanda aceasta este formata din 4 butoane, unul pentru
selectarea sau deselectarea pre-spalare, unul pentru clatire extra, unul pentru temperaturile puse
la dispozitie de catre producator si unul pentru rotatii.
Iar ca iesiri:
Timp program/Timp ramas – aceste semnal va afisa initial (dupa selectarea programului)
timpul lui, iar dupa apasarea butonului start, cat timp a mai ramas pana la terminarea
programului
Terminare Program – un led care semnalizeaza suplimentar terminarea programului.
Usa Deschisa/Inchisa – un led care semnalizea deschiderea usii dupa 1 min. de la terminarea
programului.

3|Page
2.2 Unitatea de Control și Unitatea de Execuție

Cutia neagră a sistemului trebuie descompusă mai departe pentru a putea găsi componente
implementabile. Am facut o descompunere top-down a problemei pana cand ajungem la circuite
cunoscute, iar apoi vom implementa bottom-up.

Prima descompunere a oricărui sistem este una în care vom diferenția între logica de
control din sistem și resursele sistemului. Logica de control este reprezentată de Unitatea de
Control iar resursele sunt reprezentate de Unitatea de Execuție.

1.2.1 Maparea intrărilor și ieșirilor cutiei mari pe cele două componente UC și UE.

Figura 2Maparea intrărilor și ieșisilor cutiei negre pe intrările și ieșirile componentelor din prima descompunere

Putem împărți atât intrările cât și ieșirile în 2 categorii: de date si de control. Aceasta
separare este esențială la început.
● intrări de date: valori pentru diferite lucruri(cost bilet, distanța de parcurs,nr pin card,
număr de bilete etc).
● Intrari de control: buton de confirmare, buton de selectare a unui program, buton de
anulare etc.

● Ieșiri de date: valori de afișat pentru utilizator (timpul rămas dintr-un program, restul
datorat, costul calculat al unui bilet etc.)
● Iesiri de control: semnale de avertizare sau atentionare a utilizatorului, prin care noi
putem sa controlam și indrumam utilizatorul prin funcționarea sistemului.(leduri, semnal
sonor)

4|Page
1.2.2 Determinarea resurselor (UE)
RESURSE:
1. Memorie ROM temperatura 3 bits
Ca intare, in memorii avem 3 swich-uri(vecor pe 3 beti), ca “adresa”, iar ca output,
avem un vector de 6 bits care, in functie de “adresa”, trasmite numerele 30,40,60,90(in binar)
care reprezinta temeperaturile in °C, la care functioneaza aottomatul. Output-ul v-a fi folosit
ulterior ca intrare intr-o alta componenta care va calcula durata programului.

2. Memorie ROM rotatii 2 bits

Ca intare avem un vecor de 2 biti(swich-uri) ca si adresa pentru memoria ROM, in


functie de selectii, memoria va transmite pe output una dintre cele 3 valori:
- pentru valoarea “00” automatul asteapta
- pentru valoarea “01” oputul va fii 800 in binar.
- pentru valoarea “10” oputul va fii 1000 in binar.
- pentru valoarea “11” oputul va fii 1200 in binar.

3. Numarator incalzire apa 7 bits.

5|Page
Aceasta componenta functioneaza ca un clock, in functie de intrarile date, in interiorul ei se
calculeaza timpul de incalzire al apei, iar cand aceasta s-a incalzit, outputul devine ‘1’ logic.

4.ALU calculare timp-program.

Ca intrari componenta are enable/desable prespalare, clatire suplimentara si un enable.


In functie de primele 2 intrari, outputul “ timp total” devine 40,50 sau 60 de min.

5.Numarator timp ramas program

Aceasta componenta are ca intrare un semnal pe 8 biti care este numarul initial de la care incepe
numararea inversa.

6.7-segment afisor

Pentru afisarea duratii programului/ a timpului ramas din program avem nevoie ce o
componenta care traduce numarul de minute in 7-segment display. Aceasta primeste ca input un
semnal pe 8 biti. In interiorul componentei, semnalul se imparte in doua, un semnal reprezentand
numarul zecilor de minute celalt restul. Pentru a puutea fi afisate concomitent pe afisoare se va
realiza o iluzie optica: ochiul uman are rata de refresh in jur de 15 ns. Pe afisaore va aparea, pe
frontul ascendent al clock-ului va fi afisat numarul zecilor iar pe front descendent al 2 lea semal.

6|Page
7. Numarator 1 min usa inchisa.

Ca intrare avem “semnal Terminare program”, care este de tip std_logic, un semnal care
devine ‘1’ logic atunci cand programul de spalat se termina (numaratorul invers ajunge la 0),
functionand ca un enable pentru numarator. Dupa 60 se sec. semnalul de tip std_Logic “semnal
usa inchisa usa deschisa” se transforma in ‘1’ logic, acesta semnalizand printr un semnal led
deschiderea usii.

8.Divizor frecventa.

Clock-ul intern al placii pe care vom simula automatul este de 100Ghz avem nevoie de
un Divizor care primeste un clock la frecventa de 100ghz si o transforma la una de 1Ghz.Avem
nevoie de acesta componenta pentru a numara o sec. un min. real.

7|Page
2.2.1 schema bloc a primei descompuneri

Figura 3 Schema Bloc cu legăturile dintre UC și UE mapate

NOTA: E de menționat faptul că CLK are o frecvență mai mare la intrare


(100MHz), și ar trebui să fie un divizor de frecvență în cadrul UE ca o alta
resursă pentru a genera perioada de 1 min pentru cele 2 numaratoare.

2.2.2 Reprezentarea UC prin diagrama de stări (organigrama)

Diagrama de stări nu este un flow-chart, ci reprezintă partea de control, partea


decizională din orice algoritm, și ea poate fi apoi implementată direct în VHDL dacă e facută
corect.
 Stările sunt reprezentate prin . O stare reprezinta un moment de timp (o perioada).

 Deciziile luate în fiecare stare sunt reprezentate prin romb.

 Ieșirile generate în fiecare stare sunt reprezentate prin . În interiorul dreptunghiului se


enumera ieșirile care sunt adevărate în acel moment.

8|Page
Figura 4 Organigrama unității de control
9|Page
2.2.3 Schema de detaliu a proiectul

Figura 5 Schema de detalii a proiectului cpnform implementării din Logisim

3 Manual de utilizare și întreținere


Intiala autoamatul este intr o stare de asteptare. Cu ajutorul butonului „Manual/Automat”
vom selecta modul in care vrem sa spalam rufele. Pentru 0 logic reprezinta modul
„ automat” iar pentru 1 logic, modul „Manual”. In functie de modul de spalare selectat avem
fie 5 moduri automate, pre stabilte de producator sau un mod costumizabil, din care
selectam: pre spalare , turatie, temperatura si clatirea suplimetara. Pentru modul aututomat
programele sunt:

1. Spălare rapidă - 30°C, viteza de 1200, fără prespălare, fără clătire suplimentară

2. Cămăşi - 60°C, viteza de 800, fără prespălare, fără clătire suplimentară

3. Culori închise - 40°C, viteza de 1000, fără prespălare, clătire suplimentară

4. Rufe murdare - 40°C, viteza de 1000, cu prespălare, fără clătire suplimentară

5. Antialergic - 90°C, viteza 1200, fără prespălare, clătire suplimentară


La Modul manual prin cele 6 butoane/swichuri selectam daca dorim (1 logic) sau nu ( 0
logic) pre-spalare/clatire suplimentara, iar de pe celalte 4 swichuri vom selecta temeratura(30°C,
40°C, 60°C sau 90°C) si rotatiile( 800 1000 si 1200).

10 | P a g e
Dupa selectarea programului, pe afisoarele 7- segment va fi afisata durata programului in
ore/minute.
Dupa pornirea programului, pe afisoare va fi asfisat programul ramas. Trebuie specificat
ca usa va ramane inchisa inca 1 min. dupa terminarea programului.
Automatul nu va incepe programul daca usa nu este inchisa, inchide usii se semnalizeaza
printr un swich.

4 Justificarea soluției aleseasa


Am ales aceasta metoda de implementare pentru ca, ni se pare ca este cea mai eficienta si
cea mai simpla metoda in care puteam sa rezolvam cerinta.

5 Posibilități de dezvoltări ulterioare


Unele dintre inbunatatirile pe carele am remarcat in decursul realizarii produsul sunt:
-afisarea fiecarui stadiu in care se afla spalarea rufelor cu ajutorului unui alt 7 segment display
-un buton care sa indice pornirea sau oprirea functionalitatii automatului
- buton de pauza in timpul programului.
6 Exemple utilizare

6 Bibliografie
https://www.codeproject.com/Tips/444385/Frequency-Divider-with-VHDL-2
- Pentru divizorul de frecventa
https://surf-vhdl.com/how-to-implement-division-in-vhdl/
- Ajutor pentru impartirea sumei de minute care ajungea la decodificatorul si impatirea ei
in ore si minute.
https://didatec.sharepoint.com/sites/PSN2023-SeriaB/_layouts/15/stream.aspx?id=%2Fsites
%2FPSN2023-SeriaB%2FClass%20Materials%2FLucrari%20laborator%2FLucrarea
%206%20%28saptamana%2018.04.2023%20-%2021.04.2023%29%2FVideos
%2F3_Decodificator_Hex_la_7segmente.mp4&referrer=Teams.TEAMS-
ELECTRON&referrerScenario=teamsSdk-openFilePreview
https://www.electronicsforu.com/resources/7-segment-display-pinout-understanding
- Pentru intelegerea si implementare decodificatorului de la hexazecimal la 7-segment
display.
https://www.rapidtables.com/convert/number/decimal-to-binary.html

11 | P a g e
- Pentru transformarea numerelor din baza 10 in baza 2, in interiorul memoriilor dar si in
translatarea din hexa in 7 segment display.
https://app.diagrams.net/
- Pentru realizarea desenelor si ar organigramei.

12 | P a g e

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