Electronica / Mbed OS Proyecto2

Dependencies:   Adafruit_GFX

Revision:
2:fd3b989cedcd
Parent:
1:1d515eb7abf3
Child:
3:3fbadf6c492f
--- a/main.cpp	Wed Dec 15 13:22:41 2021 +0000
+++ b/main.cpp	Wed Dec 15 18:57:42 2021 +0000
@@ -1,6 +1,23 @@
 #include "mbed.h"
 #include "math.h"
+#include "Adafruit_SSD1306.h"
+
 //#include "hcsr04.h"
+class I2CPreInit : public I2C
+{
+public:
+    I2CPreInit(PinName sda, PinName scl) : I2C(sda, scl)
+    {
+        frequency(100000);
+        start();
+    };
+};
+
+I2CPreInit gI2C(PB_9,PB_8);
+
+// an SPI sub-class that provides a constructed default
+
+Adafruit_SSD1306_I2c gOled(gI2C,NC,0x78,64,128);
 Serial pc(USBTX, USBRX); // tx, rx
 Ticker tickerMideDistancia;
 Ticker visualTemp;
@@ -68,23 +85,31 @@
 {
 //if (final2)
     if (boton_inicial==0&&final2==0) {
+        
         paso(1);
-        
+
         dirAMotor=1;
         rele =1;
 
     } else if (final2==1) {
         int tiempo=t.read();
-        pc.printf("El tiempo transcurrido es de %d\n",tiempo);
-         pc.printf("La temperatura es de %.4f\n",temperatura);
+        
+        //pc.printf("La temperatura es de %.4f\n",temperatura);
+        gOled.clearDisplay();
+        gOled.printf("La temperatura es de %.4f\n",temperatura);
+        gOled.display();
+        gOled.setTextCursor(0,0);
+    
+       // pc.printf("El tiempo transcurrido es de %d\n",tiempo);
+        //pc.printf("La temperatura es de %.4f\n",temperatura);
         //dirAMotor=0;
         wait(2.0);
         //enableMotor=0;
         //rele=0;
 
-        if (final2==1) {
+        //if (final2==1) {
             estado=atras;
-        }
+        //}
         //Print en pantalla con el Oled.
     }
 }
@@ -103,19 +128,29 @@
     }
 }
 
-void muestraTemp(){
+void muestraTemp()
+{
     pc.printf("La temperatura es de %.4f\n",temperatura);
-    }
+    gOled.clearDisplay();
+    gOled.printf("La temperatura es de %.4f\n",temperatura);
+    gOled.display();
+    gOled.setTextCursor(0,0);
+}
 
- void medir(){
-    
+void medir()
+{
     float tension=senal.read()*3.3;
     float Rt= 100e3*((3.3-tension)/tension);
     temperatura = (3950/(log(Rt/100e3)+(3950/298)))-273.1;
-     }
+}
 int main()
 {
     pc.baud(115200);
+    gOled.begin();
+    gOled.clearDisplay();
+    gOled.printf("Hola");
+    gOled.display();
+    gOled.setTextCursor(0,0);
     //visualTemp.attach(&muestraTemp,1.0);
     //tickerMideDistancia.attach(&mideDistancia, 0.5);
     estado=reset;
@@ -124,10 +159,10 @@
     pc.printf("Estado cerrada\n");
     t.start();
     while(1) {
-       medir();
+        medir();
         //distancia=usensor.get_dist_cm();
         switch ( estado ) {
-     
+
             case reset:
                 estadoreset();
                 pc.printf("Estado reset\n");