Étape 5: Le Code pour le contrôle TIMER
Cette esquisse utilise le CCF pour contrôler 4 relais à quelque intervalle de cycle ou d’heure vous souhaitez.
Copiez le schéma ci-dessous et le coller dans l’IDE Arduino vérifier et exécuter le programme.
cette esquisse a été créée en utilisant le code de l’adafruit et RTC-bibliothèques
CONNEXIONS RTC
Brancher le RTC VCC à l’Arduino + 5 v
RTC GND à la GND Arduino
RTC SDA à la goupille de Arduino analogique 4
SCL du CCF à la goupille de Arduino analogique 5
LCD AFFICHAGE CONNEXION
#define sclk 4 //connected à la broche numérique 4
#define mosi 5 //connected à digital PIN 5
//connected cs 6 #define numérique 6 PIN
//connected dc 7 #define numérique 7 broches
#define rst 8 //connected numérique 8 broches
CONNEXION DU RELAIS
GND relié au GND de l’Arduino
int Broche1 = 9 ; IN1 connecté au numérique 9
int broche 2 = 10 ; IN2 connecté à 10 numérique
int Pin3 = 11 ; In3 connecté à 11 numérique
int broche4 = 12 ; IN4 relié à 12 numérique
VCC connecté à Arduino + 5v
#include / / bibliothèque graphique de base
#include / / spécifiques au matériel bibliothèque
#include / / bibliothèque nécessaire pour RTC
#include / / bibliothèque nécessaire pour RTC
#include « RTClib.h » //RTC bibliothèque
RTC_DS1307 CCF ;
Tft Adafruit_ST7735 = Adafruit_ST7735 (cs, dc, mosi, sclk, rst) ;
void setup(void) {}
DÉFINITION DE PINS POUR COMMANDE DE RELAIS
pinMode (Pin1, sortie) ;
pinMode (Pin2, sortie) ;
pinMode (broche 3, sortie) ;
pinMode (Pin4, sortie) ;
Wire.Begin() ;
RTC.begin() ;
tft.initR(INITR_BLACKTAB) ; initialiser un onglet de puce, noire ST7735S
tft.fillScreen(ST7735_BLACK) ; Efface l’écran
digitalWrite (broche 1, 1) ;
digitalWrite (Pin2, 1) ;
digitalWrite (broche 3, 1) ;
digitalWrite (Pin4, 1) ;
tft.setCursor(0,50) ;
TFT.println ("10 secondes d’attente") ;
TFT.println ("pour les CCF de synchronisation") ;
retard (10000); //wait pour RTC pour répondre, si pas de temporisation
tft.fillScreen(ST7735_BLACK) ; Efface l’écran
if (!. {RTC.isrunning())}
TFT.println ("CCF ne était pas running!") ;
TFT.println ("réinitialisation RTC") ;
suivant ligne définit le CCF à la date et l’heure de que cette esquisse a été compilée
RTC.adjust (DateTime (__DATE__, __TIME__)) ;
tft.fillScreen(ST7735_BLACK) ; Efface l’écran
}
}
void loop() {}
tft.setCursor(10,10) ;
tft.setTextColor(ST7735_WHITE) ;
tft.setTextSize(1) ;
TFT.println ("minuterie") ;
tft.setTextColor (ST7735_YELLOW, ST7735_BLACK); //set couleurdutexte & taille date venant de TinyRTC
tft.setTextSize(2) ;
tft.setCursor(5,30) ;
DateTime maintenant = RTC.now() ; SAISIR LA DATE ET L’HEURE DE CCF
TFT.Print(Now.Year(), DEC) ;
TFT.Print('/') ;
TFT.Print(Now.month(), DEC) ;
TFT.Print('/') ;
TFT.Print(Now.Day(), DEC) ;
TFT.println(' ') ;
tft.setCursor(15,70) ;
tft.setTextColor(ST7735_GREEN,ST7735_BLACK) ; couleur définie pour le moment
tft.setTextSize (2); //set taille du texte à temps, venant de TinyRTC
TFT.Print(Now.Hour(), DEC) ;
TFT.Print(':') ;
if(Now.minute() < 10) {//PRINT A 0 devant IF LESS THAN 10 minutes
TFT.Print('0') ;
TFT.Print(Now.minute(), DEC) ;
}
else {}
TFT.Print(Now.minute(), DEC) ;
}
TFT.Print(':') ;
if(Now.second() < 10) {//PRINT A 0 devant les SECONDS IF LESS THAN 10
TFT.Print('0') ;
TFT.Print(Now.second(), DEC) ;
}
else {}
TFT.Print(Now.second(), DEC) ;
}
TFT.println("") ;
IL S’AGIT DE LA PORTION DE PRISE DE DÉCISION DE L’ESQUISSE, CET EXEMPLE EST UN CYCLE D’UNE MINUTE
À DES FINS DE DÉMONSTRATION : IT S’ALLUME RELAIS 1 À 10 SECONDES, PUIS ARRÊT À 20
IL ALORS TOUR À TOUR RELAIS 2 ET 4 ON EN 40 SECONDES ET S’ÉTEINDRA À 50,
À 50 SECONDES, ELLE TOURNE VERS LE RELAIS 1 ET 3 PUIS ARRÊT À 0
if(Now.second() == 10) {}
tft.setCursor(0,100) ;
tft.setTextColor(ST7735_GREEN,ST7735_BLACK) ; définir la couleur pour le moment ON
tft.setTextSize (1); //set la taille du texte
TFT.Print ("Relais 1 est sur") ;
digitalWrite (Pin1, 0) ;
}
if(Now.second() == 20) {}
tft.setCursor(0,100) ;
tft.setTextColor(ST7735_RED,ST7735_BLACK) ; définir la couleur pour le moment ON
tft.setTextSize (1); //set la taille du texte
TFT.Print ("Relais 1 est éteint") ;
digitalWrite (broche 1, 1) ;
}
if(Now.second() == 40) {}
digitalWrite (Pin1, faible) ;
digitalWrite (Pin2, élevé) ;
digitalWrite (Pin3, faible) ;
digitalWrite (Pin4, élevé) ;
tft.setCursor(0,100) ;
tft.setTextColor(ST7735_RED,ST7735_BLACK) ; définir la couleur pour le moment ON
tft.setTextSize (1); //set la taille du texte
tft.setTextColor(ST7735_GREEN,ST7735_BLACK) ;
TFT.println ("Relais 1 est sur") ;
tft.setTextColor(ST7735_RED,ST7735_BLACK) ;
TFT.println ("Relais 2 est éteint") ;
tft.setTextColor(ST7735_GREEN,ST7735_BLACK) ;
TFT.println ("Relais 3 est sur") ;
tft.setTextColor(ST7735_RED,ST7735_BLACK) ;
TFT.println ("relais 4 est éteint") ;
}
if(Now.second() == 50) {}
digitalWrite (Pin1, élevé) ;
digitalWrite (Pin2, faible) ;
digitalWrite (Pin3, élevé) ;
digitalWrite (Pin4, faible) ;
tft.setCursor(0,100) ;
tft.setTextColor(ST7735_RED,ST7735_BLACK) ; définir la couleur pour le moment ON
tft.setTextSize (1); //set la taille du texte
TFT.println ("Relais 1 est éteint") ;
tft.setTextColor(ST7735_GREEN,ST7735_BLACK) ;
TFT.println ("Relais 2 est sur") ;
tft.setTextColor(ST7735_RED,ST7735_BLACK) ;
TFT.println ("Relais 3 est éteint") ;
tft.setTextColor(ST7735_GREEN,ST7735_BLACK) ;
TFT.println ("relais 4 est sur") ;
}
if(Now.second() == 00) {}
digitalWrite (Pin1, élevé) ;
digitalWrite (Pin2, élevé) ;
digitalWrite (Pin3, élevé) ;
digitalWrite (Pin4, élevé) ;
tft.setCursor(0,100) ;
tft.setTextColor(ST7735_RED,ST7735_BLACK) ; définir la couleur pour le moment ON
tft.setTextSize (1); //set la taille du texte
TFT.println ("Relais 1 est éteint") ;
TFT.println ("Relais 2 est éteint") ;
TFT.println ("Relais 3 est éteint") ;
TFT.println ("relais 4 est éteint") ;
}
}