|

Afficher la valeur du potentiomètre sur l’afficheur led 4 chiffres 7 segments du shield HW-262 sur un Arduino Uno

Prérequis :

Version IDE :

  • Arduino IDE 2.3.5

Vidéo de démonstration :

Schéma de câblage :

Code :

int sensorPin = A0;  // sélectionnez la broche d'entrée pour le potentiomètre

const int LCHCLK = 4;  //Broche connectée à LCHCLK sur MC74HC595AD
const int SFTCLK = 7;  //Broche connectée à SFTCLK sur 74HC595
const int SDI = 8;     //Broche connectée à SDI sur 74HC595

unsigned long previousMillis = 0;

int sensorValue = 0;
int Valeur = 0;
int ValeurDigit[4] = { 0, 0, 0, 0 };
int datArray[10] = {
  B11000000,  // 0
  B11111001,  // 1
  B10100100,  // 2
  B10110000,  // 3
  B10011001,  // 4
  B10010010,  // 5
  B10000010,  // 6
  B11111000,  // 7
  B10000000,  // 8
  B10010000,  // 9
};

int digit_num[] = { B00000001, B00000010, B00000100, B00001000 };

void setup() {

  Serial.begin(9600);
  pinMode(SFTCLK, OUTPUT);
  pinMode(LCHCLK, OUTPUT);
  pinMode(SDI, OUTPUT);
}

void loop() {

  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= 500) {
    previousMillis = currentMillis;
    sensorValue = analogRead(sensorPin);
    Serial.println(sensorValue);
    Valeur = sensorValue;
  }

  ValeurDigit[0] = (Valeur % 10000) / 1000;
  ValeurDigit[1] = (Valeur % 1000) / 100;
  ValeurDigit[2] = (Valeur % 100) / 10;
  ValeurDigit[3] = (Valeur % 10);

  for (int i = 0; i <= 3; i++) {
    digitalWrite(LCHCLK, LOW);
    shiftOut(SDI, SFTCLK, MSBFIRST, datArray[ValeurDigit[i]]);
    shiftOut(SDI, SFTCLK, MSBFIRST, digit_num[i]);
    digitalWrite(LCHCLK, HIGH);
    delay(2);
  }
}

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *