Poster une réponse 
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Afficheur 8 digits + bouton
29-06-2015, 19:58 (Ce message a été modifié le : 29-06-2015 19:59 par maxime.)
Message : #1
Afficheur 8 digits + bouton
Le but est d'appuyer sur le bouton pour pouvoir faire diminuer le compte à rebours

   

Code :
// 1 = LED on, 0 = LED off, in this order:
//                                              Arduino pin: 2,3,4,5,6,7,8,9
byte seven_seg_digits[10][8] = {                           { 1,1,0,1,1,1,0,1 },  // = 0
                                                           { 0,0,0,0,0,1,0,1 },  // = 1
                                                           { 1,1,1,0,1,1,0,0 },  // = 2
                                                           { 1,0,1,0,1,1,0,1 },  // = 3
                                                           { 0,0,1,1,0,1,0,1 },  // = 4
                                                           { 1,0,1,1,1,0,0,1 },  // = 5
                                                           { 1,1,1,1,1,0,0,1 },  // = 6
                                                           { 0,0,0,0,1,1,0,1 },  // = 7
                                                           { 1,1,1,1,1,1,0,1 },  // = 8
                                                           { 1,0,1,1,1,1,0,1 }   // = 9
                                                           };
#define BUTTON_PIN        1  // Button
int count = 0;      

void setup() {                
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  //writeDot(0);  // start with the "dot" off //?

  //Button
  pinMode(BUTTON_PIN, INPUT);
  digitalWrite(BUTTON_PIN, HIGH); // connect internal pull-up
  sevenSegWrite(0); //display a 0 by default
}

void writeDot(byte dot) {
  digitalWrite(9, dot);
}
    
void sevenSegWrite(byte digit) {
  byte pin = 2;
  for (byte segCount = 0; segCount < 8; ++segCount) {
    digitalWrite(pin, seven_seg_digits[digit][segCount]);
    ++pin;
  }
}

boolean handle_button(){
  int button_pressed = !digitalRead(BUTTON_PIN); // pin low -> pressed
  return button_pressed;
}


void loop() {
  // handle button
  boolean button_pressed = handle_button();

  digitalWrite(0, 9);
  if (button_pressed) {
    if (count < 10) {
      delay(200);
      sevenSegWrite(count);
      Serial.print(count);
      count++;
    } else {
      delay(200);
      count = 0;
      sevenSegWrite(count);
      count++;
    }
  }
  
  delay(100);

  
}
Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse
Poster une réponse 


Aller à :


Utilisateur(s) parcourant cette discussion : 1 visiteur(s)