Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. #include <Adafruit_NeoPixel.h>
  2.  
  3. #define PIXEL_PIN 3 // On définit le pin où est connecté la patte DATA du bandeau
  4. #define PIXEL_COUNT 21 // On définit le nombre de LED compris sur le Ruban de LED soit 150 pour le ruban de 5m50
  5. Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); // Paramètre l'objet strip qui correspond à toute les LED du ruban
  6. long luminosite; //Initialise la variable luminosité
  7. int mode = 0; //Initialise et met la variable mode sur 0
  8. int BOUTON1 = 5; //Défini le Bouton 1 sur le port 5
  9. int BOUTON2 = 6; //Défini le Bouton 2 sur le port 6
  10. long valeurPot; //Initialise la variable de la valeur de potentiomètre
  11. int r = 255; //
  12. int g = 255; //
  13. int b = 255; // Initialise les variables de couleurs sur du blanc
  14. int temps = 10; //Initialise la variable temps et la met sur 10. Utile par la suite
  15.  
  16. void allumerTout(int luminosite, int red, int green, int blue)
  17. {
  18. /*
  19. Allume toutes les LEDs en fonction de la luminosité et du choix des couleurs
  20. */
  21.  
  22. strip.setBrightness(luminosite); //Défini la luminosité en fonction de la variable luminosité obtenue à partir du potentiomètre
  23. for (int i = 0 ; i < PIXEL_COUNT ; i++)
  24. {
  25. strip.setPixelColor(i, strip.Color(red, blue, green)); //Défini la couleur de chaque LED (de 0 à PIXEL_COUNT --> nombre de LEDs défini) en fonction des couleurs choisies
  26. }
  27. strip.show(); //Actualise les LEDs
  28. }
  29.  
  30. void actualiserLuminosite()
  31. {
  32. /*
  33. Réccupère l'information du potentiomètre pour adapter la variable de luminosité
  34. */
  35.  
  36. valeurPot = analogRead(A0); //Lecture du potentiomètre (entre 0 et 1015)
  37. luminosite = 100 * (valeurPot) / 1015; //Adaptation et actualisation de la variable (produit en croix --> entre 0 et 100)
  38. }
  39.  
  40. void choisirCouleurAleatoire()
  41. {
  42. /*
  43. Défini une valeur aléatoire sur chaque variable de couleur. 16.77 millions de possibilités (256^3)
  44. */
  45.  
  46. r = random(255); //défini la couleur rouge à une valeur entre 0 et 255 (sur 1 octet. 2^8=256 possibilités)
  47. g = random(255); //défini la couleur verte à une valeur entre 0 et 255 (sur 1 octet. 2^8=256 possibilités)
  48. b = random(255); //défini la couleur bleue à une valeur entre 0 et 255 (sur 1 octet. 2^8=256 possibilités)
  49. }
  50.  
  51.  
  52.  
  53. void mode0()
  54. {
  55. /*
  56. Mode de fonctionnement initial : LEDs éteintes
  57. */
  58.  
  59. allumerTout(0, 0, 0, 0); //luminosité à 0 --> éteint
  60. if (digitalRead(BOUTON2) == true) //Si le bouton 2 est appuyé
  61. {
  62. mode++; //On passe au mode suivant
  63. delay(500); //Délai de sécurité
  64. }
  65. }
  66.  
  67. void mode1()
  68. {
  69. /*
  70. Premier mode de fonctionnement : Couleur unie
  71. Lorsque le bouton 1 est appuyé, on choisi une couleur aléatoire. On recommence jusqu'à ce que la couleur nous convienne
  72. */
  73.  
  74. actualiserLuminosite(); //Actualiser la variable luminosité
  75. allumerTout(luminosite, r, g, b); //Allumer toutes les LEDs sur une couleur prédéfini
  76. if (digitalRead(BOUTON1) == true) //Si le bouton 1 est pressé,
  77. {
  78. choisirCouleurAleatoire(); //On choisi une autre couleur aléatoirement
  79. delay(200); //On laisse un délai de sécurité
  80. }
  81. if (digitalRead(BOUTON2) == true) //Si le bouton 2 est appuyé
  82. {
  83. mode++; //On passe au mode suivant
  84. delay(500); //Délai de sécurité
  85. }
  86. }
  87.  
  88. void setup() //Initialisation
  89. {
  90. Serial.begin(9600); //Ouverture du serial pour débugguer si besoin
  91. randomSeed(analogRead(0)); //Défini les valeurs aléatoires
  92. strip.begin(); //fonction d'initialisation du bandeau LEDs
  93. pinMode(BOUTON1, INPUT); //Déclaration du bouton 1 en entrée
  94. pinMode(BOUTON2, INPUT); //IDEM pour le bouton 2
  95. }
  96.  
  97. void loop()
  98. {
  99. delay(10); //Délai pour éviter une boucle trop rapide
  100.  
  101. ////////////////////////////
  102.  
  103. if (mode == 0) //Si le mode 0 est séléctionné
  104. {
  105. mode0(); //On lance le mode 0
  106. }
  107. if (mode == 1) //Si le mode 1 est séléctionné
  108. {
  109. mode1(); //On lance le mode 1
  110. }
  111.  
  112. if(mode>1)
  113. {
  114. mode=0;
  115. }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement