Hola urueña
Dependencies: DS1302 HCSR04 SSD1306_128x64_I2C Servo mbed stop
Fork of DisplayOled1 by
main.cpp@3:de4b6b2e0202, 2018-05-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |