dsbnajdnas

Dependencies:   Adafruit_GFX SSD1306_128x64_I2C mbed

Committer:
juankafil1
Date:
Sun Nov 19 22:00:22 2017 +0000
Revision:
0:07389ebe002b
Child:
1:748bf113818b
via

Who changed what in which revision?

UserRevisionLine numberNew 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