Arduino uno-д зориулсан RGB LED. RGB LED: тэдгээр нь хэрхэн ажилладаг, дотоод засал, хэрхэн холбох, RGB LED болон Arduino. Талхны самбар дээр хэлхээг угсарна

Arduino нь ямар ч төхөөрөмжийг удирдахад тохиромжтой. ATmega микропроцессор нь олон тооны салангид зүү, A / D I / O болон PWM хянагчуудыг удирдахын тулд ноорог програмыг ашигладаг.

Кодын уян хатан байдлаас шалтгаалан ATmega микроконтроллер нь янз бүрийн автоматжуулалтын модулиудад өргөн хэрэглэгддэг бөгөөд үүний үндсэн дээр LED гэрэлтүүлгийг удирдах хянагч бий болгох боломжтой юм.

Arduino-ээр дамжуулан ачааллыг хянах зарчим

Arduino хавтан нь дижитал ба аналог (PWM хянагч) гэсэн хоёр төрлийн гаралтын порттой. Дижитал порт нь логик тэг ба логик нэг гэсэн хоёр төлөвтэй байдаг. Хэрэв та LED-ийг холбовол гэрэлтэх эсвэл асахгүй байх болно.

Аналог гаралт нь PWM хянагч бөгөөд 500 Гц давтамжтай дохиог тохируулж ажиллах циклээр хангадаг. PWM хянагч гэж юу вэ, энэ нь хэрхэн ажилладаг талаар интернетээс олж болно. Аналог портоор дамжуулан зөвхөн ачааллыг асаах, унтраахаас гадна түүн дээрх хүчдэлийг (гүйдэл) өөрчлөх боломжтой.

Тушаалын синтакс

Дижитал гаралт:

pinMode (12, OUTPUT);- өгөгдлийн гаралтын порт болгон 12 портыг тохируулах;
digitalWrite (12, HIGH);- бид логик нэгжийг дискрет гаралт 12-д хэрэглэж, LED-ийг гэрэлтүүлдэг.

Аналог гаралт:

analogOutPin = 3;- аналог утгыг гаргах порт 3-ыг тохируулах;
analogWrite (3, утга);- бид гаралт дээр 0-ээс 5В хүртэлх хүчдэлтэй дохио үүсгэдэг. Утга нь 0-ээс 255 хүртэлх дохионы ажлын мөчлөг юм. 255-ийн утга нь хамгийн их хүчдэл юм.

Arduino-ээр дамжуулан LED-ийг удирдах арга замууд

Зөвхөн сул LED-ийг портоор шууд холбож болох бөгөөд тэр ч байтугай хязгаарлах резистороор дамжуулан илүү дээр юм. Илүү хүчирхэг ачааллыг холбохыг оролдох нь үүнийг идэвхгүй болгоно.

Илүү хүчирхэг ачааллын хувьд, түүний дотор LED туузыг электрон унтраалга ашигладаг - транзистор.

Транзисторын шилжүүлэгчийн төрлүүд

  • Хоёр туйлт;
  • Талбай;
  • Нийлмэл (Дарлингтоны чуулган).
Холболтын аргуудыг ачаалах
Хоёр туйлт транзистороор дамжуулан Талбайн эффект транзистороор дамжуулан Хүчдэл шилжүүлэгчээр дамжуулан

Өндөр логик түвшинг тэжээх үед (digitalWrite (12, HIGH);)гаралтын портоор дамжуулан коллектор-эмиттерийн гинжээр дамжин транзисторын суурь руу шилжихэд жишиг хүчдэл нь ачаалал руу урсах болно. Ингэснээр та LED-ийг асааж, унтрааж болно.

Талбайн транзистор нь үүнтэй төстэй байдлаар ажилладаг боловч гүйдэл биш, харин хүчдэлээр удирддаг "суурь" -ын оронд ус зайлуулах хоолойтой тул энэ хэлхээнд хязгаарлах резистор шаардлагагүй болно.

Хоёр туйлт үзэл бодол нь хүчирхэг ачааллыг зохицуулахыг зөвшөөрдөггүй. Түүгээр дамжин өнгөрөх гүйдэл нь 0.1-0.3А хүртэл хязгаарлагддаг.

Талбайн транзисторууд нь 2А хүртэлх гүйдэлтэй илүү хүчтэй ачаалалтай ажилладаг. Илүү хүчирхэг ачааллын хувьд Mosfet хээрийн транзисторыг 9А хүртэлх гүйдэл, 60В хүртэл хүчдэлтэй ашигладаг.

Талбайн эффектийн оронд та ULN2003, ULN2803 микро схем дээр биполяр транзисторын Дарлингтоны угсралтыг ашиглаж болно.

ULN2003 чип ба цахилгаан хүчдэлийн унтраалгын бүдүүвч диаграм:

LED туузыг жигд хянах транзисторын ажиллах зарчим

Транзистор нь зөвхөн электронуудад зориулагдсан усны цорго шиг ажилладаг. Хоёр туйлт транзисторын суурь эсвэл талбайн нөлөөллийн дренажид хэрэглэсэн хүчдэл өндөр байх тусам ялгаруулагч коллекторын гинжин хэлхээний эсэргүүцэл бага байх тусам ачааллыг дамжин өнгөрөх гүйдэл ихсэх болно.

Транзисторыг Arduino-ийн аналог порт руу холбосноор 0-ээс 255 хүртэлх утгыг оноож, коллекторт нийлүүлсэн хүчдэлийг өөрчлөх эсвэл 0-ээс 5 В хүртэл зайлуулна. Коллектор-эмиттерийн хэлхээ нь ачааллын жишиг хүчдэлийн 0-ээс 100% хүртэл байх болно.

Arduino LED туузыг удирдахын тулд та тохирох чадлын транзисторыг сонгох хэрэгтэй. LED тоолуурыг тэжээх гүйдэл нь 300-500 мА бөгөөд эдгээр зорилгоор хүчирхэг хоёр туйлт транзистор тохиромжтой. Илүү урт урттай бол талбарт транзистор шаардлагатай.

LED соронзон хальсыг arduino руу холбох диаграмм:

Andurino ашиглан RGB соронзон хальсыг удирдаж байна

Arduino нь нэг чиптэй LED-ээс гадна өнгөт LED-тэй ажиллах боломжтой. Өнгө бүрийн зүүг Arduino-ийн аналог гаралттай холбосноор та болор бүрийн гэрлийг дур мэдэн өөрчилж, хүссэн гэрэлтэх өнгийг олж авах боломжтой.

Arduino RGB LED-ийн холболтын диаграм:

Arduino RGB соронзон хальсны удирдлага нь ижил төстэй байдлаар бүтээгдсэн:

Arduino RGB хянагч нь хээрийн эффектийн транзистор дээр угсрах нь дээр.

Учир нь гөлгөр гэрэлтүүлгийн хяналтхоёр товчлуурыг ашиглаж болно. Нэг нь гэрлийн тод байдлыг нэмэгдүүлэх, нөгөө нь буурах болно.

Arduino LED зурвасын гэрэлтүүлгийн хяналтын тойм зураг

int led = 120; дундаж гэрэлтүүлгийн түвшинг тохируулах

хүчингүй тохиргоо () (
pinMode (4, OUTPUT); гаралт руу 4-р аналог портыг тохируулна
pinMode (2, INPUT);

pinMode (4, INPUT); 2 ба 4-р дижитал портыг товчлууруудыг санал авах оролтонд тохируулна
}
хүчингүй давталт () (

товчлуур1 = дижитал Унших (2);

товчлуур2 = дижитал Унших (4);
хэрэв (товчлуур1 == ӨНДӨР) Эхний товчлуур дээр дарснаар гэрэлтүүлэг нэмэгдэнэ
{
led = led + 5;

analogWrite (4, led);
}
хэрэв (товчлуур2 == ӨНДӨР) хоёр дахь товчийг дарснаар гэрэлтүүлэг буурна
{
led = led - 5;

analogWrite (4, led);
}

Эхний эсвэл хоёр дахь товчлуурыг дарахад электрон түлхүүрийн хяналтын контакт руу нийлүүлсэн хүчдэл жигд өөрчлөгдөнө. Дараа нь гэрэлтүүлгийн жигд өөрчлөлт гарах болно.

Arduino хяналтын модулиуд

LED туузыг удирдах бүрэн хэмжээний драйверийг бий болгохын тулд та мэдрэгчийн модулиудыг ашиглаж болно.

IR хяналт

Модуль нь 20 хүртэлх тушаалыг програмчлах боломжийг олгодог.

Дохионы радиус 8м орчим.

Багцын үнэ 6 доллар.

Радио сувгаар

100м хүртэлх зайтай дөрвөн сувгийн төхөөрөмж

Багцын үнэ 8 доллар.

Орон сууцанд ойртож байсан ч гэрэлтүүлгийг асаах боломжийг танд олгоно.

Холбоо барихгүй

Зайны мэдрэгч нь гар хөдөлгөөнөөр гэрэлтүүлгийн гэрэлтүүлгийг нэмэгдүүлэх, багасгах чадвартай.

Үйлдлийн радиус нь 5 м хүртэл байдаг.

Модулийн үнэ 0.3 доллар байна.

"Зориглох" цуврал.

RGB гэсэн үгийн товчлолУлаан, Ногоон, Цэнхэр гэсэн үгийн товчлол бөгөөд эдгээр өнгийг холих замаар та ямар ч өнгө авах боломжтой. RGB LED нь R, G, B гэсэн 3 жижиг талстыг агуулдаг бөгөөд тэдгээрийн тусламжтайгаар бид ямар ч өнгө, сүүдрийг нэгтгэх боломжтой. Энэ зааварт бид RGB LED-ийг Arduino самбарт холбож, солонгын бүх өнгөөр ​​гэрэлтүүлэх болно.
Энэ төслийн хувьд танд "Үндсэн" болон "Ардуино сурах" багцад байгаа дэлгэрэнгүй мэдээлэл хэрэгтэй болно.

  1. Arduino Uno;
  2. USB кабель;
  3. Прототип хийх самбар;
  4. Аав-Аавын утас - 7 ширхэг;
  5. 220 Ом эсэргүүцэл - 3 ширхэг;
  6. RGB LED - 1 ширхэг;
  7. Потенциометр.

1-р зурагт үзүүлсэн хэлхээг нэгтгэх.

Зураг 1. Холболтын схем

Одоо ноорог бичиж эхэлцгээе.
RGB LED нь улаанаас нил ягаан хүртэл солонгын бүх өнгөөр ​​гялалзаж, дараа нь улаан болж, тойрог хэлбэрээр үргэлжлэх ёстой. Өнгөний шилжилтийн хурдыг потенциометрээр тохируулж болно. Хүснэгт 1-д солонгын 7 үндсэн өнгөний R, G, B утгын өгөгдлийг харуулав.

Хүснэгт 1. Солонгийн 7 үндсэн өнгөний R, G, B утгын өгөгдөл

Өнгө холих зориулалттай Arduino тээглүүрээс LED-ийн R, G, B оролт хүртэл бүх хүчдэлийг хангах шаардлагатай. Гэхдээ Arduino нь дижитал зүү рүү дурын хүчдэл өгч чадахгүй. + 5V (HIGH) эсвэл 0V (LOW) гаралттай байна. PWM (Pulse Width Modulation, эсвэл PWM) нь хэсэгчилсэн хүчдэлийг дуурайлган дуурайхад ашиглагддаг.

Та бүлгийг аль хэдийн дуусгасан гэж найдаж байна.Жереми Блумын Ардуино сурах: Техникийн шидтэний арга хэрэгсэл, техник, импульсийн өргөн модуляцын механикийг нарийвчлан харуулсан 2.6.
Програмыг гүйцэтгэх алгоритм:

  • Улбар шар утга (255.125.0) хүрэх хүртэл ногоон G бүрэлдэхүүн хэсгийн утгыг нэмэгдүүлнэ.
  • Бид шар (255,255,0) хүрэх хүртэл ногоон G бүрэлдэхүүн хэсгийн утгыг нэмэгдүүлнэ.
  • R улаан бүрэлдэхүүн хэсгийн утгыг ногоон (0.255.0) болгон бууруулна.
  • Эхлэх цэг нь улаан (255,0,0).
  • Цэнхэр B бүрэлдэхүүн хэсгийн утгыг хөхрөлт (0.255.255) хүртэл нэмэгдүүлнэ.
  • Ногоон G утгыг цэнхэр утга болгон бууруулна уу (0.0.255).
  • R улаан бүрэлдэхүүн хэсгийн утгыг нил ягаан (255,0,255) хүртэл аажмаар нэмэгдүүлнэ.
  • Цэнхэр B бүрэлдэхүүн хэсгийн утгыг улаан (255,0,0) болгон бууруулна.

1-р алхам руу оч.

Алхам бүрийн дараа бид өнгөт дэлгэцийг засахын тулд түр зогсдог.

Саатал (VIEW_PAUSE);

потенциометрийн утгыг шалгаж, өнгө өөрчлөгдөх хурдны утгыг өөрчлөх.

Суулгацыг хүчингүй болгох () (түр зогсоох = газрын зураг (аналог Унших (POT), 0.1024, MIN_PAUSE, MAX_PAUSE); Serial.print ("pause ="); Serial.println (түр зогсоох);)

Arduino IDE дээр шинэ ноорог бүтээцгээе, Жагсаалт 1-ийн кодыг оруулаад ноорог Arduino самбарт байршуулна уу. Arduino IDE тохиргоонд та хавтангийн төрөл (Arduino UNO) болон хавтангийн холболтын портыг сонгох ёстой гэдгийг бид танд сануулж байна.
Жагсаалт 1

Const int RED = 11; // R RGB LED гаралт const int НОГООН = 10; // RGB LED-ийн G гаралт const int BLUE = 9; // RGB LED-ийн B гаралт int улаан; // int ногоон өнгөний R бүрэлдэхүүн хэсгийг хадгалах хувьсагч; // int blue өнгөний G-бүрэлдэхүүнийг хадгалах хувьсагч; // өнгөний B-бүрэлдэхүүнийг хадгалах хувьсагч const int POT = A0; // потенциометрийн холболтын зүү const int MIN_PAUSE = 10; // өнгөний өөрчлөлтийн хамгийн бага саатал, ms const int MAX_PAUSE = 100; // өнгөний өөрчлөлтийн хамгийн их саатал, ms int pause; // одоогийн саатлыг хадгалах хувьсагч const int VIEW_PAUSE = 2000; // үндсэн өнгийг засах хугацаа, ms хүчингүй тохиргоо () (Serial.begin (9600);) хүчингүй давталт () (// улаанаас шар хүртэл Serial.println ("улаан - шар"); улаан = 255; ногоон = 0; цэнхэр = 0; хувьд (ногоон = 0; ногоон<=255;green++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от желтому к зеленому Serial.println("yellow - green"); red=255;green=255;blue=0; for(red=255;red>= 0; улаан--) setRGB (улаан, ногоон, цэнхэр); түр зогсоох (); саатал (VIEW_PAUSE); // ногооноос цэнхэр хүртэл Serial.println ("ногоон - цэнхэр"); улаан = 0, ногоон = 255, цэнхэр = 0; төлөө (цэнхэр = 0; цэнхэр<=255;blue++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от голубого к синему Serial.println("blue - blue"); red=0;green=255;blue=255; for(green=255;green>= 0; ногоон--) setRGB (улаан, ногоон, цэнхэр); түр зогсоох (); саатал (VIEW_PAUSE); // цэнхэрээс нил ягаан хүртэл Serial.println ("цэнхэр - нил ягаан"); улаан = 0, ногоон = 0, цэнхэр = 255; төлөө (улаан = 0; улаан<=255;red++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от фиолетового к красному Serial.println("purple - red"); red=255;green=0;blue=255; for(blue=0;blue>= 0; хөх--) setRGB (улаан, ногоон, цэнхэр); түр зогсоох (); саатал (VIEW_PAUSE); ) // RGB LED хоосон багцын өнгийг тохируулах функцRGB (int r, int g, int b) (analogWrite (RED, r); analogWrite (НОГООН, g); analogWrite (ЦӨХ, b); саатал (түр зогсоох) ;) / / одоогийн саатлыг хүчингүй болгох функц () (түр зогсоох = газрын зураг (аналог Унших (POT), 0.1024, MIN_PAUSE, MAX_PAUSE); Serial.print ("pause ="); Serial.println (pause);)

Ноорог ачаалсны дараа бид RGB LED-ийн өнгөний өөрчлөлтийг солонгын өнгөөр ​​ажиглаж, өнгөний өөрчлөлтийн хурдыг өөрчлөхийн тулд потенциометр ашиглана (Зураг 2.3-ыг үз).


Зураг 2.3. RGB LED - солонгын бүх өнгө

Гурван өнгийн LED нь солонгын бүх өнгөөр ​​гялалзаж чадна! Зөвшөөрч байна, энэ нь ердийн LED-ээр анивчихаас хамаагүй илүү сонирхолтой юм.
Ардуинотой танилцах гурав дахь хичээлээ эхэлцгээе.

Тоног төхөөрөмжийн холболт:
Үнэн хэрэгтээ гурван өнгийн LED нь нэг багц дахь гурван LED (улаан, ногоон, цэнхэр) юм. Бид үүнийг улаан, ногоон, цэнхэр өнгөөр ​​янз бүрийн түвшний гэрэл гэгээтэй, эрчимтэй ажиллуулахад гаралт болгон шинэ өнгийг олж авдаг.

LED-ийн ирмэг дээр жижиг налуу байдаг, энэ нь гол зүйл бөгөөд энэ нь улаан LED-ийн хөлийг зааж, дараа нь нийтлэг нэг нь явдаг, дараа нь ногоон, цэнхэр өнгөтэй байна.

RED LED-ийн хөлийг 330 ом эсэргүүцэлтэй холбоно. Резисторын нөгөө үзүүрийг Arduino портын pin9-д холбоно.

Лавлагааг GND-д холбоно уу.

НОГООН хөлийг 330 ом эсэргүүцэлтэй холбоно.

Резисторын нөгөө үзүүрийг Arduino портын pin10 руу холбоно.

ЦЭНХЭР хөлийг 330 ом эсэргүүцэлтэй холбоно.

Резисторын нөгөө үзүүрийг Arduino портын pin11-д холбоно.

Дараах зурагт угсарсан хэлхээ бүхий талх хавтангийн зохион байгуулалт, талхны самбараас гарч буй утас бүхий Arduino самбарыг харуулав.

ArduinoKit туршилтын хэрэгсэл
Туршилтын №3 програмын код:

Програмыг USB кабелиар дамжуулан Arduino руу татаж авахад л үлддэг. Гурав дахь хичээл LED RGB-тай ноорог татаж аваарай - дээрх нийтлэлд.

  • 3 220 ом резистор (хамгийн нийтлэг резисторуудын гайхалтай багцыг эндээс үзнэ үү);
  • холбох утас (би энэ багцыг санал болгож байна);
  • талхны хавтан;
  • Arduino IDE хөгжүүлэлтийн орчинтой хувийн компьютер.
  • 1 RGB LED-ийн ялгаанийтлэг анод ба нийтлэг катод

    RGB LED нь хоёр төрөлтэй: нийтлэг анодтой ("нэмэх")болон нийтлэг катод ("хасах")... Зураг дээр эдгээр хоёр төрлийн LED-ийн бүдүүвч диаграммыг харуулав. LED-ийн урт хөл нь үргэлж нийтлэг тэжээлийн утас юм.Зурагт үзүүлсэн шиг улаан LED хар тугалга (R) тус тусад нь, ногоон (G) ба цэнхэр (B) нь нийтлэг хар тугалганы нөгөө талд байрладаг. Энэ нийтлэлд бид RGB LED-ийг нийтлэг анод ба катодын аль алинаар нь холбох талаар авч үзэх болно.

    2 RGB LED-ийг нийтлэг анодоор холбох Arduino руу

    Нийтлэг анод бүхий RGB LED-ийн холболтын диаграммзурагт үзүүлэв. Бид анодыг Arduino самбар дээрх "+5 V" руу, бусад гурван зүүг дурын дижитал тээглүүртэй холбодог.


    Бид LED тус бүрийг өөрийн резистороор холбож байгаа бөгөөд нэг нийтлэгийг ашигладаггүй гэдгийг анхаарна уу. LED бүр өөрийн гэсэн үр ашигтай байдаг тул үүнийг хийхийг зөвлөж байна. Хэрэв та тэдгээрийг бүгдийг нь нэг резистороор холбовол LED нь өөр өөр гэрлээр гэрэлтэх болно.

    Сонгосон LED-дээ тохируулан резисторын үнэлгээг хурдан тооцоолохын тулд та манай онлайн LED тооцоолуурыг ашиглаж болно.

    3 RGB LED удирдлага arduino ашиглан

    Сонгодог ноорог дахин бичье анивчих... Бид гурван өнгө тус бүрийг ээлжлэн идэвхжүүлж, идэвхгүй болгоно. Бид Arduino-ийн харгалзах зүү дээр LOW-г тавихад LED асна гэдгийг анхаарна уу.

    // зүү дугаарыг тохируулах: const int pinR = 12; const int pinG = 10; const int pinB = 9; хүчингүй тохиргоо () (// зүү хуваарилалтыг тохируулах: pinMode (pinR, OUTPUT); pinMode (pinG, OUTPUT); pinMode (pinB, OUTPUT); } хүчингүй давталт () ( digitalWrite (pinR, LOW); // сувгийг асаана уу Улаан саатал (100); digitalWrite (pinR, HIGH); // Улаан саатлыг унтраа (200); digitalWrite (pinG, LOW); // сувгийг асаана Ногоон саатал (100); digitalWrite (pinG, HIGH); // Ногоон саатлыг унтраа (200); digitalWrite (pinB, LOW); // сувгийг асаана Цэнхэр саатал (100); digitalWrite (pinB, HIGH); // Цэнхэр саатлыг унтраа (200); }

    4 Хэлхээ угсарнаталхны самбар дээр

    RGB LED хэрхэн ажиллаж байгааг харцгаая. LED нь улаан, ногоон, цэнхэр ээлжээр асдаг. Өнгө бүр 0.1 секунд асч, 0.2 секунд унтарч, дараагийнх нь асна. Та суваг тус бүрийг тусад нь гэрэлтүүлж болно, та бүгдийг нэгэн зэрэг асааж болно, дараа нь гэрэлтэх өнгө өөрчлөгдөнө.


    RGB LED нь Arduino-д холбогдсон. Хэлхээг талхны самбар дээр угсардаг

    Arduino руу 5

    Хэрэв та хэрэглэж байгаа бол Нийтлэг катодын RGB LEDдараа нь LED-ийн урт утсыг холбоно GND Arduino самбарууд, R, G, B сувгууд нь Arduino дижитал портууд. Нийтлэг анод бүхий LED-ээс ялгаатай нь R, G, B сувагт өндөр түвшний (HIGH) хэрэглэх үед LED нь асдаг гэдгийг санах нь зүйтэй.


    Ардуино руу нийтлэг катод бүхий RGB LED-ийн холболтын диаграмм

    Хэрэв та дээрх ноорогыг өөрчлөхгүй бол энэ тохиолдолд LED өнгө бүр 0.2 секундын турш асаалттай байх бөгөөд тэдгээрийн хоорондох завсарлага 0.1 секунд байх болно.

    Хэрэв та LED-ийн гэрлийг хянахыг хүсвэл RGB LED-ийг PWM функцтэй Arduino-ийн дижитал шонтой холбоно уу. Arduino дээрх эдгээр тээглүүрүүд нь ихэвчлэн гулдмай (долгион шугам), одоор эсвэл тойрог хэлбэрээр тэмдэглэгдсэн байдаг.

    Энэ нийтлэлд RGB (Улаан Ногоон Цэнхэр) LED-ийг Arduino-той ашиглах үндсэн зарчмуудыг тусгасан болно.

    RGB LED өнгийг хянахын тулд бид analogWrite функцийг ашигладаг.

    Өнгөц харахад RGB LED нь ердийн LED-тэй адилхан харагддаг ч үнэндээ тэдгээрийн дотор гурван LED суурилуулсан байдаг: нэг улаан, нэг ногоон, тийм, нэг цэнхэр. Тус бүрийн гэрлийг хянах замаар та LED-ийн өнгийг хянах боломжтой.

    Өөрөөр хэлбэл, бид LED бүрийн гэрэлтүүлгийг тохируулж, гаралт дээр зураачийн палитр эсвэл та тоглуулагч дээрх давтамжийг тохируулж байгаа мэт хүссэн өнгийг авах болно. Үүний тулд та хувьсах резистор ашиглаж болно. Гэвч үр дүнд нь схем нь нэлээд төвөгтэй байх болно. Аз болоход Arduino бидэнд analogWrite функцийг санал болгож байна. Хэрэв бид "~" тэмдгээр тэмдэглэсэн самбар дээрх контактуудыг ашиглавал харгалзах LED-д нийлүүлсэн хүчдэлийг тохируулж болно.

    Шаардлагатай зангилаа

    Жижиг төслөө хэрэгжүүлэхийн тулд бидэнд дараахь зүйлс хэрэгтэй болно.

    1 RGB LED 10мм

    3 270 Ом эсэргүүцэл (улаан, нил ягаан, хүрэн судлууд). Та 1 кОм хүртэлх эсэргүүцэлтэй резистор ашиглаж болно, гэхдээ эсэргүүцэл нэмэгдэх тусам LED нь бага гэрэлтэж эхэлдэг гэдгийг санаарай.


    Тооны зургаан орон нь гурван хос тоотой тохирч байна; эхний хос нь өнгөний улаан бүрэлдэхүүн хэсэг, дараагийн хоёр орон нь ногоон бүрэлдэхүүн хэсэг, сүүлийн хос нь цэнхэр бүрэлдэхүүн хэсэг юм. Өөрөөр хэлбэл, # FF0000 илэрхийлэл нь улаан өнгөтэй тохирч байна, учир нь энэ нь улаан LED-ийн хамгийн их тод байдал (FF нь арван арван тоотод 255), улаан, цэнхэр бүрэлдэхүүн хэсгүүд нь 0-тэй тэнцүү байна.

    Жишээлбэл, индиго сүүдэр ашиглан LED-ийг гэрэлтүүлж үзээрэй: # 4B0082.

    Индиго өнгөний улаан, ногоон, цэнхэр бүрэлдэхүүн хэсгүүд нь 4B, 00, 82 байна. Бид тэдгээрийг "setColor" функц дотор дараах кодын мөрийн хамт ашиглаж болно:

    setColor (0x4B, 0x0, 0x82); // индиго

    Гурван бүрэлдэхүүн хэсгийн хувьд бид тус бүрийн өмнө "0x" тэмдэгт бүхий тэмдэглэгээг ашигладаг.

    Өөр өөр RGB LED аятай тоглохдоо тус бүрийг ашигласны дараа "саатал" тохируулахаа бүү мартаарай.

    PWM болон Arduino

    Импульсийн өргөн модуляц (PWM) нь эрчим хүчний удирдлагын нэг арга юм. Манай тохиолдолд PWM нь LED бүрийн гэрлийг хянахад ашиглагддаг.

    Доорх зурагт Arduino-ийн PWM тээглүүрүүдийн аль нэгнийх нь дохиог бүдүүвчээр харуулав.


    Секундын 1/500 тутамд PWM гаралт нь импульс үүсгэдэг. Энэ импульсийн уртыг "analogWrite" функцээр хянадаг. Өөрөөр хэлбэл, "analogWrite (0)" нь импульс үүсгэхгүй, харин "analogWrite (255)" нь дараагийнх хүртэл үргэлжлэх дохиог үүсгэдэг. Энэ нь нэг тасралтгүй импульс өгч байгаа мэт сэтгэгдэл төрүүлэх болно.

    Бид analogWrite функц дотор 0-ээс 255 хүртэлх утгыг зааж өгөхөд тодорхой хугацааны импульс үүсгэдэг. Хэрэв импульсийн урт 5% байвал бид заасан Arduino гаралтад байгаа хамгийн их чадлын 5% -ийг ашиглах бөгөөд LED хамгийн их гэрэлтэх үед асахгүй байх шиг байна.

    Доор сэтгэгдэл, асуултаа үлдээж, хувийн туршлагаа хуваалцаарай. Хэлэлцүүлгийн үеэр шинэ санаа, төслүүд ихэвчлэн төрдөг!