// Déclaration des broches pour les segments du 7 segments
Const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8} ; // A, B, C, D, E, F, G
Const int stepperPins[] = {8, 9, 10, 11} ; // IN1, IN2, IN3, IN4
// Déclaration des séquences pour les chiffres 0 à 9 pour l’afficheur sept
segments
Const int digits[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
// Séquences de pas pour le moteur pas à pas (4 phases)
Const int stepSequence[8][4] = {
{1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
};
Void setup() {
// Initialisation des broches des segments comme sorties
For (int i = 0 ; i < 7 ; i++) {
pinMode(segmentPins[i], OUTPUT) ;
// Initialisation des broches du moteur pas à pas comme sorties
For (int i = 0 ; i < 4 ; i++) {
pinMode(stepperPins[i], OUTPUT) ;
Serial.begin(9600) ; // Pour le débogage
Void loop() {
// Décompte de 9 à 0
For (int i = 9 ; i >= 0 ; i--) {
// Affichage du chiffre sur le sept segments
displayDigit(i) ;
delay(1000) ; // Pause avant le prochain chiffre
// Rotation du moteur pas à pas après le décompte
rotateStepper(200) ; // Ajuster pour le nombre de pas désirés
// Attendre un moment avant de recommencer
Delay(5000) ;
Void displayDigit(int digit) {
For (int i = 0 ; i < 7 ; i++) {
digitalWrite(segmentPins[i], digits[digit][i]) ;
Void rotateStepper(int steps) {
For (int i = 0 ; i < steps ; i++) {
stepMotor(i % 8) ; // 8 étapes pour un cycle complet
delay(10) ; // Ajuster la vitesse du moteur
Void stepMotor(int step) {
For (int i = 0 ; i < 4 ; i++) {
digitalWrite(stepperPins[i], stepSequence[step][i]) ;