commit bfd3910fcbd422d79e5a86dee81c87b8c6b1ac0f
parent dee6f6f3d463783203b072644af78d621ff724a6
Author: Tonton <tonterface@proton.me>
Date: Sat, 27 Jun 2026 21:29:01 +0200
Add display lib
Diffstat:
3 files changed, 59 insertions(+), 37 deletions(-)
diff --git a/gas_sensor.ino b/gas_sensor.ino
@@ -2,51 +2,19 @@
* Gas sensor
*/
-#include <Adafruit_SSD1306.h>
-#include <Wire.h>
-
#include "include/menu.h"
-
-/* macros */
-#define SCREEN_WIDTH 128
-#define SCREEN_HEIGHT 64
-#define OLED_RESET -1
-#define SCREEN_ADDRESS 0x3D
+#include "include/display.h"
/* function declarations */
-static void initDisplay(void);
-static void writeToDisplay(char str[], int x, int y);
void setup(void);
void loop(void);
/* objects */
-Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
/* variables */
/* function implementations */
-static void initDisplay(void)
-{
- if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
- Serial.println("Allocation failed");
- for(;;);
- }
- display.display();
- delay(2000);
- Serial.println("Screen init done");
-
- display.setTextColor(SSD1306_WHITE);
-}
-
-static void writeToDisplay(char str[], int x, int y)
-{
- display.setTextSize(2);
- display.setCursor(x, y);
- display.print(str);
- display.display();
-}
-
void setup(void)
{
Serial.begin(9600);
@@ -55,13 +23,15 @@ void setup(void)
pinMode(BUILTIN_LED, OUTPUT);
- initDisplay();
- display.clearDisplay();
+ DisplayInit();
writeToDisplay("Display", 0, 0);
- writeToDisplay("init done!", 0, SCREEN_HEIGHT / 4);
+ writeToDisplay("init done!", 0, 64 / 4);
}
void loop(void)
{
- MenuMain();
+// MenuMain();
+ for (int i = 0; i < 120; ++i) {
+ writeToDisplay("x", i, 64 / 2);
+ }
}
diff --git a/include/display.h b/include/display.h
@@ -0,0 +1,8 @@
+#ifndef DISPLAY_H
+#define DISPLAY_H
+
+//void DisplayPrintMainMenu(void);
+void DisplayInit(void);
+void writeToDisplay(char [], int, int);
+
+#endif // !MENU_H
diff --git a/src/display.cpp b/src/display.cpp
@@ -0,0 +1,44 @@
+
+#include <Adafruit_SSD1306.h>
+#include <Adafruit_GFX.h>
+#include <SPI.h>
+#include <Arduino.h>
+#include <Wire.h>
+
+#include "../include/display.h"
+
+/* macros */
+#define SCREEN_WIDTH 128
+#define SCREEN_HEIGHT 64
+#define OLED_RESET -1
+#define SCREEN_ADDRESS 0x3D
+
+/* objects */
+Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
+
+/* function declarations */
+
+/* function implementations */
+
+void DisplayInit(void)
+{
+ if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
+ Serial.println("Allocation failed");
+ for(;;);
+ }
+ display.display();
+ delay(2000);
+ Serial.println("Screen init done");
+ delay(2000);
+ display.clearDisplay();
+
+ display.setTextColor(SSD1306_WHITE);
+}
+
+void writeToDisplay(char str[], int x, int y)
+{
+ display.setTextSize(2);
+ display.setCursor(x, y);
+ display.print(str);
+ display.display();
+}