Мазмұны:
- Жабдықтар
- 1 -қадам: Жабдықтар
- 2 -қадам: LedWall үшін дұрыс қуат көзін анықтау
- 3 -қадам: қуат сымы
- 4 -қадам: Қуат көзін қосу
- 5 -қадам: ESP32S -ке қосылу
- 6 -қадам: Жарық диодты жарық жолақтарына қуат беру
- 7 -қадам: ESP32 -ді жарық диодты жарық жолақтарына қосу
- 8 -қадам: Компьютерді дайындау: C2102 драйвері
- 9 -қадам: Arduino Software - ESP32 қолдауын қосу - 1 -қадам
- 10 -қадам: Arduino Software - ESP32 қолдауын қосу - 2 -қадам
- 11 -қадам: Arduino Software - ESP32 қолдауын қосу - 3 -қадам
- 12 -қадам: Arduino IDE -ге кітапханаларды қосу
- 13 -қадам: Бірінші код: Strand тесті
- 14 -қадам: SHU үлгі коды
- 15 -қадам: ESP32 -ге кодты жүктеу
- 16 -қадам: дәйексөздер
Бейне: ESP32 бар 500 жарықдиодты қабырға: 16 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бәріне сәлем! Бұл оқулықтың соңында сіз өзіңіздің жарықдиодты қабырғаңызды қалай жасау керектігін білесіз.
Бұл оқулық Қасиетті жүрек университетінде ұсынылатын жазғы бағдарламаға негізделген.
Масайрау!
Жабдықтар
Төменде көрсетілген жабдықтар.
1 -қадам: Жабдықтар
Лед қабырғасын аяқтау үшін қажет нәрсені жинай бастайық:
(Сілтемелер 10.07.2019 жылы жасалған)
Arduino IDE бағдарламасы
ESP32 микроконтроллері
Жарықдиодты пиксельдік жарық
Нәр беруші
Қуат сымы
Сымды жұлу құралы
Нанға арналған өтпелі кабельдер
Электр сымы
2 -қадам: LedWall үшін дұрыс қуат көзін анықтау
Қандай қуат көзі сізге сәйкес келетінін білудің қарапайым математикалық әдісі бар.
Біз Ом күшінің заңын қолданамыз: P = IxV (Қуат = Қарқындылық x Кернеу)
Кернеуді біздің шамдар анықтайды: бұл жағдайда 5В.
Қарқындылық аппараттық құралға байланысты, бір Led 30 мА тұтынады.
50 жолақтың әрбір жолағы 50 х 30мА = 1250мА = 1,25А тұтынады.
Біздің 500 жарықдиодты қабырға 10 есе көп жұмсайды (10 жолақ): 12.5А.
Қуатты пайдалану Leds үшін 5V x 12.5A = 62.5W құрайды.
Әрине, Leds -тің үстіне сіз ESP -ті және сіздің контурыңыздың басқа элементтерін ескеруіңіз керек.
Бізде 60А қуат көзі бар, бізде қажет мөлшерден көп.
3 -қадам: қуат сымы
Біздің қуат көзі сымды қосқыштармен келеді. Біз қуат сымын 110 В ашасына қосу үшін бейімдеуіміз керек.
- Қуат сымын ажыратыңыз. Біз еркек бөлігін сақтаймыз, әйтпесе NEMA 5-15P деп білеміз.
- Барлық сымдарда шамамен 3 мм мыс көрінетін етіп кабельді алыңыз.
Міне, сымдарды қалай кесуге болатындығы туралы жылдам бейне нұсқаулық:
4 -қадам: Қуат көзін қосу
Енді біз электрмен жабдықтауды қосуға дайынбыз!
Жұмыс істеп тұрған кезде әрқашан қуат көзін ажыратыңыз.
Сымдар
- Қара сым (фаза) қуат көзінің 'L' түйреуішіне қосылады
- Ақ сым (бейтарап) қуат көзінің 'N' түйреуішіне қосылады
- Жасыл сым қуат көзінің 'жерге тұйықтау түйреуішіне қосылады
(Егер электр сымының ішкі сымдары біздікімен бірдей емес болса, қауіпсіз болыңыз және схеманы интернеттен қараңыз.)
Сынақ
Компьютердің қуат сымын кез келген қуат көзіне қосыңыз. Қуат көзіндегі жасыл жарық диоды қосылуы керек.
5 -қадам: ESP32S -ке қосылу
Сіздің ESP -ге қарайтын болсақ, әрбір түйреуіштің жанында белгілер болуы керек.
Еркек пен әйелге арналған тақтаны немесе электр сымын пайдаланып, мыналарды қосыңыз:
- Қуат көзінің '+V' нүктесіне '5V' ESP32S түйреуіші (жоғарыдағы суретте қызғылт сары)
- Қуат көзінің '-V' бөліміне 'GND' ESP32S түйреуі (жоғарыдағы суретте қара)
(Кейбір ESP -те '5V' түйреуіші 'VCC' деп белгіленеді, екеуі де бір нәрсені білдіреді.)
Назар аударыңыз, сіздің ESP -де біз қолданатыннан басқа «түйреуіш» болуы мүмкін, сондықтан сіз сымдарды жоғарыдағы суреттегіден басқа жерге жалғап жатқан боларсыз. Дұрыс түйреуіштерге (5В & GND), тақтадағы физикалық орналасу маңызды емес.
Тестілеу Қуат көзіне қайта қосыңыз, егер сіздің ESP -те жарық диодты индикатор болса (көпшілігі), ол ESP -ке қуат жіберілетінін көрсету үшін жанады. Құттықтаймын!
6 -қадам: Жарық диодты жарық жолақтарына қуат беру
Электр сымдарын қолдану:
- Жарық диодты жарық диодының қызыл сымын қуат көзіндегі V+ желісіне қосыңыз.
- Жарық диодты жарық диодының көк сымын қуат көзіндегі V-ге қосыңыз.
7 -қадам: ESP32 -ді жарық диодты жарық жолақтарына қосу
Біздің ESP32 WS2811 драйверлерінің әрқайсысына қосылатын драйверлерге түсі мен жарықтығы туралы нұсқау береді, бұл үшін біздің ESP32 жолақтарға «деректер» кабелін қажет етеді.
Leds жолақтары 3 сымды қосқышпен келеді:
- Қызыл: Қуат- Көк: Бейтарап- Ақ: Деректер
Ақ светодиодты кабельді ESP цифрлық түйреуішіне қосамыз, таңдалған PIN нөмірін есте сақтаңыз, себебі оны кейінірек кодта таңдау қажет болады.
8 -қадам: Компьютерді дайындау: C2102 драйвері
Енді біздің аппараттық кабель қосылғандықтан, біз оны тексеру үшін бірінші кодты жүктегіміз келеді, әдепкі бойынша, Windows немесе MacOs біздің ESP32 -мен байланыса алмайды, бұл үшін бізге ESP USB байланыс чипіне «драйверді» жүктеу қажет: С2102.
Бұл драйверді жүктеу және орнату қажет:
- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:
(Сілтемелер 10.07.2019 ж.)
9 -қадам: Arduino Software - ESP32 қолдауын қосу - 1 -қадам
Біз ESP32 -ді Arduino бағдарламалық жасақтамасымен қолданбас бұрын, оның танылғанына көз жеткізуіміз керек, әдепкі бойынша, Arduino бағдарламалық жасақтамасы біздің ESP32 кодын құрастыра алмайды, оны түзетейік:
1 -қадам: менеджерге тақталар қосу
1 - Arduino ішінде Файл >> Параметрлер опциясын таңдаңыз
2- «Қосымша тақта менеджерінің URL мекенжайлары» өрісінде келесі сілтемені көшіріңіз:
10 -қадам: Arduino Software - ESP32 қолдауын қосу - 2 -қадам
Енді Arduino бағдарламалық жасақтамасы басқа тақталарды «біледі», енді ESP32 қолдауын орнатамыз
2 -қадам: ESP32 қолдауын орнату
1 - Жоғарғы мәзірде таңдаңыз: Құралдар >> Тақта >> тақта менеджері
2 - Терезе пайда болады. «ESP32» табу үшін жоғарғы оң жақ бұрышта орналасқан іздеу жолағын пайдаланыңыз.
3 - эспресиф жасағанды табыңыз. Оны орнатыңыз. (Суретті қараңыз)
11 -қадам: Arduino Software - ESP32 қолдауын қосу - 3 -қадам
Енді Arduino бағдарламалық жасақтамасы біздің ESP32 -мен байланыса алатындықтан, оны компьютерге қосып, бәрі жұмыс істейтінін тексерейік.
1 - ESP32 платформасында жұмыс жасайтынымызға көз жеткізіңіз:
Құралдар >> Тақта >> ESP32 Dev модулін басыңыз
1- Arduino бағдарламалық жасақтамасы біздің ESP-пен қалай байланысуға болатынын білетініне көз жеткізейік:
Құралдар >> Портты нұқыңыз және осы кабельді қосудан пайда болатынын таңдаңыз.
Маңызды:
Егер сізде ESP -ке кодты жүктеу мәселесі туындаса, алдымен осы екі мәзірді тексеріңіз, егер порт құсбелгі қойылмаса, Arduino бағдарламалық жасақтамасы онымен байланыспайды.
12 -қадам: Arduino IDE -ге кітапханаларды қосу
Енді біз жарықдиодты қабырғамызды тексеруге мүмкіндік беретін кітапхана қосамыз!
1- Құралдар >> Кітапханаларды басқару түймесін басыңыз.
2- Жоғарғы оң жақ бұрышта NeoPixelBus іздеңіз. «NeoPixelBus by Makuna» табыңыз, оны орнатыңыз (суретті қараңыз)
Басқа ықтимал қызықты кітапханалар: (бұл оқулық үшін қажет емес)
- NeoMatrix
- FastLed
- Artnet
- GFX
13 -қадам: Бірінші код: Strand тесті
Біздің бірінші код - бұл кітапхананың мысалы.
Сіз төмендегі кодты көшіріп / қоюға немесе нұқуға болады:
Файл >> Мысалдар >> Adafruit NeoPixelBus >> Strandtest
Жарықдиодты физикалық түрде қосу үшін LED_PIN кодын ауыстырғаныңызға көз жеткізіңіз. Біз бұл оқулықта 13 қолдандық.
Сонымен қатар, LED_COUNT айнымалысы бар тізбек өлшемін бейімдеуді ұмытпаңыз.
// Негізгі күнделікті LED Striptest бағдарламасы.
#include #ifdef _AVR_ #include // 16 МГц Adafruit Trinket үшін қажет #endif // Arduino -дағы қандай түйреу NeoPixels -ке қосылған? #define LED_PIN 13 // Arduino -ға қанша NeoPixels бекітілген? #define LED_COUNT 500 // Біздің NeoPixel жолақ объектісін жариялаңыз: Adafruit_NeoPixel жолағы (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // 1 -аргумент = NeoPixel жолағындағы пиксель саны // 2 -аргумент = Arduino түйреуішінің нөмірі (көбі жарамды) // 3 -аргумент = пиксель түріндегі жалаушалар, қажет болған жағдайда қосыңыз: // NEO_KHZ800 800 КГц бит ағыны (NeoPixel өнімдерінің көпшілігі/ WS2812 жарық диодтары) // NEO_KHZ400 400 КГц (классикалық 'v1' (v2 емес) FLORA пиксельдері, WS2811 драйверлері) // NEO_GRB пиксельдері GRB бит ағыны үшін сымды (NeoPixel өнімдерінің көпшілігі) // NEO_RGB пиксельдері RGB разрядтық ағыны үшін (v1 FLORA пикселдері), v2 емес) // NEO_RGBW пиксельдері RGBW бит ағыны үшін сымды (NeoPixel RGBW өнімдері) // setup () функциясы-іске қосылған кезде бір рет іске қосылады -------------------- ------------ void setup () {// Бұл сызықтар Adafruit Trinket 5V 16 MHz қолдау үшін арнайы жасалған. // Кез келген басқа тақта, сіз бұл бөлікті алып тастай аласыз (бірақ одан шығудың зияны жоқ): #if анықталған болса (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Trinket арнайы кодының соңы. strip.begin (); // INITIALIZE NeoPixel жолақ объектісі (REQUIRED) strip.show (); // ASAP strip.setBrightness (50) барлық пиксельдерді ӨШІРУ; // BRIGHTNESS параметрін шамамен 1/5 мәніне орнатыңыз (max = 255)} // loop () функциясы-тақта қосулы болғанша бірнеше рет жұмыс істейді -------------- void loop () {// Жолақтың ұзындығын әр түрлі түстермен толтырыңыз … colorWipe (strip. Color (255, 0, 0), 50); // Red colorWipe (жолақ. Color (0, 255, 0), 50); // Green colorWipe (жолақ. Color (0, 0, 255), 50); // Көк // Театр эффектісін әр түрлі түстерде жасаңыз… teatrChase (жолақ. Түс (127, 127, 127), 50); // Ақ, жартылай жарықтық театрChase (жолақ. Түс (127, 0, 0), 50); // Қызыл, жартылай жарықтық театрChase (жолақ. Түс (0, 0, 127), 50); // Көк, жартылай жарықтық кемпірқосақ (10); // Бүкіл жолақ театры бойымен аққан кемпірқосақ циклыChaseRainbow (50); // Кемпірқосақпен жақсартылған театрChase нұсқасы} // Анимациялық эффектілерді құруға арналған кейбір функциялар ----------------- // Жолақ пикселдерін бірінен кейін бірін түспен толтырыңыз. Жолақ тазаланбайды // алдымен; онда пиксель пиксельмен жабылады. Түсті жіберіңіз // (32-разрядты бір «жинақталған» мән ретінде алуға болады, оны // strip. Түс (қызыл, жасыл, көк) жоғарыдағы loop () функциясында көрсетілгендей), // және пикселдер арасындағы кідіріс уақыты (миллисекундтарда). void colorWipe (uint32_t color, int wait) {for (int i = 0; i strip.setPixelColor (i, color); // пиксельдің түсін орнатыңыз (RAM -де) strip.show (); // Жолақты кешіктіруге сәйкес жаңарту (күте тұрыңыз); // Бір сәтке кідіріңіз}} // Театрлық маркалық стильдегі қуатын шамдар. Түсте өтіңіз (32 биттік мән, // a la strip. Түс (r, g, b) жоғарыда айтылғандай), және кадрлар арасындағы кідіріс уақыты (мсмен) // void teatrChase (uint32_t color, int wait) {for (int a = 0; a <10; a ++) {// 10 рет қайталаңыз… үшін (int b = 0; b <3; b ++) {// 'b' 0 -ден 2 -ге дейін есептеледі… strip.clear (); // ЖЖҚ -дағы барлық пиксельдерді 0 (өшірулі) күйіне орнатыңыз // 'c' 'b' -дан аяғына дейін есептеледі жолақ 3… қадамдарымен (күте тұрыңыз); // Бір сәтке кідіріңіз}}} // Кемпірқосақтың бүкіл жолақ бойымен циклі. Кадрлар арасындағы кідіріс уақытын (мспен) өткізіңіз. түсті дөңгелек. // Түсті дөңгелектің 65536 диапазоны бар, бірақ ол Егер біз айналдырсақ, онда // тек 0 -ден 5*65536 -ға дейін санаңыз. FirstPixelHue -ге әр жолы 256 қосу // бұл сыртқы цикл арқылы 5*65536/256 = 1280 өтетінін білдіреді: for (long firstPixelHue = 0; firstPixelHue <5*65536; firstPixelHue += 256) {for (int i = 0; I // жолдың ұзындығы бойынша // түсті дөңгелектің (65536 диапазоны) бір толық айналуын жасау үшін пиксель реңкінің мөлшерін ауыстыру // (strip.numPixels () қадамдар): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()); // strip. ColorHSV () 1 немесе 3 аргументті қабылдай алады: реңк (0 -ден 65535 дейін) немесе // қосымша қанықтылық пен мәнді (жарықтықты) қосады (әрқайсысы 0 -ден 255 -ке дейін). // Мұнда біз тек бір аргументті реңктің нұсқасын қолданамыз. Нәтиже // әрбір пиксельге тағайындалмас бұрын 'true' түстерін беру үшін strip.gamma32 () арқылы өтеді // strip.setPixelColor (i, strip.gamma32) (strip. ColorHSV (pixelHue))));} strip.show (); // Жолақты жаңа мазмұнмен жаңарту кідірісі (күту); // Бір сәтке кідірту}} // Кемпірқосақпен жақсартылған театр маркасы. Кешіктіру уақытын өткізу ms) кадрлар арасында. void театрChaseRainbow (int wait) {i nt firstPixelHue = 0; // Бірінші пиксель (int a = 0; a <30; a ++) үшін қызыл түстен басталады (реңк 0) {// (int b = 0; b RGB strip.setPixelColor (c, color); / үшін 30 рет қайталаңыз …) / «C» пиксельін «түс» мәніне қойыңыз} strip.show (); // Жолақты жаңа мазмұнмен кідірту (күту); // Бір сәтке кідіртіңізPixelHue += 65536/90; // Түсті дөңгелектің бір циклы 90 кадрдан жоғары}}}
14 -қадам: SHU үлгі коды
Біздің код барлық Led -ті бір -бірлеп қосады, олар жұмыс істейтініне көз жеткізіңіз:
// Бұл мысал 500 пикселді қызыл етіп көрсету арасында ауысады
#incinteconst uint16_t PixelCount = 500; // бұл мысал 4 пиксельді қабылдайды, оны кішірейту const uint8_t PixelPin = 13 істен шығуына әкеледі; // мұны Esp8266 үшін еленбеген дұрыс түйреуішке орнатқаныңызға көз жеткізіңіз
#define colorSaturation 128 // үш элементті пиксель, әр түрлі тәртіпте және жылдамдықта
NeoPixelBus жолағы (PixelCount, PixelPin);
// NeoPixelBus жолағы (PixelCount, PixelPin); RgbColor қызыл (0, colorSaturation, 0); RgbColor жасыл (colorSaturation, 0, 0); RgbColor көк (0, 0, colorSaturation); RgbColor ақ (colorSaturation); Қара RgbColor (0); HslColor hslRed (қызыл); HslColor hslGreen (жасыл); HslColor hslBlue (көк); HslColor hslWhite (ақ); HslColor hslBlack (қара); void setup () {Serial.begin (115200) while (! Serial); // сериялық тіркемені күтіңіз Serial.println (); Serial.println («Басталуда…»); Serial.flush (); // бұл барлық неопиксельдерді өшірілген күй жолағына қайтарады. Begin (); жолақ. Шоу (); Serial.println (); Serial.println («Жүгіруде …»); } void loop () {delay (100); Serial.println («Түстер R, G, B, W …»); for (int i = 0; i <= 499; i ++) {// түстерді орнатыңыз, // егер олар сәйкес келмесе, NeoGrbFeature мүмкіндіктер жолағын пайдалану керек. SetPixelColor (i, қызыл); жолақ. Шоу (); кешіктіру (100); strip. SetPixelColor (i, hslRed); жолақ. Шоу (); кешіктіру (100); }}
15 -қадам: ESP32 -ге кодты жүктеу
Маңызды:
Кез келген микроконтроллерге кодты жүктеу үшін, ол бағдарламалау режимінде болуы керек, мұны көбіне автоматты түрде жасау керек, тек бағдарламалық қамтамасыз етуде жүктеуді басу жеткілікті.
Біздің ESP32 кодты жіберу кезінде бағдарламалау түймесін ұстап тұруды талап етеді, сонымен қатар кодты жүктеуді қалпына келтіру түймесін бір рет басу арқылы қалпына келтіру қажет.
Біздің ESP32 бағдарламалау батырмасы сол жақта, қалпына келтіру түймесі оң жақта орналасқан. Егер басқа микроконтроллер болса, нұсқаулықты қараңыз.
16 -қадам: дәйексөздер
Бұл нұсқаулық келесі оқулықтардың көмегімен жасалды:
randomnerdtutorials.com/installing-the-esp…
ESP32 Arduino IDE -ге орнату үшін қолданылады.
Авторлар:
Натаниэль Бароне Габриэль Кастро
Редактор:
Седрик Блеймлинг
Ұсынылған:
Сыртқы жарықдиодты қабырға сағаты: 11 қадам (суреттермен)
Жарықдиодты жарықдиодты қабырға сағаты: Жақында мен көптеген адамдардың үлкен жарықдиодты матрицалар жасап жатқанын көрдім, бірақ олар күрделі кодтан немесе қымбат бөлшектерден немесе екеуінен тұрады. Сондықтан мен өте арзан бөлшектерден тұратын жеке жарықдиодты матрицаны құруды ойладым
3D басып шығарылған модульдік жарықдиодты қабырға: 6 қадам (суреттермен)
3D басып шығарылған модульдік жарықдиодты қабырға: 3D басып шығарылған модульдерді, 12 мм WS2812 жарықдиодты шамдарды және 38 мм пинг-понг шарларын қолдана отырып, жарықдиодты қабырға жасау өте қарапайым, бірақ механикалық конструкцияны жасау өте күрделі болды. Оның орнына мен 3D модульдік жүйені жасадым. Әр модуль 30х30 см және
3D басып шығарылған жарықдиодты қабырға белгісі: 3 қадам
3D басып шығарылған жарық диодты қабырға белгісі: Бұл нұсқаулықта мен сізге балаларға 3D жарықдиодты жарықдиодты белгісін қалай жасағанымды үйретемін! Егер сізде 3D принтер болса, онда жабдықтың бағасы 20 доллардан аспайды
Микроскоптарға арналған жарықдиодты жарықдиодты жарықдиодты жарықдиодты тақта!: 6 қадам (суреттермен)
Микроскоптар үшін DIY жарықдиодты жарықдиодты PCB! Мен электрониканы қолдануға арналған екінші микроскопты сатып алдым және сіз
Жарықдиодты қабырға белгісі: 6 қадам
Жарықдиодты қабырға белгісі: бос уақытта жасауға болатын қарапайым және қызықты жоба