Màquina Expenedora

31
Màquina expenedora de productes Índex 1. Introducció al projecte Tècnic 1.1 Objectius del treball........................................................................ 3 1.2 Inquietuds i motivacions personals................................................. 3 1.3 Introducció al treball....................................................................... 3 1.4 Abans de començar ......................................................................... 4 2. Construcció 2.1 Mecànica 2.1.1 Estructura metàl·lica ....................................................... 5 2.1.2 Discriminador de monedes...............................................7 2.1.3 Tubs de recorregut i d’emmagatzematge......................... 8 2.1.4 Actuadors electromecànics (timbres)..............................10 2.1.5 Guies de metacrilat......................................................... 11 2.1.6 motors de productes amb finals de carrera..................... 12 2.1.7 dipòsit de productes........................................................ 13 2.1.8 Ranura d’inserció............................................................ 14 2.2 Electrònica 2.2.1 PIC, el cervell................................................................. 15 2.2.2 Codi font ........................................................................ 16 2.2.3 Programació del microcontrolador ................................. 17 2.2.4 Mòdul del pic.................................................................. 18 2.2.5 Parell fotodíode-fototransistor ........................................ 19 2.2.6 Motors, electrònica......................................................... 19 2.2.7 Mòdul de relés i electrònica dels actuadors.................... 20 2.2.8 Testejadors dels actuadors.............................................. 21 2.2.9 Pantalla........................................................................... 21 2.10 Font d’alimentació.......................................................... 22 1

description

Treball de Recerca del Batxillerat

Transcript of Màquina Expenedora

Page 1: Màquina Expenedora

Màquina expenedora de productes

Índex

1. Introducció al projecte Tècnic

1.1 Objectius del treball........................................................................ 3

1.2 Inquietuds i motivacions personals................................................. 3

1.3 Introducció al treball....................................................................... 3

1.4 Abans de començar......................................................................... 4

2. Construcció

2.1 Mecànica

2.1.1 Estructura metàl·lica ....................................................... 5

2.1.2 Discriminador de monedes...............................................7

2.1.3 Tubs de recorregut i d’emmagatzematge......................... 8

2.1.4 Actuadors electromecànics (timbres)..............................10

2.1.5 Guies de metacrilat......................................................... 11

2.1.6 motors de productes amb finals de carrera..................... 12

2.1.7 dipòsit de productes........................................................ 13

2.1.8 Ranura d’inserció............................................................ 14

2.2 Electrònica

2.2.1 PIC, el cervell................................................................. 15

2.2.2 Codi font ........................................................................ 16

2.2.3 Programació del microcontrolador................................. 17

2.2.4 Mòdul del pic.................................................................. 18

2.2.5 Parell fotodíode-fototransistor........................................ 19

2.2.6 Motors, electrònica......................................................... 19

2.2.7 Mòdul de relés i electrònica dels actuadors.................... 20

2.2.8 Testejadors dels actuadors.............................................. 21

2.2.9 Pantalla........................................................................... 21

2.10 Font d’alimentació.......................................................... 22

1

Page 2: Màquina Expenedora

Màquina expenedora de productes

3. Recerca i preu del material .............................................................................22

4. Conclusió i valoració personal........................................................................23

5. Propostes de millora........................................................................................23

6. Programes utilitzats.........................................................................................23

7. Agraïments......................................................................................................24

8. Bibliografia.....................................................................................................24

9. Annexos

9.1 Codi font del programa “la maquina expenedora”...........................25

2

Page 3: Màquina Expenedora

Màquina expenedora de productes

1. Introducció al projecte tècnic

1.1 Objectius del treball

L’objectiu del projecte es arribar a construir una màquina expenedora de productes que

faci pràcticament les funcions principals d’una comercial, però evidentment amb un cost

molt més reduït i aprofitant tant material reciclat com sigui possible. Crec que aquest

treball suposa un gran repte per mi, te aspectes relacionats amb la programació i

l’electrònica i tinc intenció de dedicar-me en cos i anima a acabar aquest projecte.

1.2 Inquietuds i motivacions personals

Des de sempre he volgut crear aquells programes que veia a l’ordinador.

Fa uns quants anys vaig començar a documentar-me sobre llenguatges de programació.

En comptes d’iniciar-me a picar codi en un llenguatge mes proper al humà (d’alt nivell)

vaig començar per un una mica més intricat, C, un llenguatge de nivell mitja.

El llibre amb el que vaig començar s’anomena Programación estructurada en C, de

l’editorial Prentice Hall.

Aquesta passió per la programació i els aspectes informàtics i la meva atracció cap a la

tecnologia m’han fet decidir crear un projecte que inclogui la programació com a part

fonamental, en aquest cas, en el control.

1.3 Introducció al treball

El treball es divideix en dues parts, una mecànica formada pel conjunt d’elements físics

i d’actuació (tornar monedes, donar productes) , i una electrònica encarregada del

control i l’alimentació.

Com veureu més endavant aquest dossier no és una memòria detallada de la construcció

sinó més aviat un apropament a tots els aspectes de la màquina.

Per acompanyar a aquest dossier tinc realitzades també simulacions del funcionament

mecànic i elèctric utilitzant diferents programes (Proteus, Isis, Ares).

3

Page 4: Màquina Expenedora

Màquina expenedora de productes

1.4 Abans de començar

Cal remarcar que aquest projecte no s’ha fet seguint la construcció d’un model existent,

sinó que ha estat dissenyat a partir de l’observació del funcionament d’un.

Primer fem un recompte inicial de quants elements componen la màquina.

Una vegada sapiguem el nombre exacte i la funció de cadascun (Separar,

emmagatzemar, tornar el canvi) passem a analitzar-los i construir-los.

El mètode a seguir es pot veure en aquest diagrama (fig.1).

Fig.1

4

Page 5: Màquina Expenedora

Màquina expenedora de productes

2. Construcció

Un cop analitzat cada element i fet el disseny podem començar la construcció.

2.1 Mecànica

2.1.1 Estructura metàl·lica

L’esquelet de la màquina esta fet integrament amb planxes de metall foradades, unides

entre si mitjançant cargols, femelles i algun petit escaire foradat. L’estructura final (fig.

3) va partir d’una més petita (fig. 2) que va anar creixent a mesura que avançava la

construcció i sortien nous reptes a suplir.

Aquesta estructura s’encarrega de suportar tota la resta de components que formen la

màquina, en un conjunt ordenat de forma funcional 1

Fig. 2 (el abans i el després) Fig. 3

1 Això es, de forma que l’ordre dels components facilitin el correcte funcionament de la màquina, per exemple, deixant espais entre els actuadors (encarregats de tornar el canvi) i els tubs d’emmagatzematge, de forma que un element no obstaculitzi a l’altre.

5

Page 6: Màquina Expenedora

Màquina expenedora de productes

Des de el principi, tenia clar que es necessitaria un bloc capaç d’integrar la resta

d’elements, i que aquest hauria d’esser rígid i resistent, per això vaig optar per l’acer, a

més, així aprofitava el material del taller d’altres anys.

Per a la construcció vaig utilitzar 5 peces de metall rectangulars (fig. 4) i, acollant-les

amb els corresponents cargols i femelles, va sortir el primer bloc capaç de mantenir, de

moment, els dos o tres primers elements de la màquina, la qual es mantindria així, fins

al moment de l’adició de la resta de components, arribant poc a poc a l’estructura final

(fig. 3, pàg. anterior).

Femella

Fig. 4, peça X cargol de cap cilíndric

Vaig haver d’augmentar un “pis” per tal d’integrar per una banda, la font d’alimentació i

la part de control, i per l’altra, la cambra on es dipositarà el canvi i els productes.

Posteriorment vaig obrir un espai entre la base de sota i els plafons del damunt amb uns

petits escaires foradats per tal de deixar pas entre els actuadors i els tubs de recorregut.

Els últims canvis van ser, per un costat, l’adició d’un plafó abatible gracies a unes

frontisses que serveix per integrar els motors i els dipòsits que donin els productes, i per

l’altra, una peça rectangular amb dos abraçadores al costat que serveix per a què tant les

monedes com els productes rebotin i acabin al mateix lloc. S’aprofundirà en aquests

elements més endavant.1

1 Per a una referència més gràfica de com queden integrats aquests element a l’estructura metàl·lica podeu veure la fig.17 a la pàg. 13.

6

Page 7: Màquina Expenedora

Màquina expenedora de productes

2.1.2 Discriminador de monedes

Necessitem separar cada tipus de moneda que entra a la màquina per posteriorment

comptar i emmagatzemar els diners.

D’aquesta tasca s’encarrega el discriminador, un escaire de PVC foradat amb el

diàmetre de cada moneda de forma gradual ascendent1 (Fig. 5).

2 €

0 . 5 0 €

1 €

0 . 2 0 €

0 . 0 5 €

0 . 1 0 €

Al poc temps de començar el disseny de la maquina va sortir el repte de discriminar les

monedes.

Diferents possibilitats em sortien del cap, de forma magnètica, selecció per pes, per

mida; però necessitava una forma que estigues dintre de les possibilitats de construcció i

que fos poc voluminosa. Vaig estar algun temps ideant amb ajuda del tutor la forma de

fer-ho, fins que al final vam acabar per tenir la idea del escaire foradat.

La construcció va ser laboriosa, com la resta del treball. Vaig tallar de forma rectangular

un tros de plàstic sobrant d’altres projectes del taller. Amb la plegadora vaig doblegar el

tros de plàstic per la meitat, de forma que es formava un escaire.

Les mides dels forats les vaig fer prenent de model el diàmetre de les diferents monedes

existents, i el tall amb una petita Dremel amb eina fresadora de tipus diamant.

1 Es a dir, de més petit a més gran.

7

Fig. 5

Page 8: Màquina Expenedora

Màquina expenedora de productes

Aquest escaire s’instal·la a la part mes alta de l’estructura metàl·lica amb una petita

inclinació cap a baix. (fig. 6).

El funcionament es senzill, al ficar una moneda, aquesta baixa pel discriminador fins

que cau al seu dipòsit. L´escaire no forma un angle recte sinó que està a un angle

inferior, d´uns 85º aproximadament per tal de facilitar que les monedes rellisquin sense

caure.

2.1.3 Tubs de recorregut i d’emmagatzematge

Els tubs de recorregut s’encarreguen de portar les monedes del discriminador cap als

tubs d’emmagatzematge, i aquests, com el seu nom indica, s’encarreguen d’acumular-

les. Són tubs de metacrilat i estan posats de forma que omplin tota l’amplada de la

màquina (fig. 7)

8

Fig. 6

Fig. 7

Page 9: Màquina Expenedora

Màquina expenedora de productes

Vaig comprar dos tubs grans de metacrilat, un amb l’amplada suficient per a les

monedes de 5 a 20 cèntims i l’altre des dels 50 cèntims fins als 2 euros.

Els tubs d’emmagatzematge els vaig tallar de forma que arribessin des de la part mes

alta de l’ultima planxa fins al fons..

Els tubs de recorregut els vaig tallar amb la mesura adient per a que poguessin arribar

fins als d’emmagatzematge. Vaig haver de tallar seguint un angle en una de les dues

parts del tub per tal de que quedessin de forma rasant just a sota del discriminador (fig.

8). A més una petita distància hauria de separar els tubs per tal de poder ficar-hi

posteriorment uns fotodíodes, el muntatge dels quals explicaré mes endavant.

2 €

0 . 5 0 €

1 €

0 . 2 0 €

0 . 0 5 €

0 . 1 0 €

M i d a d e l ' u l t i m a p l a n x a

F o t o d í o d e s

9

Mateix angle~= 45º

Fig. 8

Page 10: Màquina Expenedora

Màquina expenedora de productes

2.1.4 Actuadors electromecànics (timbres)

Els actuadors electromecànics es componen d’un solenoide1 (fig. 9) travessats per una

tija 2.

Al alimentar el solenoide per cadascun del seus extrems produeix un camp

electromagnètic que fa desplaçar la tija. Aquest moviment d’anada i tornada

l’aprofitarem per retornar les diferents monedes.

Solenoideα (Fig. 9).

Aquest tipus d’inductors amb un nucli es poden trobar en infinitats de elements, tals

com vàlvules electròniques, timbres, etc. Vaig veure que em sortia més a compte

comprar els solenoides ensamblats en timbres, ja que el cost de la fabricació “casolana”

pràcticament era igual o superior, amb l’afegit de que els industrials ja venen totalment

muntats i acoblats a un suport.

Una vegada comprats els vaig desmuntar i li vaig treure les parts que no eren

necessàries.. Vaig tallar les arestes que em sobraven per tal de poder-les col·locar a la

part que em restava pel darrera de l’esquelet de metall, amb dos cargols per peça.

Per acabar vaig acollar un rectangle de cartó a la tija amb una junta de plàstic per que

empenti les monedes dels tubs d’emmagatzematge (fig. 10, pàg. següent).

1 Molla de material fèrric esmaltat.2 Cilindre de metall. Fotografia presa per Jef Harris, lliurada sota llicència creative commons

10

Page 11: Màquina Expenedora

Màquina expenedora de productes

L l e n ç a l a m o n e d a

C a p a l ' a l i m e n t a c i ó

2.1.5 Guies de metacrilat

Una vegada provats els actuadors vaig veure

que les monedes a vegades sortien en

direccions no desitjades, per això aconsellat

pel tutor, vaig construir unes guies que

conduirien la moneda de forma recta una

vegada engegat el inductor (fig. 11).

Amb plàstic sobrant d’altres anys vaig fer 3

rectangles per actuador i els vaig foradar.

11

Fig. 10

G u i e s

Fig.11

Page 12: Màquina Expenedora

Màquina expenedora de productes

dos més petits que anirien a cada costat del tub (fig. 12). i un que aniria just a sobre

d’aquest dos (fig. 13), fent així un petit canal, el qual vaig ajustar a la mida de les

monedes gracies a un nombre determinat de volanderes.

Fig. 12 Fig. 13

2.1.6 motors de productes amb finals de carrera

Tres motors amb pales, alimentats a cinc volts i amb els seus respectius finals de carrera

són els encarregats d’expendre els productes (fig.14 ).

Fig. 14

Els tres motors són reciclats de projectes d’altres anys i porten una reducció amb relació

de transmissió 1/27. Com que van encapsulats aprofitem les osques dels mòduls per tal

d’acollar els motors a la planxa abatible.

12

M o t o r D C 5 V

B a r r a d ' a c e r

O s q u e s p e r a n c l a r

C o n j u n t d ' e n g r a n a t g e s r e d u c t o r s

P a l a f o r a d a d a

Page 13: Màquina Expenedora

Màquina expenedora de productes

Per poder empènyer els productes necessitem instal·lar una pala al motor, la qual a més

s’encarrega de prémer el final de carrera a cada passada.

Les pales estan fetes amb trossos rectangulars de metall foradat. Els finals de carrera

també s’instal·len al mòdul de forma que toquin amb les pales.

2.1.7 dipòsit de productes

Uns dipòsits rectangulars amb una obertura s’encarreguen d’acumular els productes per

que els motors puguin expendre’ls, de forma semblant als tubs d’emmagatzematge

(fig.15)

Per a la construcció dels dipòsits he utilitzat plàstic sobrant d’altres anys. Vaig tallar un

rectangle de 18x15cm i vaig plegar l’amplada de 18 centímetres en 5 parts. Tres de 5 cm

i dos de 4, restant-me així per tant 2cm d’obertura.

13

Fig.15

Page 14: Màquina Expenedora

Màquina expenedora de productes

Fig.

16 : Conjunt de motors amb pales i dipòsits de productes.

2.1.8 Ranura d’inserció

L’últim element construït de la maquinà ha estat la ranura per a la inserció de monedes

(fig.17), fent així més confortable la tasca de ficar-les.

Fig.17

Per construir la ranura d’inserció vaig utilitzar un rectangle de metacrilat doblegat en

forma d’u i vaig fer-li una osca al costat on cauen les monedes.

Vaig fer dos forats a l’extrem i amb dos cargols el vaig acollar.

14

Page 15: Màquina Expenedora

Màquina expenedora de productes

2.2 Electrònica

2.2.1 PIC, el cervell

Promagable Intelligent Computer, o, en català, computador programable inteligent, es

un microcontrolador que funciona com un ordinador a petita escala.

Consta dels següents elements:

1. Memòria de lectura (rom): és la memòria del microchip on s’emmagatzema el

codi que donarà les instruccions a seguir.

El contingut de la memòria no pot variar en calent1.

2. Memòria d’accés aleatori (ram): és la memòria on s’emmagatzemen les

variables i els estats de les instruccions. A diferència de la rom aquesta si que

pot variar en calent.

3. Rellotge de procés (clock): un oscil·lador extern (en aquest cas un cristall de

quars) s’encarrega d’executar les instruccions seguint una freqüència (a més

freqüència menys temps d’execució per instrucció).

4. Conjunt d’entrades i sortides digitals i analògiques (inputs/outputs):

El pic consta d’un conjunt de “potes” que es poden assignar com entrades o

sortides, el PIC rep diversos estímuls a les entrades (si es digital només un 1 ó

0, depenent de la senyal) amb els quals seguint las instruccions del codi actua

per exemple donant diferents sortides o canviant el valor de les variables.

Fig.18β

1 Es a dir, quan està operatiu.β Fotografia presa per Acdx (sobrenom), lliurada sota llicencia creative commons.

15

Page 16: Màquina Expenedora

Màquina expenedora de productes

En aquest projecte el PIC es omnipresent, controla tots els processos amb les

instruccions preestablertes en la ROM, des de comptar les monedes i mostrar el valor

per pantalla fins a tornar el canvi.

He utilitzat un PIC model 18F452. El vaig escollir perquè necessitava un gran nombre

d’entrades i sortides , així com una gran quantitat de ram (a causa d’una funció del codi

que ocupa molta) i aquest model satisfeia la meva demanda.

2.2.2 Codi font

Com heu vist abans, el PIC per si mateix no te cap funció si no hi ha un programa a la

memòria que li doni instruccions. Aquestes instruccions s’emmagatzemen en un tipus

de codi anomenat “llenguatge màquina” (uns i ceros) que es l’únic que pot interpretar.

Com que per a un humà es pràcticament impossible fer un programa elaborat en aquest

codi s’utilitzen diferents tipus de llenguatges de programació, amb els quals una vegada

escrits els podem passar a llenguatge màquina mitjançant un compilador específic.

En aquest cas he utilitzat el que vaig aprendre l’any passat, en la optativa d´electrònica

de primer curs de batxillerat sobre programació de PICs, i el meu coneixement del

llenguatge “C” per elaborar el codi, compilar-lo i programar el microcontrolador.

L’escriptura del programa m’ha portat moltes hores de reflexió, així com modificacions

i proves en el PIC a la placa de proves (protoboard)1.

Per escriure i compilar el programa vaig utilitzar el software MikroC, en la seva versió

de demostració.

Als annexos podeu trobar el codi final amb comentaris detallats a cada instrucció, a més

en el diagrama de la pàgina següent podeu veure el funcionament de les instruccions del

codi i l’execució del PIC (fig.19).

1 Es tracta d’una placa on es poden construir prototips de circuits electrònics sense soldadura.

16

Page 17: Màquina Expenedora

Màquina expenedora de productes

Fig.19

2.2.3 Programació del microcontrolador

Per passar el codi una vegada compilat al PIC

vaig utilitzar un gravador del tipus JDM (fig.20)

que és dotació del centre i el programa IC-Prog.

El gravador es connecta a l’ordinador pel port

COM i amb el software de gravació es programa

el microcontrolador.

Fig.20

2.2.4 Mòdul del pic

17

Page 18: Màquina Expenedora

Màquina expenedora de productes

El pic i els elements passius adjacents van inserits en una placa REPRO, aquí podeu

veure totes les connexions del mòdul i les seves sortides (fig.21).

Fig.21

Els sòculs1 de 16 potes que es veuen són per inserir uns integrats denominats uln2003a

que es componen d’un parell de díodes en Darlington. S’utilitza per obrir o tancar

circuits donant un 1 lògic a l’entrada de cada parell de díodes. En aquest cas com podeu

veure els utilitzo per alimentar les bobines del mòdul de relés per un costat i els motors

per l’altre.

Totes les resistències que es veuen a la imatge són per evitar rebots en les entrades.

Es pot veure els espasins2 que controlen la pantalla a la dreta de la imatge.

L’oscil·lador com hem vist abans serveix per executar els programes de forma cíclica i

els condensadors regulen la senyal.

2.2.5 Parell fotodíode-fototransistor

1 En castellà “Zócalo”, son uns petit acoblaments amb espasins que serveixen per inserir circuits integrats.2 Pins de metall que serveixen per conectar un cable extern.

18

Page 19: Màquina Expenedora

Màquina expenedora de productes

Com hem vist a la part mecànica, en el pas entre tubs s’instal·len uns parells fotodíode-

fototransistor que fan de detectors de presència.

El circuit de forma simbòlica es aquest (fig.22)

Fig.22

Aquest circuit es l’encarregat de detectar les monedes. Quan hi ha una interrupció del

senyal entre el fotodíode i el fototransistor (quan cau la moneda) es produeix una sortida

d’1 lògic (5v) cap al PIC. Aquest, seguint les instruccions, comptabilitza la moneda i

ens mostra la quantitat. A més la quantitat queda emmagatzemada a la memòria per un

us posterior (demanar producte, tornar el canvi, etc).

2.2.6 Motors, electrònica

Com ja sabem, el microcontrolador s’encarrega d’accionar els motors. En aquest cas,

com en el de les bobines, utilitzem un uln2003a per evitar pujades en la intensitat del

corrent i rebots al PIC. Els finals de cursa indiquen al microcontrolador cada volta que

fa el motor per tal de donar la quantitat de productes correcte.

2.2.7 Mòdul de relés i electrònica dels actuadors

19

Page 20: Màquina Expenedora

Màquina expenedora de productes

Com els actuadors funcionen a 220 volts i el PIC funciona i dona sortides a 5V

necessitem uns relés que obrin i tanquin de forma independent els circuits.

Aquest mòdul en concret és un conjunt de 6 relés muntats en una placa REPRO (fig 23).

Fig.23

L’accionament de la bobina de cada relé esta controlat pel PIC mitjançant un uln2003a,

així evitem rebots i possibles pujades de corrent al microcontrolador.

Quan el pic dona una sortida de 5v (com ja sabem, un 1 lògic) s’obre el circuit

independent de 220V i l’actuador s’acciona, donant així la moneda adient en aquest cas.

2.2.8 Testejadors dels actuadors

20

Page 21: Màquina Expenedora

Màquina expenedora de productes

Un conjunt de polsadors

(fig.24) connectats per un

costat en paral·lel amb la

sortida de cada relé, i per

l’altra, al corrent altern,

serveixen tant per provar els

actuadors com per netejar de

canvi la màquina.

Fig.24

2.2.9 Pantalla

Una pantalla LCD de 20x4 caràcters (fig.25) controlada pel PIC s’encarrega de mostrar-

nos la informació de la venda.

Fig.25 (vistu es el meu sobrenom)

La pantalla te diferents connexions, 4 van al pic i s’encarreguen d’escriure a la pantalla i

esborrar-la. Un conjunt de quatre , van dos a dos cap a l’alimentació, un per als

caràcters i l’altre per la retroiluminació i funciona també a cinc volts. La resta dels

contactes van directament a massa (0v) tret d’un que també va a massa però amb un

potenciòmetre i serveix per regular el contrast.

2.10 Font d’alimentació

21

Page 22: Màquina Expenedora

Màquina expenedora de productes

Per alimentar els elements que funcionen a 5 volts

(tots tret dels actuadors) utilitzo una font

d’alimentació reciclada d’un vell ordinador (fig.26).

Per que la font s’engegui faig un pont entre el cable

verd del molex1 de 16 pins i un negre qualsevol de

la font que son els de massa. Els cables vermells de

la font donen tots 5 volts.

Fig.26

3. Recerca i preu del material

Part Mecànica: Tot el material és reciclat o dotació del centre tret dels tubs de

metacrilat que van ser comprats a una botiga especialitzada.

Part Electrònica: Tot el material és reciclat o dotació del centre excepte dels actuadors

(timbres), que són comprats a Leroy Merlin, i el PIC i la Pantalla, comprats a Ebay al

venedor hein2312.

Taula amb el preu aproximat (només material no reciclat) :

Nom Quantitat Preu aproximat

unitari (€)

Preu aproximat

total (€)PIC 18f452 1 5,26 € 5,26 €*

Actuador 6 8,16 € 49 €*

ULN2003A 2 3 € 6 €

Motor DC 5V 3 3 € 9 €LCD 1 9,85 € 9,85 €*

Tubs de metacrilat 2 15 € 30 €

Resta de material

no reciclat

30 €

Total 138€

4. Conclusió i valoració personal

1 Tipus de connector que es troba en les fonts d’alimentació dels ordinadors.* Preu exacte

22

Page 23: Màquina Expenedora

Màquina expenedora de productes

El projecte ha finalitzat amb moltes hores al damunt . Segurament en aquest dossier no

es veu reflectit tot el treball que m’ha portat no sols la construcció de la maqueta, sinó

també l´autoaprenentatge en temes d’electrònica i programació, el disseny i els plànols,

les diferents simulacions i proves realitzades, així com el haver-m’hi buscat la vida per

trobar molts del elements que ara es poden veure.

La construcció ha sigut complicada per que no he tingut màniga llarga per obtenir

aparells capaços de fer les funcions que jo requeria, i he agut d’utilitzar molt enginy per

donar-li funcions noves a elements que per si mateixos no eren capaços de realitzar.

Crec que aquest treball m’ha realitzat mòlt i he aconseguit veure algunes de les meves

possibilitats quan hem plantejo alguna cosa, que sol ser molt poques vegades.

5. Propostes de millora

Algunes de les millores que se m’hi ocorreixen són, per un costat, una millora

substancial en la quantitat d’informació extreta per pantalla, per exemple, mostrant en

tot moment la quantitat de diners que falta per a pagar un producte concret, i per altre

banda les millores que es podrien trobar en la substitució del materials utilitzats per

altres més cars i eficients, creats amb una finalitat especifica.

6. Programes utilitzats

• MikroC – Per a la escriptura i compilació del codi

• IC-prog – Per gravar el codi al PIC

• Proteus – Per simular el circuit

• Autoscketch – Per construir els plànols

• Microsoft Word – Per escriure aquest dossier

7. Agraïments

23

Page 24: Màquina Expenedora

Màquina expenedora de productes

• Daniel Cueva, professor d’electrotècnia. IES Can Mas, Ripollet.

• Jordi Polo, professor de tecnologia. IES Can Mas, Ripollet.

• Als meus companys de taller Diego i Sergio, per la seva ajuda en moments

puntuals.

• A les institucion Wikimedia Fundation i Creative Commons.

8. Bibliografia

• Consulta dels datasheets1 <http://www.alldatasheet.com>

• Consulta sobre aspectes de programació i electrònica de PICs

<http://www.jvmbots.com/viewtopic.php?t=18>

• Recerca d’imatges <http://flickrcc.com>

• Recerca d’imatges <http://search.creativecommons.org>

• Recerca d’informació <http://en.wikipedia.org> i <http://es.wikipedia.org>

• Creació i consulta dels diagrames <http://www.drawanywhere.com>

9. Annexos

1 Full amb dades sobre un aparell especific.

24

Page 25: Màquina Expenedora

Màquina expenedora de productes

9.1 Codi font del programa “la maquina expenedora”

void devolucion(void); Prototip de funció que no torna cap valor

char *text = "Benvingut" ; Cadenes de caràcterschar *textt = "a la Maquina";char *texttt= "expenedora";char *textv = "***Vistu***";char text2[40];char *euro = " euros";char *texti = "cantidad introduida";

char *textp1 = "introdueixi" ;char *textp11 = "mes diners (0,55)" ;char *textp2 = "mes diners (1,20)";char *textp3 = "mes diners (2,50)";char *textpro = "Processant comanda";char *textdev = "La devolucio es de";

long cantidad = 0; Variable de tipus enter llarg float contador = 0.00; Variable de tipus real

void main() Funció principal{

ADCON1=0xFF; Tots els ports com entrades i sortides digitalsTRISC = 0xFF; Port C com entradaPORTE.F2 = 1; Port E pin 2 com entradaTRISD = 0; Port D com sortida PORTD = 0;

TRISA.F0 = 0; Pin 0 al 3 de port A sortidesTRISA.F1 = 0;TRISA.F2 = 0;TRISA.F3 = 0;TRISA.F4 = 1; Pin 4 y 5 del port A entradesTRISA.F5 = 1;TRISE.F0 = 1; Pin 0 i 1 del port E entradesTRISE.F1 = 1;TRISB.F0 = 1;TRISB.F1 = 1; PORTA.F0 = 0; Reset de tots els pinsPORTA.F1 = 0;PORTA.F2 = 0;

25

Page 26: Màquina Expenedora

Màquina expenedora de productes

PORTA.F3 = 0;PORTA.F4 = 0;PORTA.F5 = 0;PORTE.F0 = 0;PORTE.F1 = 0; Lcd_Init(&PORTB); Inicia el LCD en el port BLcd_Cmd(LCD_CLEAR); Neteja el displayLcd_Cmd(LCD_CURSOR_OFF); Apaga cursorLcd_Out(1,6, text); Imprimeix el text, primera línea, primera columnaLcd_Out(2,5, textt);Lcd_Out(3,6, texttt);Lcd_Out(4,6, textv);

while (1){ Bucle infinit

//Entrada de monedes

if (PORTC.F2){ Si el fototransistor de 5 cèntims dona senyal Delay_ms(100); Retràs d’1 dècima de segon contador += 0.05; Adició de 0,05 a la variable real contador. cantidad += 5; Adició de 5 a la variable enter cantidad. sprintf(text2, "%2.2f", contador) ; Pas de tipus “float” a “string” Lcd_Cmd(LCD_CLEAR) ; strcat(text2, euro); Concatenació de text2 i euro Lcd_Out(1,1, texti); Lcd_Out(2,6, text2);}

else if (PORTC.F3){ Delay_ms(100); contador += 0.10; cantidad += 10; sprintf(text2, "%2.2f", contador) ; Lcd_Cmd(LCD_CLEAR) ; strcat(text2, euro); Lcd_Out(1,1, texti); Lcd_Out(2,6, text2);} else if (PORTC.F4){ Delay_ms(100); contador += 0.20; cantidad += 20; sprintf(text2, "%2.2f", contador) ;

26

Page 27: Màquina Expenedora

Màquina expenedora de productes

Lcd_Cmd(LCD_CLEAR) ; strcat(text2, euro); Lcd_Out(1,1, texti); Lcd_Out(2,6, text2);} else if (PORTC.F5){ Delay_ms(100); contador += 0.50; cantidad += 50; sprintf(text2, "%2.2f", contador) ; Lcd_Cmd(LCD_CLEAR) ; strcat(text2, euro); Lcd_Out(1,1, texti); Lcd_Out(2,6, text2);} else if (PORTC.F6){ Delay_ms(100); contador += 1.00; cantidad += 100; sprintf(text2, "%2.2f", contador) ; Lcd_Cmd(LCD_CLEAR) ; strcat(text2, euro); Lcd_Out(1,1, texti); Lcd_Out(2,6, text2);} else if (PORTC.F7){ Delay_ms(100); contador += 2.00; cantidad += 200; sprintf(text2, "%2.2f", contador) ; Lcd_Cmd(LCD_CLEAR) ; strcat(text2, euro); Lcd_Out(1,1, texti); Lcd_Out(2,6, text2);}

//Canvi else if (PORTE.F2) devolucion(); Si prems polsador de devolució

//Comandes else if (PORTE.F1){ Si prems producte 1

if(cantidad == 0){ Si la quantitat es 0 Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,4, textp1); Lcd_Out(2,1, textp11); Mostra el preu del producte Delay_ms(2000); Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,6, text);

27

Page 28: Màquina Expenedora

Màquina expenedora de productes

Lcd_Out(2,5, textt); Lcd_Out(3,6, texttt); Lcd_Out(4,6, textv); }

else if(cantidad < 55){ Si la quantitat és mes baixa de 55 Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,4, textp1); Lcd_Out(2,1, textp11); Delay_ms(2000); Lcd_Cmd(LCD_CLEAR); Mostra el preu del producte Lcd_Out(1,1, texti); Lcd_Out(2, 6, text2);}

else if(cantidad >= 55) { Si la quantitat es major o igual a 55 Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,1, textpro); cantidad -= 55; contador -= 0.55; Resta 0,55 i 55 a les variables PORTA.F0 = 1; Engega el motor 250 milisegons Delay_ms(250); PORTA.F0 = 0; while(PORTA.F4 == 0){ Mentre no es premi el final de cursa PORTA.F0 = 1;} El motor segueix girant. PORTA.F0 = 0; Delay_ms(1000); devolucion();}} Truca a la funció devolució else if (PORTE.F0){ Producte 2

if(cantidad == 0){ Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,4, textp1); Lcd_Out(2,1, textp2); Delay_ms(2000); Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,6, text); Lcd_Out(2,5, textt); Lcd_Out(3,6, texttt); Lcd_Out(4,6, textv); } else if(cantidad < 120){ Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,4, textp1); Lcd_Out(2,1, textp2); Delay_ms(2000); Lcd_Cmd(LCD_CLEAR); Lcd_Out(1,1, texti); Lcd_Out(2, 6, text2);} else if(cantidad >= 120) {

28

Page 29: Màquina Expenedora

Màquina expenedora de productes

Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,1, textpro); cantidad -= 120; contador -= 1.20; PORTA.F1 = 1; Delay_ms(250); PORTA.F1 = 0; while(PORTB.F0 == 0){ PORTA.F1 = 1;} PORTA.F0 = 0; Delay_ms(1000); devolucion();}}

else if (PORTA.F5){ Producte 3

if(cantidad == 0){ Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,4, textp1); Lcd_Out(2,1, textp3); Delay_ms(2000); Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,6, text); Lcd_Out(2,5, textt); Lcd_Out(3,6, texttt); Lcd_Out(4,6, textv); }

else if(cantidad < 250){ Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,4, textp1); Lcd_Out(2,1, textp3); Delay_ms(2000); Lcd_Cmd(LCD_CLEAR); Lcd_Out(1,1, texti); Lcd_Out(2, 6, text2);} else if(cantidad >= 250) { Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,1, textpro); cantidad -= 250; contador -= 2.50; PORTA.F2 = 1; Delay_ms(250); PORTA.F2 = 0; while(PORTB.F1 == 0){ PORTA.F2 = 1;} PORTA.F2 = 0; Delay_ms(1000); devolucion();} }

29

Page 30: Màquina Expenedora

Màquina expenedora de productes

} } void devolucion(void) { Funció devolució (si es truca ve aquí)

while(cantidad > 0){ Bucle mentre hi hagi diners

Lcd_Cmd(LCD_CLEAR) ; sprintf(text2, "%2.2f", contador) ; strcat(text2, euro); Lcd_Out(1,1, textdev); Lcd_Out(2,6, text2);

if(cantidad >= 200){ Tornar 2 € while(cantidad >= 200){ PORTD.F7 = 1; Delay_ms(500) ; //0.5 sec PORTD.F7 = 0; Delay_ms(500); cantidad -= 200;} }

else if(cantidad >= 100){ Tornar 1 € while(cantidad >= 100){ PORTD.F6 = 1; Delay_ms(500); PORTD.F6 = 0; Delay_ms(500); cantidad -= 100; }}

else if(cantidad >= 50){ Tornar 0.50 € while(cantidad >= 50){ PORTD.F5 = 1; Delay_ms(500) ; //0.1 sec PORTD.F5 = 0; Delay_ms(500); cantidad -= 50; }}

else if(cantidad >= 20){ Tornar 0.20 € while(cantidad >= 20){ PORTD.F4 = 1; Delay_ms(500) ; //0.1 sec PORTD.F4 = 0; Delay_ms(500); cantidad -= 20; }}

30

Page 31: Màquina Expenedora

Màquina expenedora de productes

else if(cantidad >= 10){ Tornar 0.10 € while(cantidad >= 10){ PORTD.F3 = 1; Delay_ms(500) ; //0.1 sec PORTD.F3 = 0; Delay_ms(500); cantidad -= 10; }}

else if(cantidad >= 5){ Tornar 0.05 € while(cantidad >= 5){ PORTD.F2 = 1; Delay_ms(500) ; //0.1 sec PORTD.F2 = 0; Delay_ms(500); cantidad -= 5; }} } Lcd_Cmd(LCD_CLEAR) ; Lcd_Out(1,6, text); Lcd_Out(2,5, textt); Lcd_Out(3,6, texttt); Lcd_Out(4,6, textv); contador = 0.00; Contador torna a 0 }

31