Asas FastLED

Instructables ini kita akan melihat bagaimana kita boleh menulis program FastLED, serta cara menggunakan perpustakaan FastLed. Kami juga akan melihat bagaimana kita dapat kod untuk mereka bentuk corak warna kita sendiri. Perpustakaan ini menyokong pelbagai jenis jalur LED yang dilengkapi dengan pengawal LED yang berbeza seperti WS2811, WS2812, Neopixel, dan lain-lain.

Mari kita mulakan

Langkah 1: Sebelum Anda Mulakan:

1. Arduino Uno

2. Jaluran LED yang mempunyai pengawal seperti ws2811 atau lain-lain

3. Bekalan Kuasa seperti penarafan Led Strip.

Langkah 2: Sertakan Perpustakaan:

Muat turun perpustakaan FastLED dari sini:

//github.com/FastLED/FASTLED

Sertakan perpustakaan ini ke idea arduino anda.

Langkah 3: Menetapkan Jaluran LED:

Sambungkan Jaluran LED ke bekalan kuasa anda. PIN data jalur LED masuk ke dalam mana-mana pin digital yang anda pilih dalam kod. Pastikan tanah strop LED dan arduino mesti dihubungkan bersama-sama.

Anda boleh menggunakan jalur yang dipimpin neopixel atau anda boleh membeli jalur yang diketuai murah dari pasaran dan apa yang anda perlu lakukan yang membuang bahagian yang dipimpin pertama jalur yang diketuai yang mempunyai pengawal induk. Dari siri LED yang seterusnya anda boleh gunakan sebagai jalur neopixel. Tetapi di jalur yang diketuai cina satu IC mengawal tiga yang dipimpin dalam siri yang bermaksud setiap piksel adalah sama dengan piksel 3 yang diketuai. Sekiranya anda menulis data pada ic pertama, tiga petunjuk yang berkaitan dengan ic tersebut akan dinyalakan. Jadi saya menggunakan jalur murah yang diketuai ini yang mempunyai 7 siri yang mengawal 21 yang diketuai sebagai sekumpulan 3 leds.

Sambungan:

Arduino: pin digital 6 ---> Pin pin dari LED Strip

gnd ---> Gnd jalur LED

Bekalan Kuasa: terminal positif ---> + vcc Jalur LED

gnd ---> gnd jalur LED

Langkah 4: Fail dan Status Pengepala:

Kredit Tutorial ini pergi ke //github.com/FastLED/FastLED/wiki/Basic-usag ...

Sila lawati pautan ini untuk maklumat lebih lanjut dan terperinci.

Jadi mari bermula ...

#include / / fail header

#define NUM_LEDS 60 / / // nombor yang dipimpin hadir di jalur anda
#define DATA_PIN 6 // pin digital arduino anda

CRGB memimpin [NUM_LEDS];


Langkah 5: Tidak sah Persediaan ()

Bergantung pada jenis jalur yang diketuai anda pilih fungsi persediaan batal yang sesuai

void setup () {

FastLED.addLeds < NEOPIXEL, DATA_PIN > (leds, NUM_LEDS);

}

atau

void setup () {
FastLED.addLeds (leds, NUM_LEDS);

}

atau

void setup () {
FastLED.addLeds (leds, NUM_LEDS);

}

atau

void setup () {
FastLED.addLeds (leds, NUM_LEDS);

}

atau

void setup () {
FastLED.addLeds (leds, NUM_LEDS);

}

Langkah 6: Cahaya LED:

// dalam jalur saya satu piksel sama dengan 3 yang dipimpin jadi apabila saya menyalakan 1 yang diterajui seperti dalam kod 3 leds adalah bersinar

/ / Ini kerana kerana saya membawa jalur 3 leds disambungkan secara siri dan dikawal oleh ws28111 pada 12v

// leds [led no.] adalah array

kekosongan gelung () {

leds [0] = CRGB :: Green; / // cahaya pertama dipimpin sebagai hijau

FastLED.show (); // menerapkan fungsi pada jalur yang diketuai

kelewatan (30);

}


Blink it ....

kekosongan gelung ()
{leds [0] = CRGB :: Blue;

FastLED.show ();

kelewatan (200);

leds [0] = CRGB :: Black;

FastLED.show ();

kelewatan (200);

}

Langkah 7: Chaser LED:

// mengejar ke hadapan

kekosongan gelung ()

{

untuk (int dot = 0; dot <NUM_LEDS; dot ++)

{leds [dot] = CRGB :: Red;

FastLED.show ();

leds [dot] = CRGB :: Black;

kelewatan (300);

}

}

// mengejar ke belakang

kekosongan gelung ()
{for (int dot = NUM_LEDS; dot> = 0; dot--)

{leds [dot] = CRGB :: Red;

FastLED.show ();

leds [dot] = CRGB :: Black;

kelewatan (300);

}

}

// mengejar keduanya

kekosongan gelung ()
{for (int dot = (NUM_LEDS-1); dot> = 0; dot--)

{

leds [dot] = CRGB :: Green;

FastLED.show ();

leds [dot] = CRGB :: Black;

kelewatan (300);

}

untuk (int dot = 0; dot <NUM_LEDS; dot ++)

{leds [dot] = CRGB :: Red;

FastLED.show ();

leds [dot] = CRGB :: Black;

kelewatan (300);

}

}

Langkah 8: Serial Glow:

kekosongan gelung ()

{

untuk (int dot = (NUM_LEDS-1); dot> = 0; dot--)

{leds [dot] = CRGB :: HotPink;

FastLED.show ();

kelewatan (300);

}

untuk (int dot = 0; dot <NUM_LEDS; dot ++)

{

leds [dot] = CRGB :: Blue;

FastLED.show ();

kelewatan (300);

}

}

Artikel Berkaitan