#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SSD1306_I2C_ADDRESS 0x3C
// Définir les adresses I2C pour vos composants
#define RTC_ADDRESS 0x68
#define LED_MATRIX_ADDRESS 0x3C
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Adafruit_GFX display = Adafruit_GFX(SCREEN_WIDTH, SCREEN_HEIGHT);
const int pinPotentiometer = A0; // Déclarer la broche du potentiomètre
int choice;
int buton
void initializeComponents(); // Déclarer la fonction initializeComponents
//void displayMenu(choice); // Déclarer la fonction displayMenu
int readUserChoice(); // Déclarer la fonction readUserChoice
void executeAction(int choice); // Déclarer la fonction executeAction
void setClock(); // Déclarer la fonction setClock
void toggleAlarm(); // Déclarer la fonction toggleAlarm
void setup() {
Serial.begin(9600);
pinMode(pinPotentiometer, INPUT);
display.begin(SSD1306_I2C_ADDRESS, 0x3C); // Initialiser l'écran OLED
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
Wire.begin();
// Initialisation des composants et du menu
initializeComponents();
}
void loop() {
// Lire le choix de l'utilisateur
// int userChoice = readUserChoice();
// Exécuter l'action correspondante au choix de l'utilisateur
// executeAction(userChoice);
int sensorValue = analogRead(pinPotentiometer);
int choice;
if (sensorValue >= 0 && sensorValue < 256) {
choice = 1; // changer heure matrice
} else if (sensorValue >= 256 && sensorValue < 512) {
choice = 2; // changer heure ecran
} else if (sensorValue >= 512 && sensorValue < 768) {
choice = 3; // activation desactivation reveil
} else {
choice = 4; // format heure
// display.setTextColor(Adafruit_GFX::Color565(0, 255, 0)); // Vert
}
Serial.print(choice);
// Afficher le menu sur l'écran OLED
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Menu:");
switch(choice){
case 1:
//display.setTextColor(0x07E0);
display.println(">> Reglage de l'heure matrice");
//display.setTextColor(WHITE);
display.println("Reglage de l'heure ecran");
display.println("Activation/Desactivation du reveil");
display.println("Changer format heure");
break;
case 2:
display.println("Reglage de l'heure matrice");
// display.setTextColor(0x07E0);
display.println(">> Reglage de l'heure ecran");
// display.setTextColor(WHITE);
display.println("Activation/Desactivation du reveil");
display.println("Changer format heure");
break;
case 3:
display.println("Reglage de l'heure matrice");
display.println("Reglage de l'heure ecran");
// display.setTextColor(0x07E0);
display.println(">> Activation/Desactivation du reveil");
// display.setTextColor(WHITE);
display.println("Changer format heure");
break;
case 4:
display.println("Reglage de l'heure matrice");
display.println("Reglage de l'heure ecran");
display.println("Activation/Desactivation du reveil");
// display.setTextColor(0x07E0);
display.println(">> Changer format heure");
// display.setTextColor(WHITE);
break;
}
display.display();
delay(1000); // Ajoutez un délai pour éviter les changements rapides de couleur
if
}
void initializeComponents() {
pinMode(pinPotentiometer, INPUT);
}
//void displayMenu(choice) {}
void selectMenu(){
}
// int readUserChoice() {
// Serial.print("Choisissez une option : ");
// while (!Serial.available()) {
// // Attendre que l'utilisateur fasse un choix
// }
// int choice = Serial.parseInt();
// Serial.println(choice); // Afficher le choix de l'utilisateur
// return choice;
//}
void executeAction(int choice) {
switch (choice) {
case 1:
setClock();
break;
case 2:
setClock();
break;
case 3:
toggleAlarm();
break;
default:
Serial.println("Option non valide. Veuillez choisir à nouveau.");
}
}
void setClock() {
// Implémenter la fonction pour régler l'heure
}
void toggleAlarm() {
// Implémenter la fonction pour activer/désactiver le réveil
}