dsbnajdnas
Dependencies: Adafruit_GFX SSD1306_128x64_I2C mbed
main.cpp@0:07389ebe002b, 2017-11-19 (annotated)
- Committer:
- juankafil1
- Date:
- Sun Nov 19 22:00:22 2017 +0000
- Revision:
- 0:07389ebe002b
- Child:
- 1:748bf113818b
via
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
juankafil1 | 0:07389ebe002b | 1 | #include "mbed.h" |
juankafil1 | 0:07389ebe002b | 2 | #include "SSD1306.h" |
juankafil1 | 0:07389ebe002b | 3 | |
juankafil1 | 0:07389ebe002b | 4 | |
juankafil1 | 0:07389ebe002b | 5 | Serial rs232(USBTX,USBRX); |
juankafil1 | 0:07389ebe002b | 6 | |
juankafil1 | 0:07389ebe002b | 7 | #define D_SDA PTE0//25// |
juankafil1 | 0:07389ebe002b | 8 | #define D_SCL PTE1//24// |
juankafil1 | 0:07389ebe002b | 9 | I2C i2c(D_SDA, D_SCL); |
juankafil1 | 0:07389ebe002b | 10 | |
juankafil1 | 0:07389ebe002b | 11 | SSD1306 oled = SSD1306(i2c, SSD1308_SA0); |
juankafil1 | 0:07389ebe002b | 12 | |
juankafil1 | 0:07389ebe002b | 13 | |
juankafil1 | 0:07389ebe002b | 14 | Timer Timer1; |
juankafil1 | 0:07389ebe002b | 15 | InterruptIn int1(PTD0); |
juankafil1 | 0:07389ebe002b | 16 | |
juankafil1 | 0:07389ebe002b | 17 | unsigned int contador=0,frec=0,conn=0,conm=0,cona=0, conN=0; |
juankafil1 | 0:07389ebe002b | 18 | |
juankafil1 | 0:07389ebe002b | 19 | void ISR_PTD0(){//cuenta los pulsos |
juankafil1 | 0:07389ebe002b | 20 | ++contador;} |
juankafil1 | 0:07389ebe002b | 21 | |
juankafil1 | 0:07389ebe002b | 22 | void frecuencia(){ |
juankafil1 | 0:07389ebe002b | 23 | |
juankafil1 | 0:07389ebe002b | 24 | contador=0; |
juankafil1 | 0:07389ebe002b | 25 | Timer1.start();//arranca temporizador |
juankafil1 | 0:07389ebe002b | 26 | while(Timer1.read_ms()<=10);//cuando lleve a 10 ms pare |
juankafil1 | 0:07389ebe002b | 27 | Timer1.stop();//lo detengo |
juankafil1 | 0:07389ebe002b | 28 | frec=100*contador;//lo multiplicamos por 100 |
juankafil1 | 0:07389ebe002b | 29 | Timer1.reset();}//reinicia el timer |
juankafil1 | 0:07389ebe002b | 30 | |
juankafil1 | 0:07389ebe002b | 31 | void contadores(){ |
juankafil1 | 0:07389ebe002b | 32 | if((frec>=10000)&&(frec<=22000)){ |
juankafil1 | 0:07389ebe002b | 33 | //lcd.locate(0,0); |
juankafil1 | 0:07389ebe002b | 34 | oled.writeString(1, 0," "); |
juankafil1 | 0:07389ebe002b | 35 | oled.writeString(1, 0,"negro"); |
juankafil1 | 0:07389ebe002b | 36 | conn=conn+1;//aumento el contador |
juankafil1 | 0:07389ebe002b | 37 | |
juankafil1 | 0:07389ebe002b | 38 | rs232.printf("N");//lcd.locate(0,1);//preparado para pubicar |
juankafil1 | 0:07389ebe002b | 39 | //oled.writeString(0, 1,"I=%d",conn);//publico |
juankafil1 | 0:07389ebe002b | 40 | wait(3);//retraso mientras pasa la caja |
juankafil1 | 0:07389ebe002b | 41 | |
juankafil1 | 0:07389ebe002b | 42 | // oled.writeString(1, 0," ");//borrar oled |
juankafil1 | 0:07389ebe002b | 43 | |
juankafil1 | 0:07389ebe002b | 44 | } |
juankafil1 | 0:07389ebe002b | 45 | else if((frec>=28000)&&(frec<=66000)){ |
juankafil1 | 0:07389ebe002b | 46 | // lcd.locate(0,0); |
juankafil1 | 0:07389ebe002b | 47 | |
juankafil1 | 0:07389ebe002b | 48 | oled.writeString(1, 0," ");//bo//borrar oledrrar oled |
juankafil1 | 0:07389ebe002b | 49 | oled.writeString(1, 0,"VIOLETA");//publico el color de la frecuencia |
juankafil1 | 0:07389ebe002b | 50 | conm=conm+1;//aumento el contador |
juankafil1 | 0:07389ebe002b | 51 | rs232.printf(""); |
juankafil1 | 0:07389ebe002b | 52 | //lcd.locate(0,1);//preparado para pubicar |
juankafil1 | 0:07389ebe002b | 53 | //oled.writeString(0, 1,"I=%d");//publico |
juankafil1 | 0:07389ebe002b | 54 | wait(3);//retraso mientras pasa la caja |
juankafil1 | 0:07389ebe002b | 55 | |
juankafil1 | 0:07389ebe002b | 56 | oled.writeString(1, 0," ");//borrar oled |
juankafil1 | 0:07389ebe002b | 57 | |
juankafil1 | 0:07389ebe002b | 58 | }else if((frec>=45000)&&(frec<=110000)){ |
juankafil1 | 0:07389ebe002b | 59 | //lcd.locate(0,0); |
juankafil1 | 0:07389ebe002b | 60 | oled.writeString(1, 0," "); |
juankafil1 | 0:07389ebe002b | 61 | oled.writeString(1, 0,"Azul"); |
juankafil1 | 0:07389ebe002b | 62 | cona=cona+1;//aumento el contador |
juankafil1 | 0:07389ebe002b | 63 | wait(3); |
juankafil1 | 0:07389ebe002b | 64 | |
juankafil1 | 0:07389ebe002b | 65 | rs232.printf("A");} |
juankafil1 | 0:07389ebe002b | 66 | |
juankafil1 | 0:07389ebe002b | 67 | else { |
juankafil1 | 0:07389ebe002b | 68 | |
juankafil1 | 0:07389ebe002b | 69 | oled.writeString(2, 1, "Caja no reconocida"); |
juankafil1 | 0:07389ebe002b | 70 | conN=conN+1; |
juankafil1 | 0:07389ebe002b | 71 | wait(3); |
juankafil1 | 0:07389ebe002b | 72 | |
juankafil1 | 0:07389ebe002b | 73 | } |
juankafil1 | 0:07389ebe002b | 74 | } |
juankafil1 | 0:07389ebe002b | 75 | |
juankafil1 | 0:07389ebe002b | 76 | int main(){//clase principal |
juankafil1 | 0:07389ebe002b | 77 | |
juankafil1 | 0:07389ebe002b | 78 | rs232.baud(9600); |
juankafil1 | 0:07389ebe002b | 79 | int1.mode(PullUp);//habilitamos resistencia de PullUp |
juankafil1 | 0:07389ebe002b | 80 | int1.rise(&ISR_PTD0);//si hay flanco de subida se va a el programa, habilita la interrupcion |
juankafil1 | 0:07389ebe002b | 81 | //lcd.locate(0,0); |
juankafil1 | 0:07389ebe002b | 82 | oled.writeString(1, 0," maquna On"); //mensaje inicial al encender la Oled |
juankafil1 | 0:07389ebe002b | 83 | wait(1); |
juankafil1 | 0:07389ebe002b | 84 | |
juankafil1 | 0:07389ebe002b | 85 | while(true){ |
juankafil1 | 0:07389ebe002b | 86 | frecuencia();//inicia el sub programa frecuenia |
juankafil1 | 0:07389ebe002b | 87 | contadores();//inicia el programa de los contadores y publicacion de la frecuencia |
juankafil1 | 0:07389ebe002b | 88 | ///rs232.printf("F=%d\n\r",frec); |
juankafil1 | 0:07389ebe002b | 89 | //lcd.locate(0,1); |
juankafil1 | 0:07389ebe002b | 90 | ///rs232.printf("F=%d hz\r",frec); |
juankafil1 | 0:07389ebe002b | 91 | //lcd.printf("juan");// publica el valor frec donde quiera |
juankafil1 | 0:07389ebe002b | 92 | //wait(0.5);///retraso de para publicar |
juankafil1 | 0:07389ebe002b | 93 | } |
juankafil1 | 0:07389ebe002b | 94 | } |
juankafil1 | 0:07389ebe002b | 95 | |
juankafil1 | 0:07389ebe002b | 96 | |
juankafil1 | 0:07389ebe002b | 97 | /*int main() { |
juankafil1 | 0:07389ebe002b | 98 | oled.writeString(0, 0, "Universidad Distrital"); |
juankafil1 | 0:07389ebe002b | 99 | // oled.printf("Hello World !"); |
juankafil1 | 0:07389ebe002b | 100 | wait(1); |
juankafil1 | 0:07389ebe002b | 101 | |
juankafil1 | 0:07389ebe002b | 102 | oled.writeString(0, 0, "2017 Digitales II"); |
juankafil1 | 0:07389ebe002b | 103 | |
juankafil1 | 0:07389ebe002b | 104 | |
juankafil1 | 0:07389ebe002b | 105 | |
juankafil1 | 0:07389ebe002b | 106 | n }*/ |
juankafil1 | 0:07389ebe002b | 107 |