Search Code

ESP32 பயிற்சி 12/55 - SunFounder இன் ESP32 IoT கற்றல் கிட்டுடன் WS2812 RGB ஸ்ட்ரிப் 4 திட்டம்

ESP32 பயிற்சி 12/55 - SunFounder இன் ESP32 IoT கற்றல் கிட்டுடன் WS2812 RGB ஸ்ட்ரிப் 4 திட்டம்

இந்த டுடோரியலில், ESP32 மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி WS2812 LED ஸ்ட்ரிப்பை எவ்வாறு கட்டுப்படுத்துவது என்பதை ஆராய்வோம். இந்த திட்டம் பல்வேறு வண்ணங்களை உருவாக்கவும், ஒவ்வொரு LED-ஐயும் தனித்தனியாக கட்டுப்படுத்தவும் உங்களை அனுமதிக்கிறது, இது நிரலாக்கம் மற்றும் மின்னணுவியல் பற்றி அறிய ஒரு வேடிக்கையான மற்றும் காட்சி ரீதியாக கவர்ச்சிகரமான வழியை வழங்குகிறது. இந்த டுடோரியலின் முடிவில், வண்ணங்களையும் வடிவங்களையும் மாறும் வகையில் மாற்றக்கூடிய முழுமையாக செயல்படும் அமைப்பை நீங்கள் பெறுவீர்கள்.

SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422

உள்ளமைக்கப்பட்ட Wi-Fi மற்றும் புளூடூத் திறன்களைக் கொண்ட SunFounder இன் ESP32 மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி, WS2812 RGB LED ஸ்ட்ரிப்பை எளிதாக இணைத்து கட்டுப்படுத்தலாம். இந்த LED ஸ்ட்ரிப்பின் நெகிழ்வுத்தன்மை, அலங்கார விளக்குகளுக்கோ அல்லது கல்வித் திட்டங்களுக்கோ, படைப்பாற்றல் பயன்பாடுகளை அனுமதிக்கிறது. சம்பந்தப்பட்ட படிகளை நன்கு புரிந்துகொள்ள, (வீடியோவில் 00:00 இல்) உள்ள வீடியோவைப் பார்க்கலாம்.

வன்பொருள் விளக்கம்

இந்த திட்டத்தின் முக்கிய கூறுகளில் ESP32 மைக்ரோகண்ட்ரோலர் மற்றும் WS2812 LED ஸ்ட்ரிப் ஆகியவை அடங்கும். ESP32 என்பது ஒரு சக்திவாய்ந்த மைக்ரோகண்ட்ரோலர் ஆகும், இது Arduino போன்ற பணிகளைச் செய்ய முடியும், ஆனால் கூடுதல் இணைப்பு விருப்பங்களுடன். இது கிளவுட்டுடன் இணைக்க உதவும் வளமான அம்சங்களைக் கொண்டுள்ளது, இது தொலை கட்டுப்பாடு மற்றும் தரவு பதிவை அனுமதிக்கிறது.

WS2812 LED ஸ்ட்ரிப் தனித்தனியாக முகவரியிடக்கூடிய RGB LED களைக் கொண்டுள்ளது, அதாவது ஒவ்வொரு LED-ஐயும் வெவ்வேறு வண்ணங்களைக் காட்ட கட்டுப்படுத்தலாம். ஸ்ட்ரிப் ஒற்றை-கம்பி நெறிமுறையில் செயல்படுகிறது, இது சிக்னல் தரத்தை இழக்காமல் பல LED களை சங்கிலியாக இணைக்க அனுமதிக்கிறது. ஒவ்வொரு LED-யிலும் உள்ளமைக்கப்பட்ட டிரைவர் உள்ளது, இது உள்ளீட்டு சிக்னலை எடுத்து சங்கிலியில் அடுத்த LED-க்கு பெருக்குகிறது.

டேட்டாஷீட் விவரங்கள்

உற்பத்தியாளர் Worldsemi
பகுதி எண் WS2812
லாஜிக்/IO மின்னழுத்தம் 3.5–5.3 V
வழங்கல் மின்னழுத்தம் 5 V
வெளியீட்டு மின்னோட்டம் (ஒரு சேனலுக்கு) 20 mA அதிகபட்சம்
உச்ச மின்னோட்டம் (ஒரு சேனலுக்கு) 60 mA அதிகபட்சம்
PWM அதிர்வெண் வழிகாட்டுதல் 400 Hz
உள்ளீட்டு லாஜிக் வரம்புகள் 0.3 x VDD முதல் 0.7 x VDD
மின்னழுத்த வீழ்ச்சி / RDS(on) / செறிவு 0.5 V அதிகபட்சம்
வெப்ப வரம்புகள் -25 முதல் 80 °C
பேக்கேஜ் 5050
குறிப்புகள் / மாறுபாடுகள் நீண்ட ஸ்ட்ரிப்புகளுக்கு சங்கிலியாக இணைக்கலாம்

 

  • LED சேதத்தைத் தவிர்க்க சரியான மின்வழங்கலை (5 V) உறுதி செய்யவும்.
  • மின்னழுத்த ஸ்பைக்குகளை மென்மையாக்க மின்வழங்கல் முனையங்களுக்கு குறுக்கே ஒரு மின்தேக்கியை (100 µF) பயன்படுத்தவும்.
  • சிக்னல் சிதைவைக் குறைக்க தரவு கம்பிகளை குறுகியதாக வைத்திருங்கள்.
  • LED வெப்பநிலையில் கவனமாக இருங்கள்; சரியான வெப்ப வெளியேற்றத்தை உறுதி செய்யவும்.
  • மின்சாரம் மற்றும் தரையை இணைக்கும்போது சரியான துருவமுனைப்பைக் கவனிக்கவும்.
  • நீண்ட ஸ்ட்ரிப்புகளைப் பயன்படுத்தினால் தரவு வரிசையில் ஒரு புல்-அப் மின்தடையத்தைப் பயன்படுத்தவும்.

வயரிங் வழிமுறைகள்

ESP32-12-WS2812-wiring

WS2812 LED ஸ்ட்ரிப்பை ESP32 உடன் இணைக்க, மின்வழங்கலை இணைப்பதன் மூலம் தொடங்கவும். LED ஸ்ட்ரிப்பின் +5V கம்பியை ESP32 இன் 5V பின்னுடன் இணைக்க வேண்டும், மேலும் தரை (GND) கம்பியை ESP32 இன் GND பின்களில் ஒன்றுடன் இணைக்க வேண்டும்.

அடுத்து, LED ஸ்ட்ரிப்பின் தரவு உள்ளீட்டு கம்பியை ESP32 இன் பின் 14 உடன் இணைக்கவும். சரியான தரவு பரிமாற்றத்தை உறுதி செய்ய இணைப்புகள் பாதுகாப்பாக இருப்பதை உறுதி செய்யவும். நீங்கள் பல ஸ்ட்ரிப்புகள் அல்லது நீண்ட தூரங்களைப் பயன்படுத்தினால், சிக்னல் ஒருமைப்பாட்டை உறுதி செய்ய ஒரு லெவல் ஷிஃப்டரைப் பயன்படுத்துவதைக் கருத்தில் கொள்ளுங்கள். இந்த அமைப்பு LED ஸ்ட்ரிப்பை நேரடியாக ESP32 இலிருந்து கட்டுப்படுத்த உங்களை அனுமதிக்கும்.

குறியீடு எடுத்துக்காட்டுகள் & விளக்கம்

குறியீடு WS2812 LED ஸ்ட்ரிப்பைக் கட்டுப்படுத்த Adafruit NeoPixel நூலகத்தைப் பயன்படுத்துகிறது. இது LED ஸ்ட்ரிப்பைத் துவக்கி ஆரம்ப வண்ணத்தை கருப்பாக அமைப்பதன் மூலம் தொடங்குகிறது. குறியீட்டில் உள்ள முக்கிய அடையாளங்காட்டிகளில் LED_PIN அடங்கும், இது LED ஸ்ட்ரிப்பின் தரவு வரிசையுடன் இணைக்கப்பட்ட பின்னை வரையறுக்கிறது, மேலும் NUM_LEDS, இது ஸ்ட்ரிப்பில் உள்ள LED களின் எண்ணிக்கையைக் குறிப்பிடுகிறது.

#include  // Adafruit NeoPixel நூலகத்தைச் சேர்க்கவும்

#define LED_PIN 14 // NeoPixel LED ஸ்ட்ரிப்
#define NUM_LEDS 8 // LED களின் எண்ணிக்கை

செட்டப் செயல்பாட்டில், ஸ்ட்ரிப் strip.begin() ஐப் பயன்படுத்தி துவக்கப்படுகிறது, மேலும் ஆரம்ப வண்ணம் strip.show() உடன் கருப்பாக அமைக்கப்படுகிறது. இது நிரல் இயங்கும்போது வண்ண மாற்றங்களுக்கு ஸ்ட்ரிப்பை தயார்படுத்துகிறது.

void setup() {
  strip.begin(); // NeoPixel ஸ்ட்ரிப்பை துவக்கவும்
  strip.show(); // ஆரம்ப வண்ணத்தை கருப்பாக அமைக்கவும்
}

நிரலின் முக்கிய லூப் இரண்டு for லூப்களைக் கொண்டுள்ளது. முதல் லூப் ஒவ்வொரு LED-ஐயும் அதன் வண்ணத்தை அமைத்து ஸ்ட்ரிப்பை புதுப்பிப்பதன் மூலம் ஒவ்வொன்றாக இயக்குகிறது. இரண்டாவது லூப் ஒவ்வொரு LED-ஐயும் அதே முறையில் அணைக்கிறது. இது ஒரு எளிய ஆனால் பயனுள்ள ஒளி அனிமேஷனை உருவாக்குகிறது.

void loop() {
  // LED களை ஒவ்வொன்றாக இயக்கவும்
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 100, 45, 0); // i-வது LED-யின் வண்ணத்தை சிவப்பாக அமைக்கவும்
    strip.show(); // புதிய வண்ணங்களுடன் LED ஸ்ட்ரிப்பை புதுப்பிக்கவும்
    delay(100); // 100 மில்லி விநாடிகள் காத்திருக்கவும்
  }
  
  // LED களை ஒவ்வொன்றாக அணைக்கவும்
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 0, 0, 0); // i-வது LED-யின் வண்ணத்தை கருப்பாக அமைக்கவும் (அதை அணைக்கவும்)
    strip.show(); // புதிய வண்ணங்களுடன் LED ஸ்ட்ரிப்பை புதுப்பிக்கவும்
    delay(100); // 100 மில்லி விநாடிகள் காத்திருக்கவும்
  }
}

வெவ்வேறு வண்ண விளைவுகள் மற்றும் அனிமேஷன்களை எவ்வாறு செயல்படுத்துவது என்பது குறித்த கூடுதல் விவரங்களுக்கு கட்டுரைக்கு கீழே உள்ள முழுமையான குறியீட்டை ஏற்றுவதைப் பார்க்கவும்.

செயல்விளக்கம் / என்ன எதிர்பார்க்கலாம்

வயரிங் முடிந்து குறியீட்டை பதிவேற்றிய பிறகு, ஸ்ட்ரிப்பில் உள்ள LED கள் ஒரு குறிப்பிட்ட நிறத்தில் ஒவ்வொன்றாக ஒளிர்வதைக் காண வேண்டும், அதைத் தொடர்ந்து அவை அதே வரிசையில் அணைந்துவிடும். இது ஒரு "இயங்கும் விளக்கு" விளைவை உருவாக்குகிறது. LED கள் எதிர்பார்த்தபடி ஒளிரவில்லை என்றால், உங்கள் வயரிங் இணைப்புகளை மீண்டும் சரிபார்த்து, மின்சார விநியோகம் போதுமானதாக இருப்பதை உறுதிசெய்யவும். மேலும், குறியீட்டில் சரியான பின் வரையறுக்கப்பட்டுள்ளதா என்பதைச் சரிபார்க்கவும் (வீடியோவில் 12:30 இல்).

வீடியோ நேரக்குறிப்புகள்

  • 00:00 தொடக்கம்
  • 1:40 WS2812 LED அறிமுகம்
  • 7:25 திட்ட ஆவணப்படுத்தல் பக்கம்
  • 9:16 RGB நிறம் விளக்கப்பட்டது
  • 13:16 வயரிங் விளக்கப்பட்டது
  • 13:48 Arduino குறியீடு-1 விளக்கப்பட்டது
  • 19:03 Arduino IDE இல் ESP32 போர்டு மற்றும் போர்ட் தேர்வு
  • 20:45 குறியீடு-1 செயல்விளக்கம்
  • 22:00 தனிப்பட்ட LED கட்டுப்பாடு
  • 24:16 நடைபயிற்சி விளக்கு LED
  • 25:41 முன்னும் பின்னுமான விளக்கு

படங்கள்

ESP32-12-WS2812-wiring
ESP32-12-WS2812-wiring
ESP32-12-WS2812-schematic
ESP32-12-WS2812-schematic
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
811-ESP32 Tutorial 12/55- Arduino code for WS2812 RGB LED stripe using ESP32
மொழி: C++
#include <Adafruit_NeoPixel.h> // Include the Adafruit NeoPixel library

#define LED_PIN 14 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs

// Create an instance of the Adafruit_NeoPixel class
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800); 

void setup() {
  strip.begin(); // Initialize the NeoPixel strip
  strip.show(); // Set initial color to black
}

void loop() {
  // Turn on LEDs one by one
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 100, 45, 0); // Set the color of the i-th LED to red
    strip.show(); // Update the LED strip with the new colors
    delay(100); // Wait for 100 milliseconds
  }
  
  // Turn off LEDs one by one
  for (int i = 0; i < NUM_LEDS; i++) {
    strip.setPixelColor(i, 0, 0, 0); // Set the color of the i-th LED to black (turn it off)
    strip.show(); // Update the LED strip with the new colors
    delay(100); // Wait for 100 milliseconds
  }
}

நீங்கள் தேவைப்படும் எண்ணங்கள்

வளங்கள் மற்றும் மேற்கோள்கள்

இன்னும் எந்த வளங்களும் இல்லை.

கோப்புகள்📁

கோப்புகள் கிடைக்கவில்லை.