Created
July 6, 2020 17:43
-
-
Save Franck1333/b5400f425e3a0cbf135d5d6d5388da7e to your computer and use it in GitHub Desktop.
Programme Arduino simple ayant pour but de tester la valeur du bouton d'action pour déclencher oui/non le relay connecter a la pompe.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//This example has to be used with any SSD1306 screen Vertical/Horizontal screen with ~1" spec. | |
//This example use the Adafruits libs. | |
//AIDE: http://adafruit.github.io/Adafruit_SSD1306/html/index.html | |
//AIDE: https://projetsdiy.fr/ssd1306-mini-ecran-oled-i2c-128x64-arduino/ | |
//---DECLARATION_SCREEN--- | |
#include <SPI.h> | |
#include <Wire.h> | |
#include <Adafruit_GFX.h> | |
#include <Adafruit_SSD1306.h> | |
#define SCREEN_WIDTH 128 // OLED display width, in pixels | |
#define SCREEN_HEIGHT 32 // OLED display height, in pixels | |
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) | |
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin) | |
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); | |
//---DECLARATION_SCREEN--- | |
//-------------FONCTION_PRINCIPALE------------- | |
const int RELAY = 3; //Pin Signale du Relay | |
const int BOUTON = 4; //Pin Signale du Bouton de commande | |
//-------------FONCTION_PRINCIPALE------------- | |
void setup() { | |
Serial.begin(9600); | |
//---INIT_SCREEN--- | |
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally | |
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32 | |
Serial.println(F("SSD1306 allocation failed")); | |
for(;;); // Don't proceed, loop forever | |
} | |
// Show initial display buffer contents on the screen -- | |
// the library initializes this with an Adafruit splash screen. | |
display.display(); | |
// Clear the buffer | |
display.clearDisplay(); | |
delay(2048); | |
// display.display() is NOT necessary after every single drawing command, | |
// unless that's what you want...rather, you can batch up a bunch of | |
// drawing operations and then update the screen all at once by calling | |
// display.display(). These examples demonstrate both approaches... | |
//---INIT_SCREEN--- | |
//---INIT_PIN--- | |
pinMode(RELAY, OUTPUT); //Initialisation du Pin Signale du Relay | |
pinMode(BOUTON,OUTPUT); //Initialisation du Pin Signale du Bouton de commande | |
//---INIT_PIN--- | |
//HelloWorld(); | |
//TestLigneAffichage(); | |
} | |
void loop() { | |
// put your main code here, to run repeatedly: | |
Tirage(); | |
} | |
void HelloWorld(void){ | |
display.clearDisplay(); //Nettoyage du 'buffer' de l'ecran | |
Serial.println("HelloWorld!!!"); //Message visible dans la console | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,0); // On va ecrire en x=0, y=0 | |
display.print("Hello,"); // Un print pour écrire du texte sur l'ecran | |
display.println(" world!"); // Un println pour écrire du texte sur l'ecran | |
display.display(); // Affichage du Resultat | |
} | |
void TestLigneAffichage(void){ | |
display.clearDisplay(); //Nettoyage du 'buffer' de l'ecran | |
Serial.println("Teste d'affichage de l'ecran OLED."); //Message visible dans la console | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,0); // On va ecrire en x=0, y=0 | |
display.print("Ligne d'affichage 1"); // Un println pour écrire du texte sur l'ecran | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,10); // On va ecrire en x=0, y=10 | |
display.print("Ligne d'affichage 2"); // Un println pour écrire du texte sur l'ecran | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,20); // On va ecrire en x=0, y=20 | |
display.print("Ligne d'affichage 3"); // Un println pour écrire du texte sur l'ecran | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,30); // On va ecrire en x=0, y=30 | |
display.print("Ligne d'affichage 4"); // Un println pour écrire du texte sur l'ecran | |
display.display(); // Affichage du Resultat | |
} | |
void Tirage(void){ | |
bool BOUTON_ETAT = digitalRead(BOUTON); //Enregistrement de la Valeur detectee au Pin Signale du Bouton de commande | |
//Serial.print("Etat Bouton: "); | |
//Serial.println(BOUTON_ETAT); | |
if(BOUTON_ETAT == true) //Si le bouton n'est pas actionner alors... | |
{ | |
display.clearDisplay(); //Nettoyage du 'buffer' de l'ecran | |
Serial.println("Bouton Non Actionner donc Relay OUVERT,"); //Message dans la console serie | |
Serial.println("Aucun flux eletrique ne passe."); //Message dans la console serie | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,0); // On va ecrire en x=0, y=0 | |
display.print("En Attente..."); // Un println pour écrire du texte sur l'ecran | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,10); // On va ecrire en x=0, y=10 | |
display.print("Distrib Dispo..."); // Un println pour écrire du texte sur l'ecran | |
//Volume de liquide deplacer par la pompe | |
//D'apres la doc (https://tinyurl.com/GikfunMiniPompeaAIR), la pompe deplace 1,5 Litre/Minutes | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,20); // On va ecrire en x=0, y=20 | |
display.print("Volume 1,5L/Min"); // Un println pour écrire du texte sur l'ecran | |
digitalWrite(RELAY,LOW); //...Alors le RELAY sera DESACTIVER. | |
display.display(); // Affichage du Resultat | |
delay(512); | |
} | |
else if (BOUTON_ETAT == false) //Si le bouton est actionner alors... | |
{ | |
display.clearDisplay(); //Nettoyage du 'buffer' de l'ecran | |
Serial.println("Bouton Actionner donc Relay FERMER,"); //Message a lire dans la console serie | |
Serial.println("Un flux eletrique passe."); //Message a lire dans la console serie | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,0); // On va ecrire en x=0, y=0 | |
display.print("En Service..."); // Un println pour écrire du texte sur l'ecran | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,13); // On va ecrire en x=0, y=0 | |
display.print("SVP Patientez..."); // Un println pour écrire du texte sur l'ecran | |
display.setTextColor(WHITE); // La couleur du texte | |
display.setCursor(0,24); // On va ecrire en x=0, y=0 | |
display.print(BOUTON_ETAT); // Un println pour écrire du texte sur l'ecran | |
digitalWrite(RELAY,HIGH); //...Alors le RELAY sera ACTIVER. | |
display.display(); // Affichage du Resultat | |
delay(512); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment