Advertisement
claudiusmarius

TestIR0003DFT__A87

Apr 11th, 2023
607
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.45 KB | None | 0 0
  1. //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2.   // Compteur de passage - ATTINY85 - TM1637 - Barette NeopiXEL - TCRT5000
  3.   // Vidéo YouTube DFT_#A87 Compteur de passage - ATTINY85 - TM1637 - Barette NeopiXEL - TCRT5000
  4.   // https://youtu.be/j5TxYYgkPBA
  5.   // Claude DUFOURMONT
  6.   // https://www.youtube.com/c/ClaudeDufourmont
  7.   //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  8.  
  9.   #include <Adafruit_NeoPixel.h>                                // Librairie pour Néopixel
  10.   #include <TM1637Display.h>                                    // Librairie pour afficheur 4 digit 7 segments drivé par TM1637
  11.   #define CLK1 4                                                // PB4 affecté à la pin Clock TM1637
  12.   #define DIO1 0                                                // PB0 affecté à la pin DIO TM1637
  13.    
  14.   #define BrocheCapteurInfraRouge 2                             // PB2 affecté à la pin D0 du TCRT5000 (capteur IR)
  15.   #define BrocheBuzzer 1                                        // PB1 affecté au Buzzer
  16.   #define PIN      3                                            // PB3 affecté à la broche DIN de la barette Néopixel
  17.   #define N_LEDS 8
  18.  
  19.   TM1637Display display(CLK1, DIO1);                            // Objet afficheur avec ses ports affectés
  20.   Adafruit_NeoPixel strip(N_LEDS, PIN, NEO_GRB + NEO_KHZ800);   // Objet barette Néopixel
  21.  
  22.   int NbreDetectionCapteurInfraRouge = 0;                       // Initialisation à zéro du nombre de pasages détectés
  23.   int NbrePoints = 0;                                           // Initialisation à zéro du nombre de points
  24.  
  25.   void setup()
  26.   {
  27.   pinMode(BrocheCapteurInfraRouge, INPUT_PULLUP);              
  28.   pinMode(BrocheBuzzer, OUTPUT);
  29.  
  30.   display.setBrightness(0x0b);                                  // Iniatialisation de la brillance (échelle max = 0x0F)de l'afficheur 7 segments
  31.   display.clear ();                                             // Effacement afficheur 7 segments
  32.  
  33.   strip.begin();                                                // Préparation à afficher sur Néopixel
  34.   strip.clear();                                                // Effacement afficheur Néopixel
  35.   strip.setBrightness(20);                                      // Initialisation de la brillance (échelle max = 255) de la barette Néopixel
  36.   strip.show();                                                 // Affichage Néopixel
  37.  
  38.   }
  39.  
  40.   void loop()
  41.   {
  42.    
  43.   display.showNumberDec(NbrePoints,false, 4,0) ;                // Affichage nombre de points sur 7 segments
  44.  
  45.   if(digitalRead(BrocheCapteurInfraRouge)==LOW)                 // Comptage conditionnel des points, affichage et animation sonore et lumineuse
  46.   {
  47.           delay(10);
  48.           if(NbreDetectionCapteurInfraRouge==0)
  49.           {
  50.           NbrePoints=NbrePoints+5;
  51.           display.showNumberDec(NbrePoints,false, 4,0) ;
  52.           AnimationPassage1 ();         //ROUGE
  53.           }
  54.          
  55.           if(NbreDetectionCapteurInfraRouge==1)
  56.           {
  57.           NbrePoints=NbrePoints+10;
  58.           display.showNumberDec(NbrePoints,false, 4,0) ;
  59.           AnimationPassage2 ();         //VERT
  60.           }
  61.          
  62.           if(NbreDetectionCapteurInfraRouge==2)
  63.           {
  64.           NbrePoints=NbrePoints+20;
  65.           display.showNumberDec(NbrePoints,false, 4,0) ;
  66.           AnimationPassage4 ();         //ETEINT
  67.           }
  68.           NbreDetectionCapteurInfraRouge++;
  69.          
  70.           if(NbreDetectionCapteurInfraRouge==3)             //BLEU
  71.           {
  72.           NbreDetectionCapteurInfraRouge=0;
  73.           AnimationPassage3 ();
  74.           }
  75.           delay(20);
  76.   }
  77.  
  78.   }
  79.  
  80.   void Buzzer (int TempsH, int TempsL, int nb)                            // TempsH => délai buzzer ON, TempsL => délai buzzer OFF, nb => nombre de bips
  81.   {
  82.   for (int x = 1; x <= nb; x++) // ************************************** // Boucle le nombre de fois voulu passé par l'argument "int nb"
  83.   {
  84.   digitalWrite(BrocheBuzzer, HIGH);                                       // Active le buzzer
  85.   delay (TempsH);                                                         // Temporisation à l'état haut du buzzer pendant la durée passée par l'argument "int TempsH"
  86.   digitalWrite(BrocheBuzzer, LOW);                                        // Désactive le buzzer
  87.   delay (TempsL);                                                         // Temporisation à l'état bas du buzzer pendant la durée passée par l'argument "int TempsL"
  88.   }
  89.   }
  90.  
  91.   void AnimationPassage1 ()
  92.   {
  93.   for (int w = 0; w<= 7; w++)
  94.  
  95.   {
  96.   strip.setPixelColor(w, 255, 0, 0);
  97.   strip.show ();
  98.   }
  99.  
  100.   Buzzer(50, 80, 1);
  101.   delay (40);
  102.   }
  103.  
  104.   void AnimationPassage2 ()
  105.   {
  106.   for (int w = 0; w<= 7; w++)
  107.   {
  108.   strip.setPixelColor(w, 0, 255, 0);
  109.   strip.show ();
  110.   }
  111.  
  112.   Buzzer(50, 80, 2);
  113.   delay (5);
  114.   }
  115.  
  116.   void AnimationPassage3 ()
  117.   {
  118.   for (int w = 0; w<= 7; w++)
  119.   {
  120.   strip.setPixelColor(w, 0, 0, 255);
  121.   strip.show ();
  122.   }
  123.  
  124.   Buzzer(50, 80, 3);
  125.   delay (5);
  126.   }
  127.  
  128.   void AnimationPassage4 ()
  129.   {
  130.   for (int w = 0; w<= 7; w++)
  131.   {
  132.   strip.setPixelColor(w, 0, 0, 0);
  133.   strip.show ();
  134.   }
  135.  
  136.   //Buzzer(50, 80, 1);
  137.   delay (5);
  138.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement