Advertisement
Makerino

delorian lichteffekt

May 7th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.20 KB | None | 0 0
  1. /*
  2.  * Das Projekt soll wie folgt funktionieren:
  3.  * Die Methode "lauflicht" hat eine innere und eine äußere for-Schleife
  4.  * Die innere for-Schleife schlatet, bei 70 beginnend immer 5 LED hintereinander an und lässt diese dann bis 0 durchlaufen
  5.  * Das ganze läuft dann über die äußere Schleife
  6.  * bei blitzen und leuchten werden alle LED über eine for-Schleife nacheinander eingeschaltet. Dies sollte so schnell gehen das es so aussieht als würden alle gleichzeitig angeschaltet werden
  7.  */
  8.  
  9.  
  10. #include <Adafruit_NeoPixel.h>    //https://github.com/adafruit/Adafruit_NeoPixel
  11. #define PIN 9                     //der pin auf dem die Neopixel angeschlossen werden
  12. #define NUMPIXELS 70
  13. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  14.  
  15. int pause2 = 500;
  16.  
  17. void setup(){
  18.   pixels.begin(); // Initialisierung der NeoPixel
  19. }
  20.  
  21. void loop(){
  22. lauflicht(20, 1000, 60); //lauflicht(dauer wie lange eine LED an ist, Pause nachdem ein druchlauf fertig ist, Helligkeit in %)
  23. delay(pause2);
  24. blitz(30);              
  25. delay(pause2);
  26. leuchten();
  27. delay(2000);
  28. }
  29.  
  30. void lauflicht(int dauer, int pause, int helligkeit){
  31.  
  32.   for (int x = 0; x <= 5; x++) {          //mit dem Teil "x <= 5" werden die durchläufe des Lauflicht festgelet. Auch diesen wert kannst du ja etwas Variieren um es so hinzubekommen wie du möchtest.
  33.    
  34.         for (int i = 74; i >= 0; i--) {    //in der Erklärung ist dies die innere Lauflicht for-Schleife
  35.         pixels.setPixelColor(i, pixels.Color(255/100*helligkeit,178/100*helligkeit,0));   //Dieser Zahlenwert soll Gelb ergeben. Laut internet nimmt man dazu 100% rotanteil und ca 70% Grün Anteil, aber du kannst mit dem Zahlenwert ja etwas experimentieren um eine Schöneres Gelb hinzubekommen
  36.         pixels.setPixelColor(i-1, pixels.Color(255/100*helligkeit,178/100*helligkeit,0));
  37.          pixels.setPixelColor(i-2, pixels.Color(255/100*helligkeit,178/100*helligkeit,0));
  38.           pixels.setPixelColor(i-3, pixels.Color(255/100*helligkeit,178/100*helligkeit,0));
  39.            pixels.setPixelColor(i-4, pixels.Color(255/100*helligkeit,178/100*helligkeit,0));
  40.         pixels.show();
  41.         delay(dauer);
  42.         pixels.setPixelColor(i, pixels.Color(0,0,0));
  43.         pixels.setPixelColor(i-1, pixels.Color(0,0,0));
  44.         pixels.setPixelColor(i-2, pixels.Color(0,0,0));
  45.         pixels.setPixelColor(i-3, pixels.Color(0,0,0));
  46.         pixels.setPixelColor(i-4, pixels.Color(0,0,0));
  47.         pixels.show();
  48.         }    
  49.     delay(pause-(35*x*x);
  50.   }
  51. }
  52.  
  53. void blitz(int zeitzwischen){  
  54. pixels.fill(pixels.Color(255,255,255), 0, 70);
  55. pixels.show();
  56. delay(zeitzwischen);
  57. pixels.fill(pixels.Color(0,0,0), 0, 70);
  58. pixels.show();
  59. delay(zeitzwischen);
  60. pixels.fill(pixels.Color(255,255,255), 0, 70);
  61. pixels.show();
  62. delay(zeitzwischen);
  63. pixels.fill(pixels.Color(0,0,0), 0, 70);
  64. pixels.show();
  65. delay(zeitzwischen);
  66. pixels.fill(pixels.Color(255,255,255), 0, 70);
  67. pixels.show();
  68. delay(zeitzwischen);
  69. pixels.fill(pixels.Color(0,0,0), 0, 70);
  70. pixels.show();
  71. delay(zeitzwischen);
  72. }
  73.  
  74. void leuchten(){
  75. pixels.fill(pixels.Color(255,255,255), 0, 70);
  76. pixels.show();
  77. delay(2000);
  78. pixels.fill(pixels.Color(0,0,0), 0, 70);
  79. pixels.show();
  80. delay(500);
  81.       }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement