
hola
Dependencies: mbed
main.cpp@0:f9d7163fcbdb, 2015-01-19 (annotated)
- Committer:
- jklagp
- Date:
- Mon Jan 19 22:55:34 2015 +0000
- Revision:
- 0:f9d7163fcbdb
tarea tacometro
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jklagp | 0:f9d7163fcbdb | 1 | #include "mbed.h" |
jklagp | 0:f9d7163fcbdb | 2 | |
jklagp | 0:f9d7163fcbdb | 3 | BusOut segmentos(D2,D3,D4,D10,D13,D12,D11,D9); |
jklagp | 0:f9d7163fcbdb | 4 | BusOut display(D5,D6,D7,D15); |
jklagp | 0:f9d7163fcbdb | 5 | enum digitos {cero=63,uno=6,dos=91,tres=79,cuatro=102,cinco=109,seis=125,siete=7,ocho=127,nueve=103,ceror=63}; |
jklagp | 0:f9d7163fcbdb | 6 | int incrementar (int); |
jklagp | 0:f9d7163fcbdb | 7 | Ticker flipper1,operacion,velocidad; |
jklagp | 0:f9d7163fcbdb | 8 | unsigned short digito[4]; |
jklagp | 0:f9d7163fcbdb | 9 | int revoluciones,vueltas; |
jklagp | 0:f9d7163fcbdb | 10 | InterruptIn sensor(D14); |
jklagp | 0:f9d7163fcbdb | 11 | AnalogIn pot(PTB2); |
jklagp | 0:f9d7163fcbdb | 12 | PwmOut Motor(PTC10); |
jklagp | 0:f9d7163fcbdb | 13 | |
jklagp | 0:f9d7163fcbdb | 14 | void flip1(void); |
jklagp | 0:f9d7163fcbdb | 15 | void imprimir(void); |
jklagp | 0:f9d7163fcbdb | 16 | void rev(void); |
jklagp | 0:f9d7163fcbdb | 17 | void contar(void); |
jklagp | 0:f9d7163fcbdb | 18 | void velo(void); |
jklagp | 0:f9d7163fcbdb | 19 | |
jklagp | 0:f9d7163fcbdb | 20 | |
jklagp | 0:f9d7163fcbdb | 21 | int main() |
jklagp | 0:f9d7163fcbdb | 22 | { |
jklagp | 0:f9d7163fcbdb | 23 | sensor.rise(&contar); |
jklagp | 0:f9d7163fcbdb | 24 | velocidad.attach(&velo,0.01); //actualizar velocidad |
jklagp | 0:f9d7163fcbdb | 25 | flipper1.attach(&flip1,0.02); //multiplexado |
jklagp | 0:f9d7163fcbdb | 26 | operacion.attach(&rev,1);//operacion c/2seg |
jklagp | 0:f9d7163fcbdb | 27 | while (true){ |
jklagp | 0:f9d7163fcbdb | 28 | |
jklagp | 0:f9d7163fcbdb | 29 | } |
jklagp | 0:f9d7163fcbdb | 30 | } |
jklagp | 0:f9d7163fcbdb | 31 | |
jklagp | 0:f9d7163fcbdb | 32 | void velo(void) |
jklagp | 0:f9d7163fcbdb | 33 | { |
jklagp | 0:f9d7163fcbdb | 34 | Motor.period(.02); |
jklagp | 0:f9d7163fcbdb | 35 | Motor.write(pot.read()); |
jklagp | 0:f9d7163fcbdb | 36 | } |
jklagp | 0:f9d7163fcbdb | 37 | void rev(void) |
jklagp | 0:f9d7163fcbdb | 38 | { |
jklagp | 0:f9d7163fcbdb | 39 | revoluciones=vueltas*60; |
jklagp | 0:f9d7163fcbdb | 40 | vueltas=0; |
jklagp | 0:f9d7163fcbdb | 41 | digito[3]=revoluciones/1000; |
jklagp | 0:f9d7163fcbdb | 42 | digito[2]=(revoluciones-digito[3]*1000)/100; |
jklagp | 0:f9d7163fcbdb | 43 | digito[1]=(revoluciones-digito[3]*1000-digito[2]*100)/10; |
jklagp | 0:f9d7163fcbdb | 44 | digito[0]=(revoluciones-digito[3]*1000-digito[2]*100-digito[1]*10); |
jklagp | 0:f9d7163fcbdb | 45 | |
jklagp | 0:f9d7163fcbdb | 46 | } |
jklagp | 0:f9d7163fcbdb | 47 | |
jklagp | 0:f9d7163fcbdb | 48 | void contar(void) |
jklagp | 0:f9d7163fcbdb | 49 | { |
jklagp | 0:f9d7163fcbdb | 50 | vueltas++; |
jklagp | 0:f9d7163fcbdb | 51 | } |
jklagp | 0:f9d7163fcbdb | 52 | |
jklagp | 0:f9d7163fcbdb | 53 | int imprimir (int digito) |
jklagp | 0:f9d7163fcbdb | 54 | { |
jklagp | 0:f9d7163fcbdb | 55 | if(digito==9)digito=digitos(nueve); |
jklagp | 0:f9d7163fcbdb | 56 | if(digito==8)digito=digitos(ocho); |
jklagp | 0:f9d7163fcbdb | 57 | if(digito==7)digito=digitos(siete); |
jklagp | 0:f9d7163fcbdb | 58 | if(digito==6)digito=digitos(seis); |
jklagp | 0:f9d7163fcbdb | 59 | if(digito==5)digito=digitos(cinco); |
jklagp | 0:f9d7163fcbdb | 60 | if(digito==4)digito=digitos(cuatro); |
jklagp | 0:f9d7163fcbdb | 61 | if(digito==3)digito=digitos(tres); |
jklagp | 0:f9d7163fcbdb | 62 | if(digito==2)digito=digitos(dos); |
jklagp | 0:f9d7163fcbdb | 63 | if(digito==1)digito=digitos(uno); |
jklagp | 0:f9d7163fcbdb | 64 | if(digito==0)digito=digitos(cero); |
jklagp | 0:f9d7163fcbdb | 65 | |
jklagp | 0:f9d7163fcbdb | 66 | return digito; |
jklagp | 0:f9d7163fcbdb | 67 | } |
jklagp | 0:f9d7163fcbdb | 68 | |
jklagp | 0:f9d7163fcbdb | 69 | void flip1() //funcion de multiplexado |
jklagp | 0:f9d7163fcbdb | 70 | { |
jklagp | 0:f9d7163fcbdb | 71 | segmentos=imprimir(digito[0]); |
jklagp | 0:f9d7163fcbdb | 72 | display=1; |
jklagp | 0:f9d7163fcbdb | 73 | wait(0.005); |
jklagp | 0:f9d7163fcbdb | 74 | segmentos=imprimir(digito[1]); |
jklagp | 0:f9d7163fcbdb | 75 | display=2; |
jklagp | 0:f9d7163fcbdb | 76 | wait(0.005); |
jklagp | 0:f9d7163fcbdb | 77 | segmentos=imprimir(digito[2]); |
jklagp | 0:f9d7163fcbdb | 78 | display=4; |
jklagp | 0:f9d7163fcbdb | 79 | wait(0.005); |
jklagp | 0:f9d7163fcbdb | 80 | segmentos=imprimir(digito[3]); |
jklagp | 0:f9d7163fcbdb | 81 | display=8; |
jklagp | 0:f9d7163fcbdb | 82 | } |