57 lines
No EOL
1.2 KiB
C++
57 lines
No EOL
1.2 KiB
C++
#include "GazDisplay.h"
|
|
|
|
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RST);
|
|
|
|
DisplayError displayInit()
|
|
{
|
|
if (OLED_RST >= 0)
|
|
{
|
|
pinMode(OLED_RST, OUTPUT);
|
|
digitalWrite(OLED_RST, LOW);
|
|
delay(20);
|
|
digitalWrite(OLED_RST, HIGH);
|
|
}
|
|
Wire.begin(OLED_SDA, OLED_SCL);
|
|
|
|
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
|
|
{
|
|
Serial.println("[OLED] Ecran non détecté !");
|
|
return DisplayError::INIT_FAILED;
|
|
}
|
|
display.clearDisplay();
|
|
display.display();
|
|
|
|
return DisplayError::OK;
|
|
}
|
|
|
|
void displayGasIndex(uint32_t pulses)
|
|
{
|
|
float indexM3 = pulses * 0.010f;
|
|
|
|
display.clearDisplay();
|
|
|
|
// Titre
|
|
display.setTextSize(1);
|
|
display.setTextColor(SSD1306_WHITE);
|
|
display.setCursor(0, 0);
|
|
display.println("Index gaz");
|
|
|
|
// Ligne
|
|
display.drawLine(0, 10, 128, 10, SSD1306_WHITE);
|
|
|
|
// Valeur en grand
|
|
display.setTextSize(2);
|
|
display.setCursor(0, 18);
|
|
display.printf("%.3f", indexM3);
|
|
|
|
// Unité
|
|
display.setTextSize(1);
|
|
display.setCursor(112, 25);
|
|
display.println("m3");
|
|
|
|
// Impulsions en petit
|
|
display.setCursor(0, 54);
|
|
display.printf("Impulsions : %lu", pulses);
|
|
|
|
display.display();
|
|
} |