Jump to: navigation, search

Système Technique Simple - BA3:Gavin Sobnack

Memento Mori

B3-SOBNACK-electro.jpg

Note d'intention artistique

Memento Mori s'inspire directement des vanités, [1] œuvres dont l'objectif est de rappeler à l'homme sa finitude par l'utilisation de symboles forts renvoyant à la mort (crâne) ou à l'éphémère (fleurs, bougie…). Le titre, Memento Mori, est une locution latine parfois utilisée pour désigner les vanités et signifie [2] "souviens-toi que tu vas mourir". Le dispositif se compose d'un afficheur à segments LED avec un compte à rebours commençant à 79 minutes et 71 secondes, correspondant à 79.71 ans [3], la moyenne de l'espérance de vie à la naissance en Belgique tout sexe confondu. Le spectateur peut choisir de retarder le compte à rebours en appuyant sur un bouton à côté du compteur, mais ne peut l'arrêter : la mort peut être repoussée, mais reste inéluctable. D'autant plus que le spectateur perd de son propre temps en essayant en vain d'empêcher le décompte d'atteindre 0.

Synthèse technique détaillant la mise en oeuvre du dispositif technique choisi

  • 1 Arduino Uno;
  • 1 quadruple afficheur à 7 segments;
  • 5 résistances 220 Ohm;
  • 1 bouton pressoir;
  • 23 câbles mâle-mâle;

Fritzing

B3-SOBNACK-schema-electro.jpg B3-SOBNACK-examen-electro.jpg

Arduino

//LIBRAIRIES
#include "SevSeg.h"


//VARIABLES
int buttonPin = A0; //PIN BOUTON
//Etat du bouton
int buttonState;
int buttonCurrState;
int lastButtonState = LOW;

long lastDebounceTime = 0;  // dernier
long debounceDelay = 42;  //délai

SevSeg sevseg; //seven segment controller


//SETUP
void setup() {
  byte numDigits = 4; //nombre d'afficheurs
  byte digitPins[] = {10, 11, 12, 13}; //chiffres
  byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; //segments
  sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins); 
  sevseg.setBrightness(90); //intensité des leds
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);
  buttonState = analogRead(buttonPin);
}


//LOOP
void loop() {

  //Timer
  
  buttonCurrState = analogRead(buttonPin);
  static unsigned long timer = millis();
  static int deciSeconds = 7971;
  //countdown :
  if (millis() >= timer) {
    deciSeconds--;
    timer += 1000; 
    // Reset :
    if (deciSeconds == 0) {
      delay(5000);
      deciSeconds = 7971;
    }
  }

  //Debouncing & incrémentation

  if (buttonCurrState != lastButtonState) {
    lastDebounceTime = millis(); //reset le timer pour le debouncing
  }
  //Vérifie si le delai est dépassé
  if ((millis() - lastDebounceTime) > debounceDelay) {
    // si l'état du bouton a changé :
    if (buttonCurrState != buttonState) {
      // Si le bouton est pressé, on incrémente le timer.
      if (buttonState == LOW) {
        deciSeconds++;
      }
    }
  }
 
  lastButtonState = buttonCurrState;
 
  sevseg.setNumber(deciSeconds, 4);
  sevseg.refreshDisplay(); // rafraichit l'affichage
}

Références

[1] http://www.larousse.fr/encyclopedie/divers/vanit%C3%A9/100727

[2] https://fr.wikipedia.org/wiki/Memento_mori

[3] http://www.ined.fr ( respectivement http://www.ined.fr/devision2/dv_ExtractorGuide-rpc.php?cmd=PlotGraph&layout=Line&c%5B%5D=8&i%5B0%5D=6&i%5B1%5D=&doLabels=Y et http://www.ined.fr/devision2/dv_ExtractorGuide-rpc.php?cmd=PlotGraph&layout=Line&c%5B%5D=8&i%5B0%5D=7&i%5B1%5D=&doLabels=Y )