Advertisement
claudiusmarius

Testeur_Photo_Transistor

May 29th, 2021
1,018
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.81 KB | None | 0 0
  1.  
  2.   //================================================================================================================================================================
  3.   //                                                                Claude DUFOURMONT
  4.   //--------------------------------------------------------- claude.dufourmont@laposte.net -------------------------------------------------------------------------
  5.   //                  My YouTube : https://www.youtube.com/channel/UCvr9eb05lJow6N7m3SKqvNw
  6.   //    DUFOURMONT Le  : 17/01/2021
  7.   //    Ce système à pour but de déterminer le bon fonctionnement de capteurs optiques (phototransistors - LDR)
  8.   //    Il permet d'afficher leur caractéristique intrinsèque au moment du basculement sur un LCD(Ic pour le phototransistor - résistance pour la LDR)
  9.   //================================================================================================================================================================
  10.  
  11.  
  12.                               //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  13.                               //                           Code écrit pour ATtiny85                           >
  14.                               //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  15.  
  16.   #include <Adafruit_NeoPixel.h>
  17.   #include <TinyWireM.h>
  18.   #include <LiquidCrystal_I2C.h>
  19.   #define BrocheBarette                       1                                                   // Sortie vers DIN de la barette
  20.   #define BrocheBuzzer                        4  
  21.   #define NUM_LEDS                            8                                                   // Nombre de LEDs sur barette
  22.   #define FirstLed                            0                                                   // Position de la première LED à allumer
  23.   #define N                                   8                                                   // Nombre de LEDS à allumer
  24.  
  25.   Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, BrocheBarette, NEO_GRB + NEO_KHZ800);
  26.  
  27.   LiquidCrystal_I2C lcd(0x27,16,2);
  28.   byte customChar[8] = {
  29.    B00000,
  30.    B01100,
  31.    B01100,
  32.    B00000,
  33.    B00000,
  34.    B00000,
  35.    B00000,
  36.    B00000,
  37.    };
  38.   int x;
  39.                                                
  40.   float ValPhotoTransistor;                                                                         // Valeur analogique sur entrée analogique A2 (résultante capteur)
  41.   float ValPhotoTransistor2;
  42.   float IC;
  43.   float LDR;
  44.  
  45.   void setup()
  46.   {
  47.  
  48.   lcd.createChar (0,customChar);
  49.   strip.begin();
  50.   strip.clear();
  51.   strip.setBrightness(255);                                                                         // Brillance maximale (255)
  52.   strip.show();
  53.   pinMode (BrocheBarette, OUTPUT);
  54.   pinMode (BrocheBuzzer, OUTPUT);
  55.   delay(1000);
  56.  
  57.   lcd.init();                      // initialize the lcd
  58.  
  59.  
  60.   /*void loop ()
  61.   {*/
  62.   for(int i=FirstLed; i<FirstLed+N; i=i+2)                                                          
  63.   {
  64.   strip.setPixelColor(i, 255, 255, 255);
  65.   strip.show();                                                                                     // Alumage des LEDs de FirstLed à N (une sur deux)
  66.   }
  67.   // +++++++++++++++++++++++++++++++++++++++++++++++++++++++Détection DEBUT++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  68.   delay(5);
  69.   lcd.clear();
  70.   lcd.backlight();
  71.   lcd.setCursor(2,0);
  72.   lcd.print("SUPER TESTEUR");
  73.   lcd.setCursor(1,1);
  74.   lcd.print("CLAUDIUSMARIUS");
  75.  
  76.   delay (2000);
  77.  
  78.   Testing ();
  79.   ValPhotoTransistor = 0;
  80.   ValPhotoTransistor2 = 0;
  81.   for( x=0; x <10; x++)
  82.   {
  83.   ValPhotoTransistor = analogRead (A3);
  84.   ValPhotoTransistor2 += ValPhotoTransistor;
  85.   delay(1);
  86.   }
  87.   ValPhotoTransistor2 /=10;
  88.   IC = (5*ValPhotoTransistor2/1024/3.3);
  89.   LDR = (5-(3.3*IC))/IC*1000;
  90.   Results ();
  91.   }
  92.  
  93.  
  94.   // +++++++++++++++++++++++++++++++++++++++++++++++++++++++Détection FIN+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  95.  
  96.  
  97.   void loop ()
  98.   {
  99.   }
  100.  
  101.   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++DEBUT FONCTION BUZZER++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  102.   void Buzzer (int TempsH, int TempsL, int nb)                // TempsH => délai buzzer ON, TempsL => délai buzzer OFF, nb => nombre de bips
  103.   {
  104.   for (int x = 1; x <= nb; x++)                               // Boucle le nombre de fois voulu passée par l'argument "int nb"
  105.   {
  106.   digitalWrite(BrocheBuzzer, HIGH);                           // Active le buzzer
  107.   delay (TempsH);                                             // Temporisation à  l'état haut du buzzer pendant la durée passée par l'argument "int TempsH"
  108.   digitalWrite(BrocheBuzzer, LOW);                            // Désactive le buzzer
  109.   delay (TempsL);                                             // Temporisation à  l'état bas du buzzer pendant la durée passée par l'argument "int TempsL"
  110.   }
  111.   }
  112.   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++FIN FONCTION BUZZER++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  113.  
  114.   void Testing ()
  115.   {
  116.   lcd.clear();
  117.   lcd.setCursor(1,0);
  118.   lcd.print("TEST EN COURS");
  119.   lcd.setCursor (4,1);
  120.   lcd.print("PATIENCE");
  121.   delay(3000);
  122.   }
  123.  
  124.   void Results ()
  125.   {
  126.   Buzzer (100, 25, 1);
  127.   lcd.clear();
  128.   lcd.setCursor(0,0);
  129.   lcd.print("PHOT.(mA):");
  130.   lcd.setCursor (12,0);
  131.   lcd.print ((int)IC);
  132.   lcd.print (".");
  133.   lcd.print ((int)((float)(IC - (int)IC)*100));
  134.   lcd.setCursor (0,1);
  135.   lcd.print("LDR(");
  136.   lcd.setCursor (4,1);
  137.   lcd.write (0);
  138.   lcd.print ("):");
  139.   lcd.setCursor (9,1);
  140.   lcd.print ((int)LDR);
  141.   lcd.print (".");
  142.   lcd.print ((int)((float)(LDR - (int)LDR)*100));
  143.  
  144.  
  145.  
  146.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement