first commit, display ok, buttons ok

This commit is contained in:
2025-02-09 00:31:27 +01:00
commit 2d9e99a5a1
84 changed files with 16946 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
# 1 "/mnt/Data/bach/Electronic/boxmod/BoxmodFirmware/BoxmodFirmware.ino"
# 2 "/mnt/Data/bach/Electronic/boxmod/BoxmodFirmware/BoxmodFirmware.ino" 2
# 3 "/mnt/Data/bach/Electronic/boxmod/BoxmodFirmware/BoxmodFirmware.ino" 2
# 4 "/mnt/Data/bach/Electronic/boxmod/BoxmodFirmware/BoxmodFirmware.ino" 2
# 5 "/mnt/Data/bach/Electronic/boxmod/BoxmodFirmware/BoxmodFirmware.ino" 2
# 6 "/mnt/Data/bach/Electronic/boxmod/BoxmodFirmware/BoxmodFirmware.ino" 2
# 15 "/mnt/Data/bach/Electronic/boxmod/BoxmodFirmware/BoxmodFirmware.ino"
int bat_prct = 100;
float coil_res = 1.1;
float coil_pw = 17.8;
Btn plusBtn(6, 50);
Btn moinsBtn(7, 50);
Btn fireBtn(17, 50);
int batVcheckActivatePin = 42;
int batVcheckMesurePin = 14;
Adafruit_SSD1306 display(96, 16, &Wire, -1 /* Pas de reset matériel*/);
void setup() {
SerialUSB.begin(115200);
// while (!SerialUSB); // Leonardo: wait for serial monitor
SerialUSB.println("\nBoxmodFirmware");
pinMode(18, OUTPUT);
analogWrite(18, 0);
if (!display.begin(0x02 /*|< Gen. display voltage from 3.3V*/, 0x3C /* Adresse I2C (à confirmer avec un scanner I2C)*/)) {
SerialUSB.println((reinterpret_cast<const __FlashStringHelper *>(("Échec de l'initialisation de l'écran OLED"))));
// while (true); // Boucle infinie en cas d'échec
}
display.clearDisplay();
delay(500);
display.setRotation(2);
}
void drawScreen() {
display.clearDisplay();
display.setTextColor(1 /*|< Draw 'on' pixels*/);
// battery
display.setTextSize(1);
display.setCursor(0, 0);
display.print(String(bat_prct)+"%");
// display.drawRect(0, 0, 39, 69, SSD1306_WHITE); // Rectangle vide
// display.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, SSD1306_WHITE); // Rectangle rempli
// coil resistance
display.setTextSize(1);
display.setCursor(0, 8);
// display.print(String(coil_res)+"Ω");
char coil_res_output[3]; // Adjust size accordingly
sprintf(coil_res_output, "%.1f\xE9", coil_res); // Format float with 1 decimal place
display.print(coil_res_output);
// power
display.setTextSize(2);
display.setCursor(30, 0);
// display.print(String(coil_pw)+"W");
char coil_pw_output[4]; // Adjust size accordingly
sprintf(coil_pw_output, "%.1fw", coil_pw); // Format float with 1 decimal place
display.print(coil_pw_output);
display.display(); // Rafraîchir l'écran
}
void loop() {
if(plusBtn.getStateOnce() == 0){
SerialUSB.println("Plus");
coil_pw+=0.1;
if (coil_pw >= 20){
coil_pw = 20;
}
}
if(moinsBtn.getStateOnce() == 0){
SerialUSB.println("Moins");
coil_pw-=0.1;
if (coil_pw <= 5){
coil_pw = 5;
}
}
if(fireBtn.getState() == 0){
analogWrite(18, 255);
}else{
analogWrite(18, 0);
}
drawScreen();
}