Sample code with BluePill STM32F103C8 and Oled SSD1306 and LCD1602 on same connect on DS18B20.

Dependencies:   TextLCD

Committer:
diltech
Date:
Sun May 29 16:30:05 2022 -0400
Revision:
0:47b4bbc994df
Child:
1:27d0c6ee0e55
Projet en cours

Who changed what in which revision?

UserRevisionLine numberNew contents of line
diltech 0:47b4bbc994df 1 #include "PinNames.h"
diltech 0:47b4bbc994df 2 #include "mbed.h"
diltech 0:47b4bbc994df 3 #include "TextLCD.h" // Important d'avoir la bonne librairie
diltech 0:47b4bbc994df 4 #include "Adafruit_SSD1306.h"
diltech 0:47b4bbc994df 5 #include "DS18B20.h"
diltech 0:47b4bbc994df 6
diltech 0:47b4bbc994df 7 I2C i2c_pin(I2C_SDA, I2C_SCL);
diltech 0:47b4bbc994df 8 DigitalOut myLed(PC_13);
diltech 0:47b4bbc994df 9 TextLCD_I2C lcd(&i2c_pin, 0x4E);
diltech 0:47b4bbc994df 10 Adafruit_SSD1306_I2c oled(i2c_pin, PA_4, 0x78, 64, 128);
diltech 0:47b4bbc994df 11
diltech 0:47b4bbc994df 12
diltech 0:47b4bbc994df 13
diltech 0:47b4bbc994df 14 DS18B20 sensor(PA_5);
diltech 0:47b4bbc994df 15 int col = 0;
diltech 0:47b4bbc994df 16
diltech 0:47b4bbc994df 17
diltech 0:47b4bbc994df 18 // main() runs in its own thread in the OS
diltech 0:47b4bbc994df 19 int main()
diltech 0:47b4bbc994df 20 {
diltech 0:47b4bbc994df 21 // *********** Oled 128 x 64 *********
diltech 0:47b4bbc994df 22 int tickTime = 1000;
diltech 0:47b4bbc994df 23 oled.begin(SSD1306_SWITCHCAPVCC);
diltech 0:47b4bbc994df 24 HAL_Delay(200);
diltech 0:47b4bbc994df 25 oled.splash();
diltech 0:47b4bbc994df 26 oled.display();
diltech 0:47b4bbc994df 27 HAL_Delay(2000);
diltech 0:47b4bbc994df 28 oled.clearDisplay();
diltech 0:47b4bbc994df 29
diltech 0:47b4bbc994df 30 // ******* LCD 1602 *************
diltech 0:47b4bbc994df 31 //lcd.locate(0, 0); // Position initial
diltech 0:47b4bbc994df 32 lcd.setCursor(TextLCD::CurOff_BlkOff);
diltech 0:47b4bbc994df 33 lcd.cls();
diltech 0:47b4bbc994df 34 lcd.setBacklight(TextLCD::LightOn);
diltech 0:47b4bbc994df 35 lcd.printf(" Thermal sonde\n");
diltech 0:47b4bbc994df 36
diltech 0:47b4bbc994df 37 while (true) {
diltech 0:47b4bbc994df 38 oled.clearDisplay();
diltech 0:47b4bbc994df 39 myLed = !myLed;
diltech 0:47b4bbc994df 40 float temperature = sensor.readTemp();
diltech 0:47b4bbc994df 41 // ***** LCD 1602 ***
diltech 0:47b4bbc994df 42 lcd.locate(0, 1);
diltech 0:47b4bbc994df 43 lcd.printf("Temp: %0.1f",temperature);
diltech 0:47b4bbc994df 44
diltech 0:47b4bbc994df 45 for (int g = 6;g>0;g--) {
diltech 0:47b4bbc994df 46
diltech 0:47b4bbc994df 47 lcd.locate(g+9,1);
diltech 0:47b4bbc994df 48 lcd.putc(127);
diltech 0:47b4bbc994df 49 HAL_Delay(200);
diltech 0:47b4bbc994df 50 lcd.putc(' ');
diltech 0:47b4bbc994df 51
diltech 0:47b4bbc994df 52 }
diltech 0:47b4bbc994df 53
diltech 0:47b4bbc994df 54 // ******* Oled 128 x 64 *******
diltech 0:47b4bbc994df 55 oled.setTextSize(2);
diltech 0:47b4bbc994df 56 oled.setTextCursor(0, 30);
diltech 0:47b4bbc994df 57 oled.printf("Temp: %0.1f\r", temperature);
diltech 0:47b4bbc994df 58 oled.display();
diltech 0:47b4bbc994df 59
diltech 0:47b4bbc994df 60 for (int i = 0; i < 10; i++) {
diltech 0:47b4bbc994df 61 oled.setTextSize(2);
diltech 0:47b4bbc994df 62 oled.setTextCursor(col, 0);
diltech 0:47b4bbc994df 63 oled.putc(175);
diltech 0:47b4bbc994df 64 oled.display();
diltech 0:47b4bbc994df 65 col = col + 12;
diltech 0:47b4bbc994df 66 if (col > 118) {
diltech 0:47b4bbc994df 67 col = 0;
diltech 0:47b4bbc994df 68 }
diltech 0:47b4bbc994df 69 HAL_Delay(50);
diltech 0:47b4bbc994df 70 }
diltech 0:47b4bbc994df 71 }
diltech 0:47b4bbc994df 72 }