Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //================================================================================================================================================================
- // Claude DUFOURMONT
- //--------------------------------------------------------- claude.dufourmont@laposte.net -------------------------------------------------------------------------
- // My YouTube : https://www.youtube.com/channel/UCvr9eb05lJow6N7m3SKqvNw
- // DUFOURMONT Le : 17/01/2021
- // Ce système à pour but de déterminer le bon fonctionnement de capteurs optiques (phototransistors - LDR)
- // 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)
- //================================================================================================================================================================
- //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- // Code écrit pour ATtiny85 >
- //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- #include <Adafruit_NeoPixel.h>
- #include <TinyWireM.h>
- #include <LiquidCrystal_I2C.h>
- #define BrocheBarette 1 // Sortie vers DIN de la barette
- #define BrocheBuzzer 4
- #define NUM_LEDS 8 // Nombre de LEDs sur barette
- #define FirstLed 0 // Position de la première LED à allumer
- #define N 8 // Nombre de LEDS à allumer
- Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, BrocheBarette, NEO_GRB + NEO_KHZ800);
- LiquidCrystal_I2C lcd(0x27,16,2);
- byte customChar[8] = {
- B00000,
- B01100,
- B01100,
- B00000,
- B00000,
- B00000,
- B00000,
- B00000,
- };
- int x;
- float ValPhotoTransistor; // Valeur analogique sur entrée analogique A2 (résultante capteur)
- float ValPhotoTransistor2;
- float IC;
- float LDR;
- void setup()
- {
- lcd.createChar (0,customChar);
- strip.begin();
- strip.clear();
- strip.setBrightness(255); // Brillance maximale (255)
- strip.show();
- pinMode (BrocheBarette, OUTPUT);
- pinMode (BrocheBuzzer, OUTPUT);
- delay(1000);
- lcd.init(); // initialize the lcd
- /*void loop ()
- {*/
- for(int i=FirstLed; i<FirstLed+N; i=i+2)
- {
- strip.setPixelColor(i, 255, 255, 255);
- strip.show(); // Alumage des LEDs de FirstLed à N (une sur deux)
- }
- // +++++++++++++++++++++++++++++++++++++++++++++++++++++++Détection DEBUT++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- delay(5);
- lcd.clear();
- lcd.backlight();
- lcd.setCursor(2,0);
- lcd.print("SUPER TESTEUR");
- lcd.setCursor(1,1);
- lcd.print("CLAUDIUSMARIUS");
- delay (2000);
- Testing ();
- ValPhotoTransistor = 0;
- ValPhotoTransistor2 = 0;
- for( x=0; x <10; x++)
- {
- ValPhotoTransistor = analogRead (A3);
- ValPhotoTransistor2 += ValPhotoTransistor;
- delay(1);
- }
- ValPhotoTransistor2 /=10;
- IC = (5*ValPhotoTransistor2/1024/3.3);
- LDR = (5-(3.3*IC))/IC*1000;
- Results ();
- }
- // +++++++++++++++++++++++++++++++++++++++++++++++++++++++Détection FIN+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- void loop ()
- {
- }
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++DEBUT FONCTION BUZZER++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- void Buzzer (int TempsH, int TempsL, int nb) // TempsH => délai buzzer ON, TempsL => délai buzzer OFF, nb => nombre de bips
- {
- for (int x = 1; x <= nb; x++) // Boucle le nombre de fois voulu passée par l'argument "int nb"
- {
- digitalWrite(BrocheBuzzer, HIGH); // Active le buzzer
- delay (TempsH); // Temporisation à l'état haut du buzzer pendant la durée passée par l'argument "int TempsH"
- digitalWrite(BrocheBuzzer, LOW); // Désactive le buzzer
- delay (TempsL); // Temporisation à l'état bas du buzzer pendant la durée passée par l'argument "int TempsL"
- }
- }
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++FIN FONCTION BUZZER++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- void Testing ()
- {
- lcd.clear();
- lcd.setCursor(1,0);
- lcd.print("TEST EN COURS");
- lcd.setCursor (4,1);
- lcd.print("PATIENCE");
- delay(3000);
- }
- void Results ()
- {
- Buzzer (100, 25, 1);
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("PHOT.(mA):");
- lcd.setCursor (12,0);
- lcd.print ((int)IC);
- lcd.print (".");
- lcd.print ((int)((float)(IC - (int)IC)*100));
- lcd.setCursor (0,1);
- lcd.print("LDR(");
- lcd.setCursor (4,1);
- lcd.write (0);
- lcd.print ("):");
- lcd.setCursor (9,1);
- lcd.print ((int)LDR);
- lcd.print (".");
- lcd.print ((int)((float)(LDR - (int)LDR)*100));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement