/*
Projet: 420-1C3
Fichier: shift-byte.ino
Auteur: ve2cuy
Date: 2022.09.09
-------------------------------------------------
Description: Animations de DELs en utilisant les
opérations sur les bits.
-------------------------------------------------
M-A-J:
-------------------------------------------------
*/
#define SCROLL_DELAY 300
#define UNE_SECONDE 1000
#define AFFICHER(x) Serial.print(x)
#define ETABLIR_COM_SERIE Serial.begin(9600)
void setup() {
ETABLIR_COM_SERIE;
AFFICHER("------------------------------\n");
AFFICHER("Début du programme: shift-byte\nPar ve2cuy (c) 2022\n");
AFFICHER("------------------------------\n\n");
// Allumer tous les DEL en utilisant le port D
AFFICHER("setup:: Allumer toutes les DEL en utilisant le port D\n");
PORTD = 0b11111111;
AFFICHER("Délai d'une seconde ...\n");
delay(UNE_SECONDE);
}
void loop() {
AFFICHER("\nDébut de la fonction loop()\n");
AFFICHER("\nAllumer les bits impairs\n");
PORTD = 0b10101010;
delay(UNE_SECONDE / 2);
AFFICHER("\nAllumer les bits pairs\n");
PORTD = 0b01010101;
delay(UNE_SECONDE / 2);
// Déplacement vers la gauche
AFFICHER("\nDéplacement vers la gauche\n");
for (int i = 0; i<7; i++){
PORTD <<= 2;
// PORTD = PORTD << 1;
delay(SCROLL_DELAY);
}
PORTD = 0b10000000;
AFFICHER("\nDéplacement vers la droite\n");
for (int i = 0; i<7; i++) {
PORTD = PORTD >> 1;
// PORTD |= 0b11111111;
delay(SCROLL_DELAY);
}
AFFICHER("\nBalayage gauche, droit ...\n");
for (int i = 0; i<10; i++) {
PORTD = 0b10101010;
delay(SCROLL_DELAY*1.5);
PORTD = 0b01010101;
delay(SCROLL_DELAY*1.5);
}
AFFICHER("\nDécompte binaire ...\n");
for (int i = 0; i<=0xFF; i++) {
PORTD = i;
delay(SCROLL_DELAY/3);
}
AFFICHER("\n------------------------------\n");
AFFICHER("Et nous recommençons ...");
AFFICHER("\n------------------------------\n\n");
}