Advertisement
jaan9

RGB adressbare m/kommentarer

Jan 24th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Test funksjon for adressbare RGB LED. Kan brukes til enkle lysshow med videreutvikling.
  2.  * Koden er basert på FastLED biblioteket som kan lastes ned, NODEMCU utviklingsbrett og
  3.  * WS 2812b RGBer. På grunn av dette kan det være noen funksjoner som ser litt merkelig ut,
  4.  * men se følgende kommentarer for videre beskrivelse.
  5.  *
  6.  * Utviklet med tanke på skoleelver på VG 1 elektrofag, men koden skal være overkommelig å
  7.  * forstå for alle hvis man setter seg inn i kodeteori og RGB dioder.  
  8.  *
  9.  * Skrevet av grimreaper87 fra arduino solutions
  10.  *
  11.  * Kommentar pre setup:
  12.  * Bruker i denne koden mye #define, hvilket er et alternativ til int/const int. I enkelte utrykk er
  13.  * det mer hensiktsmessig å bruke define, spesielt hvis det er en instruks. F.eks Led type eller farge
  14.  * rekkefølge.
  15.  */
  16. #define FASTLED_ESP8266_RAW_PIN_ORDER                              
  17. //Legger til et "kart" i koden for nettverksmodulen, slik at pinneadressen stemmer. Se pin layout for NODEMCU. Må være først i denne koden.
  18.  
  19. #include <FastLED.h>                                                //Legger til biblioteket FastLED i koden
  20. #define LED_PIN     2                                               //Dedikerer pinne 2 til datastrøm for RGBene
  21. #define NUM_LEDS    255                                             //Antall LED på båndet vi ønsker å teste. Endres etter behov
  22. #define LED_TYPE    WS2812B                                         //Instruks for FastLED. Forteller hvilken RGB type den skal styre (IC)
  23. #define COLOR_ORDER GRB                                             //Bestemmer fargerekkefølge
  24. #define BRIGHTNESS  60                                              //Bestemmer grunnlag for lysstyrke. Endres etter behov senere i koden
  25. CRGB leds[NUM_LEDS];                                                //Forteller hvor mange LEDer vi skal styre til FastLED
  26.  
  27. /*Kommentar setup:
  28.  * Kort og enkelt setup, selv om det er utrykk fra Fastled bibliotek. Kort forklart stilles lystryke inn,
  29.  * samt adressbare RGB programmeres.
  30.  */
  31. void setup() {
  32.   delay(3000);                                                      //forsinkelse ved oppstart. sikkerhetsmargin
  33.   LEDS.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);     //FastLED programmere LEDene med innstruksene fra pre setup
  34.   FastLED.setBrightness(BRIGHTNESS);                                //Bestemmer lysstyrke
  35. }
  36. /*Kommentar loop:
  37.  * Kort og enkel loop, som tar ibruk en for løkke. Kunnskap om forløkker et greit utgangspunkt
  38.  * når man arbeider med adressbare RGBer, spesielt når man skal styre flere. Bruker også utrykk
  39.  * fra FastLED for å styre RGBene, men de er selvforklarende. *
  40.  */
  41. void loop() {
  42.  for(int i=0;i<NUM_LEDS;i++){                                       //Setter opp for løkke med en teller. Teller fra 0 opp til antall LED som er definert, med pluss 1 per løkke.
  43.    leds[i-3].setRGB(0,0,0);                                         //Setter opp en variabel for å skru av LEDer. Eksempelet her lar 3 LED bli høy, og skruv av den første LED nå fjerde LED blir høy
  44.    leds[i].setRGB(0,255,0);                                         //Setter opp variabel for å skru på LEDer. Skrur på LED fortløpende en etter en.
  45.    FastLED.show();                                                  //Funksjonen som endrer status til LEDer. Må ha for å kjøre styre LEDene
  46.    delay(100);                                                      //Forsinkelse for å justere hastigheten på LEDene. Kortere forsinkelse gir raskere LEDer
  47.    //slutt på for løkke hvis i er større enn antall LED. Hvis ikke kjører ny sekvens
  48.  }
  49.  FastLED.clear();                                                   //Funksjonen skrur av alle LEDer før loop starter på nytt
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement