Hola urueña

Dependencies:   DS1302 HCSR04 SSD1306_128x64_I2C Servo mbed stop

Fork of DisplayOled1 by Juan Abril

Committer:
Gustavo_Guerrero
Date:
Sun May 06 23:49:39 2018 +0000
Revision:
3:de4b6b2e0202
Parent:
2:5d1c146e04d4
hola urue?a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Gustavo_Guerrero 3:de4b6b2e0202 1 #include "mbed.h"
Gustavo_Guerrero 3:de4b6b2e0202 2 #include "SSD1306.h"
Gustavo_Guerrero 3:de4b6b2e0202 3 #include "Servo.h"
Gustavo_Guerrero 3:de4b6b2e0202 4 #include "HCSR04.h"
Gustavo_Guerrero 3:de4b6b2e0202 5
Gustavo_Guerrero 3:de4b6b2e0202 6 #define SCLK PTC5
Gustavo_Guerrero 3:de4b6b2e0202 7 #define IO PTC4
Gustavo_Guerrero 3:de4b6b2e0202 8 #define CE PTC3
Gustavo_Guerrero 3:de4b6b2e0202 9 #include "DS1302.h"
Gustavo_Guerrero 3:de4b6b2e0202 10
Gustavo_Guerrero 3:de4b6b2e0202 11 Servo myservo(PTD4);
Gustavo_Guerrero 3:de4b6b2e0202 12 Timer timer;
Gustavo_Guerrero 3:de4b6b2e0202 13 AnalogIn ain(A0);
Gustavo_Guerrero 3:de4b6b2e0202 14 DS1302 clk(SCLK, IO, PTC3);
Gustavo_Guerrero 3:de4b6b2e0202 15
Gustavo_Guerrero 3:de4b6b2e0202 16 #define D_SDA PTC11
Gustavo_Guerrero 3:de4b6b2e0202 17 #define D_SCL PTC10
Gustavo_Guerrero 3:de4b6b2e0202 18 I2C i2c(D_SDA, D_SCL);
Gustavo_Guerrero 3:de4b6b2e0202 19
Gustavo_Guerrero 3:de4b6b2e0202 20 SPI spi(PTD2, PTD3, PTD1); //MOSI MISO Y SCLK
Gustavo_Guerrero 3:de4b6b2e0202 21 //DigitalOut K(PTD5);
Gustavo_Guerrero 3:de4b6b2e0202 22 Serial pc(USBTX, USBRX);
franni 0:3b87797f65fc 23
Gustavo_Guerrero 3:de4b6b2e0202 24 char x[10];
Gustavo_Guerrero 3:de4b6b2e0202 25 int i=0,cs2=0;
Gustavo_Guerrero 3:de4b6b2e0202 26 int dato3;
Gustavo_Guerrero 3:de4b6b2e0202 27 uint16_t adcvalue ;
Gustavo_Guerrero 3:de4b6b2e0202 28 float voltaje ;
Gustavo_Guerrero 3:de4b6b2e0202 29
Gustavo_Guerrero 3:de4b6b2e0202 30 SSD1306 oled = SSD1306(i2c, SSD1308_SA0);
Gustavo_Guerrero 3:de4b6b2e0202 31
Gustavo_Guerrero 3:de4b6b2e0202 32
Gustavo_Guerrero 3:de4b6b2e0202 33 int main()
Gustavo_Guerrero 3:de4b6b2e0202 34 {
Gustavo_Guerrero 3:de4b6b2e0202 35
Gustavo_Guerrero 3:de4b6b2e0202 36 #ifdef INITIAL_RUN
Gustavo_Guerrero 3:de4b6b2e0202 37 clk.set_time(1512485768);
Gustavo_Guerrero 3:de4b6b2e0202 38 #endif
Gustavo_Guerrero 3:de4b6b2e0202 39
Gustavo_Guerrero 3:de4b6b2e0202 40 char storedByte = clk.recallByte(0);
Gustavo_Guerrero 3:de4b6b2e0202 41 printf("Stored byte was %d, now increasing by one\r\n", storedByte);
Gustavo_Guerrero 3:de4b6b2e0202 42 clk.storeByte(0, storedByte + 2);
Gustavo_Guerrero 3:de4b6b2e0202 43
Gustavo_Guerrero 3:de4b6b2e0202 44 HCSR04 sensor(PTD5, PTA13);
Gustavo_Guerrero 3:de4b6b2e0202 45 sensor.setRanges(10, 110);
Gustavo_Guerrero 3:de4b6b2e0202 46 pc.printf("Min. range = %g cm\n\rMax. range = %g cm\n\r",
Gustavo_Guerrero 3:de4b6b2e0202 47 sensor.getMinRange(), sensor.getMaxRange());
Abril1030 2:5d1c146e04d4 48
Gustavo_Guerrero 3:de4b6b2e0202 49 while(1) {
Gustavo_Guerrero 3:de4b6b2e0202 50 time_t seconds = clk.time(NULL);
Gustavo_Guerrero 3:de4b6b2e0202 51 sprintf(x,"%s\r", ctime(&seconds));
Gustavo_Guerrero 3:de4b6b2e0202 52 oled.writeString(0, 5, x);//Fecha publicada
Gustavo_Guerrero 3:de4b6b2e0202 53
Gustavo_Guerrero 3:de4b6b2e0202 54 //Inicio termocupla
Gustavo_Guerrero 3:de4b6b2e0202 55 DigitalOut (PTD0, 1);
Gustavo_Guerrero 3:de4b6b2e0202 56 spi.format(8,3);
Gustavo_Guerrero 3:de4b6b2e0202 57 spi.frequency(1000000);
Gustavo_Guerrero 3:de4b6b2e0202 58 wait_ms(700);
Gustavo_Guerrero 3:de4b6b2e0202 59 DigitalOut (PTD0, 0);
Gustavo_Guerrero 3:de4b6b2e0202 60 spi.write(0x00);
Gustavo_Guerrero 3:de4b6b2e0202 61 int dato = spi.write(0xFF);
Gustavo_Guerrero 3:de4b6b2e0202 62 int dato2 = spi.write(0xFF);
Gustavo_Guerrero 3:de4b6b2e0202 63 dato3 = (((dato2*256 + dato)/8)/4);
Gustavo_Guerrero 3:de4b6b2e0202 64 //pc.printf("%d\n", dato3);
Gustavo_Guerrero 3:de4b6b2e0202 65
Gustavo_Guerrero 3:de4b6b2e0202 66 DigitalOut (PTD0, 1);
Gustavo_Guerrero 3:de4b6b2e0202 67 oled.writeProgressBar(2,4,dato3*2);
Gustavo_Guerrero 3:de4b6b2e0202 68 oled.writeString(2, 8, "Temp.");
Gustavo_Guerrero 3:de4b6b2e0202 69 //Fin termocupla
franni 0:3b87797f65fc 70
Gustavo_Guerrero 3:de4b6b2e0202 71 //inicio servo
Gustavo_Guerrero 3:de4b6b2e0202 72 adcvalue = ain.read_u16();
Gustavo_Guerrero 3:de4b6b2e0202 73 voltaje = ((adcvalue*100)/65536);
Gustavo_Guerrero 3:de4b6b2e0202 74 myservo = voltaje/100.0;
Gustavo_Guerrero 3:de4b6b2e0202 75 oled.writeLevelBar(6,4,voltaje);
Gustavo_Guerrero 3:de4b6b2e0202 76 oled.writeString(6, 8, "Ang.");
Gustavo_Guerrero 3:de4b6b2e0202 77 //fin servo
Gustavo_Guerrero 3:de4b6b2e0202 78
Gustavo_Guerrero 3:de4b6b2e0202 79
Gustavo_Guerrero 3:de4b6b2e0202 80 //INICIO ULTRASÓNICO
Gustavo_Guerrero 3:de4b6b2e0202 81 timer.reset();
Gustavo_Guerrero 3:de4b6b2e0202 82 timer.start();
Gustavo_Guerrero 3:de4b6b2e0202 83 sensor.startMeasurement();
Gustavo_Guerrero 3:de4b6b2e0202 84 while(!sensor.isNewDataReady()) {
Gustavo_Guerrero 3:de4b6b2e0202 85 // wait for new data
Gustavo_Guerrero 3:de4b6b2e0202 86 // waiting time depends on the distance
Gustavo_Guerrero 3:de4b6b2e0202 87
Gustavo_Guerrero 3:de4b6b2e0202 88 }
Gustavo_Guerrero 3:de4b6b2e0202 89 //pc.printf("Distance: %5.1f cm\r\n", sensor.getDistance_cm());
Gustavo_Guerrero 3:de4b6b2e0202 90 pc.printf("%u\n", sensor.getDistance_cm());
Gustavo_Guerrero 3:de4b6b2e0202 91 timer.stop();
Gustavo_Guerrero 3:de4b6b2e0202 92 wait_ms(500 - timer.read_ms());
Gustavo_Guerrero 3:de4b6b2e0202 93 oled.writeProgressBar(4,4,sensor.getDistance_cm());
Gustavo_Guerrero 3:de4b6b2e0202 94 oled.writeString(4, 8, "Dist.");
Gustavo_Guerrero 3:de4b6b2e0202 95 //FIN ULTRASONICO
Gustavo_Guerrero 3:de4b6b2e0202 96 wait_ms(1000);
franni 0:3b87797f65fc 97
franni 0:3b87797f65fc 98
franni 0:3b87797f65fc 99
Gustavo_Guerrero 3:de4b6b2e0202 100 }
Gustavo_Guerrero 3:de4b6b2e0202 101
Gustavo_Guerrero 3:de4b6b2e0202 102 }