Агуулгын хүснэгт:
Видео: Потенциометр бүхий Infinity толин цаг: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Хязгааргүй тольтой тааралдахад үнэхээр дажгүй санагдлаа. Энэ нь намайг хязгааргүй толь хийх урам зориг өгсөн боловч зорилготой байхын тулд надад хэрэгтэй байсан. Тиймээс би хязгааргүй толин цаг ажиллуулахаар шийдсэн. Энэ бол потенциометр ашиглан горим, хурд, өнгийг өөрчлөх боломжийг олгодог хязгааргүй толь юм. (Жич: Би анх удаа ийм зүйл хийж байна)
Хангамж
Энэ зүйлийг хийхэд танд хэрэгтэй зүйл рүү орцгооё!
Танд хэрэгтэй болно…
1) 1 Arduino Uno
3) 1 талхны самбар
4) 1 слайд шилжүүлэгч
5) 3 потенциометр
6) 1 9V батерей
7) 5 метрийн WS2811 LED зурвас
8) холбогч кабелийн утас
9) Цаг (миний ашигладаг 12 инчийн том орчин үеийн цаг)
10) Уян хатан толь хуудас (Миний толин тусгал хуудас ашигласан)
11) Нууцлалын кино (Миний нэг талын толь ашигласан кино)
12) Гагнах шаардлагатай байж магадгүй бөгөөд энэ нь танд байгаа материалаас хамаарна
Алхам 1: Цахилгааны утас
Цахилгааны утас нь маш энгийн
- SPST шилжүүлэгч нь LED -ийг асааж, унтраана (A0)
- Зүүн потенциометр нь гэрлийг удирддаг (A1)
- Дунд потенциометр нь горимыг хянадаг (A2)
- Зөв потенциометр нь хурдыг хянадаг (A3)
Алхам 2: Код
#оруулах
#PIN 6 тодорхойлох
#тодорхойлох_ NUM_LEDS 54
#тодорхойлох A0 A0
#тодорхойлох A1 A1
#тодорхойлох A2 A2
#A3 A3 -ийг тодорхойлох
// Параметр 1 = тууз дахь пикселийн тоо
// Параметр 2 = зүү дугаар (ихэнх нь хүчинтэй байна)
// Параметр 3 = пикселийн төрлийн тугуудыг шаардлагатай бол нэмж оруулаарай.
// NEO_KHZ800 800 KHz битийн урсгал (WS2812 LED бүхий NeoPixel -ийн ихэнх бүтээгдэхүүн)
// NEO_KHZ400 400 KHz (сонгодог 'v1' (v2 биш) FLORA пиксел, WS2811 драйверууд)
// NEO_GRB пикселүүд нь GRB bitstream -д зориулагдсан байдаг (ихэнх NeoPixel бүтээгдэхүүнүүд)
// NEO_RGB пикселүүд нь RGB bitstream -д зориулагдсан (v2 биш v1 FLORA пиксел)
Adafruit_NeoPixel зурвас = Adafruit_NeoPixel (NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
хүчингүй тохиргоо () {
strip.begin ();
strip.show (); // Бүх пикселийг "унтраах" болгож эхлүүлэх
}
void loop () {
хэрэв (analogRead (A0)> = 512) {
хэрэв (analogRead (A2)> = 768) {
хэрэв (analogRead (A3)> = 768) {
Солонго Цикл (80, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} өөр бол (analogRead (A3)> = 512) {
Солонго Цикл (60, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} өөр бол (analogRead (A3)> = 256) {
Солонго Цикл (40, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
өөр {
Солонго Цикл (20, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
} өөр бол (analogRead (A2)> = 512) {
хэрэв (analogRead (A1)> = 768) {
CylonBounce (санамсаргүй (255), санамсаргүй (255), санамсаргүй (255), 4, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} өөр бол (analogRead (A1)> = 512) {
CylonBounce (санамсаргүй (255), 0, 0, 4, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} өөр бол (analogRead (A1)> = 256) {
CylonBounce (0, санамсаргүй (255), 0, 4, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
өөр {
CylonBounce (0, 0, санамсаргүй (255), 4, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
} өөр бол (analogRead (A2)> = 256) {
хэрэв (analogRead (A1)> = 768) {
байт r, g, b;
r = санамсаргүй (255);
g = санамсаргүй (255);
b = санамсаргүй (255);
meteorRain (r, g, b, 10, 20, үнэн, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} өөр бол (analogRead (A1)> = 512) {
байт r, g, b;
r = санамсаргүй (255);
g = 0;
b = 0;
meteorRain (r, g, b, 10, 20, үнэн, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} өөр бол (analogRead (A1)> = 256) {
байт r, g, b;
r = 0;
g = санамсаргүй (255);
b = 0;
meteorRain (r, g, b, 10, 20, үнэн, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
өөр {
байт r, g, b;
r = 0;
g = 0;
b = санамсаргүй (255);
meteorRain (r, g, b, 10, 20, үнэн, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
}
өөр {хэрэв (analogRead (A1)> = 768) {
RunningLights (санамсаргүй (255), санамсаргүй (255), санамсаргүй (255), analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} өөр бол (analogRead (A1)> = 512) {
RunningLights (санамсаргүй (255), 1, 1, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} өөр бол (analogRead (A1)> = 256) {
RunningLights (1, санамсаргүй (255), 1, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
өөр {
RunningLights (1, 1, санамсаргүй (255), analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
}
} өөр {
setAll (0, 0, 0);
}
}
хоосон солонго тойрог (int SpeedDelay, int oldA0, int oldA1, int oldA2, int oldA3) {
байт *в;
uint16_t i, j;
for (j = 0; j <256*5; j ++) {// дугуй дээрх бүх өнгөний 5 мөчлөг
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
for (i = 0; i <NUM_LEDS; i ++) {
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
c = Дугуй (((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c+1), *(c+2));
}
showStrip ();
саатал (SpeedDelay);
}
}
байт * Дугуй (байт WheelPos) {
статик байт c [3];
хэрэв (WheelPos <85) {
c [0] = WheelPos * 3;
c [1] = 255 - WheelPos * 3;
c [2] = 0;
} өөр бол (WheelPos <170) {
WheelPos -= 85;
c [0] = 255 - WheelPos * 3;
c [1] = 0;
c [2] = WheelPos * 3;
} өөр {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
буцах c;
}
хүчингүй CylonBounce (улаан байт, ногоон байт, цэнхэр байт, int EyeSize, int oldA0, int oldA1, int oldA2, int oldA3) {
int SpeedDelay;
int ReturnDelay;
if (analogRead (A3)> = 768) {SpeedDelay = 80; ReturnDelay = 120;}
өөр бол (analogRead (A3)> = 512) {SpeedDelay = 60; ReturnDelay = 100;}
өөр бол (analogRead (A3)> = 256) {SpeedDelay = 40; ReturnDelay = 80;}
өөр {SpeedDelay = 20; ReturnDelay = 60;}
for (int i = 0; i <NUM_LEDS-EyeSize-2; i ++) {
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
setAll (0, 0, 0);
setPixel (i, улаан/10, ногоон/10, цэнхэр/10);
for (int j = 1; j <= EyeSize; j ++) {
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
setPixel (i+j, улаан, ногоон, цэнхэр);
}
setPixel (i+EyeSize+1, улаан/10, ногоон/10, цэнхэр/10);
showStrip ();
саатал (SpeedDelay);
}
саатал (ReturnDelay);
for (int i = NUM_LEDS-EyeSize-2; i> 0; i--) {
setAll (0, 0, 0);
setPixel (i, улаан/10, ногоон/10, цэнхэр/10);
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
for (int j = 1; j <= EyeSize; j ++) {
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
setPixel (i+j, улаан, ногоон, цэнхэр);
}
setPixel (i+EyeSize+1, улаан/10, ногоон/10, цэнхэр/10);
showStrip ();
саатал (SpeedDelay);
}
саатал (ReturnDelay);
}
хүчингүй RunningLights (улаан байт, ногоон байт, цэнхэр байт, int oldA0, int oldA1, int oldA2, int oldA3) {
int Position = 0;
int WaveDelay;
if (analogRead (A3)> = 768) {WaveDelay = 80;}
өөр бол (analogRead (A3)> = 512) {WaveDelay = 60;}
өөр бол (analogRead (A3)> = 256) {WaveDelay = 40;}
өөр {WaveDelay = 20;}
for (int j = 0; j
{
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
Албан тушаал ++; // = 0; // Албан тушаал + үнэлгээ;
for (int i = 0; i
// синус долгион, 3 офсет долгион нь солонго болдог!
// float level = sin (i + Position) * 127 + 128;
// setPixel (i, түвшин, 0, 0);
// float level = sin (i + Position) * 127 + 128;
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
setPixel (i, ((sin (i + Position) * 127 + 128)/255) * улаан, ((нүгэл (i + албан тушаал) * 127 + 128)/255) * ногоон, ((нүгэл (i + албан тушаал) * 127 + 128)/255) * цэнхэр);
}
showStrip ();
саатал (WaveDelay);
}
}
хоосон солир бороо (байт улаан, байт ногоон, цэнхэр байт, байт солирSize, байт солирTrailDecay, логик солирRandomDecay, int oldA0, int oldA1, int oldA2, int oldA3) {
setAll (0, 0, 0);
int SpeedDelay;
if (analogRead (A3)> = 768) {SpeedDelay = 80;}
өөр бол (analogRead (A3)> = 512) {SpeedDelay = 60;}
өөр бол (analogRead (A3)> = 256) {SpeedDelay = 40;}
өөр {SpeedDelay = 20;}
for (int i = 0; i <NUM_LEDS+NUM_LEDS; i ++) {
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
// бүх LED гэрлийг нэг алхамаар бүдгэрүүлнэ
for (int j = 0; j
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
if ((! meteorRandomDecay) || (санамсаргүй (10)> 5)) {
fadeToBlack (j, meteorTrailDecay);
}
}
// солир зур
for (int j = 0; j <meteorSize; j ++) {
if (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((хуучинA3+256)
завсарлага;
}
хэрэв ((i-j = 0)) {
setPixel (i-j, улаан, ногоон, цэнхэр);
}
}
showStrip ();
саатал (SpeedDelay);
}
}
void fadeToBlack (int ledNo, byte fadeValue) {
#ifdef ADAFRUIT_NEOPIXEL_H
// NeoPixel
uint32_t oldColor;
uint8_t r, g, b;
int утга;
oldColor = strip.getPixelColor (ledNo);
r = (oldColor & 0x00ff0000UL) >> 16;
g = (oldColor & 0x0000ff00UL) >> 8;
b = (oldColor & 0x000000ffUL);
r = (r <= 10)? 0: (int) r- (r*fadeValue/256);
g = (g <= 10)? 0: (int) g- (g*fadeValue/256);
b = (b <= 10)? 0: (int) b- (b*fadeValue/256);
strip.setPixelColor (ledNo, r, g, b);
#endif
#ifndef ADAFRUIT_NEOPIXEL_H
// FastLED
leds [ledNo].fadeToBlackBy (fadeValue);
#endif
}
// *** ЭНД ДАРЖ орлуулна уу ***
void showStrip () {
#ifdef ADAFRUIT_NEOPIXEL_H
// NeoPixel
strip.show ();
#endif
#ifndef ADAFRUIT_NEOPIXEL_H
// FastLED
FastLED.show ();
#endif
}
хүчингүй setPixel (int Pixel, улаан байт, ногоон байт, цэнхэр байт) {
#ifdef ADAFRUIT_NEOPIXEL_H
// NeoPixel
strip.setPixelColor (Пиксел, зурвас Өнгө (улаан, ногоон, цэнхэр));
#endif
#ifndef ADAFRUIT_NEOPIXEL_H
// FastLED
leds [Pixel].r = улаан;
leds [Пиксел].g = ногоон;
leds [Pixel].b = цэнхэр;
#endif
}
void setAll (улаан байт, ногоон байт, цэнхэр байт) {
for (int i = 0; i <NUM_LEDS; i ++) {
setPixel (i, улаан, ногоон, цэнхэр);
}
showStrip ();
}
Алхам 3: Цагийг бий болгох
Дотор нь хавтгай шилэн цаг авахыг зөвлөж байна. Би уян хатан толин тусгалыг цагны дотор талд хэрэглэж байх үед цагны доторх тоонууд гарч ирснээс болж асуудал үүсч, толь нь нугалж, эцэс төгсгөлгүй толин тусгал үзүүлэхгүй байв. Та аль болох хавтгай байхын тулд уян хатан толин тусгал хуудас, нууцлалын хальстай байх хэрэгтэй. Хэрэв та цаг авах гэж байгаа бол LED -ийг дотор нь ямар ч асуудалгүйгээр байрлуулж болно.
Алхам 1: Цагийг нээгээд урд талын шилийг ав
Алхам 2: Нууцлалын хальсыг урд талын шилэн дээр тавь (Энэ видеонд үүнийг хэрхэн хийхийг зааж өгсөн болно)
Алхам 3: Цагны дотор талд уян хатан толь түрхээрэй (Үүнийг хийхийн өмнө цагны гарыг ав)
Алхам 4: Цагийн зүүг буцааж тавихын тулд дундуур нь нүх гарга
Алхам 5: LED туузыг цагны дотор хананы эргэн тойронд байрлуул (энэ алхамд би халуун цавуу буу ашигласан)
Алхам 6: LED зурвасыг асаагаад шилийг цагны дээд талд байрлуулж хязгааргүй толин тусгал эффект байгаа эсэхийг үзээрэй
Алхам 7: Бүх зүйл дууссаны дараа цагийг хамтад нь холбож, утсыг ар тал руу нь дамжуулаарай
Алхам 8: Төслийг дуусгасанд баяр хүргэе, бүх зүйл сайн ажиллах ёстой
Хэрэв танд ямар нэгэн асуулт байвал доор тайлбар бичээрэй (Би хариулж чадахгүй байж магадгүй, гэхдээ би чадах бүхнээ хийх болно)
Зөвлөмж болгож буй:
Таны гарт галактик байна! Infinity толин тусгал хайрцаг: 3 алхам (зурагтай)
Таны гарт галактик байна! Хязгааргүй тольны хайрцаг: Энэхүү гарын авлага нь дотроо маш олон тусгалыг бий болгодог жижигхэн хэлбэр дүрслэх тухай юм. Гэрэлтэх өнцөг бүр дээр нүх, жижиг цонхыг харах боломжтой тул та энэхүү хязгааргүй үйл явцыг гартаа харж болно! Энэхүү санаа нь хязгааргүй Mirr -ийг үзэхээс үүдэлтэй юм
Arduino болон RGB Leds ашиглан Infinity толин тусгал зүрхийг хэрхэн яаж хийх вэ: 8 алхам (зурагтай)
Arduino болон RGB Leds -ийн тусламжтайгаар хязгааргүй толь зүрхийг хэрхэн яаж хийх вэ: Нэгэн удаа үдэшлэг дээр эхнэр бид хоёр хязгааргүй толин тусгалыг хараад тэр хүний харцыг сонирхож, би хүсч байна гэж хэлсээр байсан! Сайн нөхөр үргэлж сонсож, санаж явдаг болохоор би түүнд зориулж Гэгээн Валентины өдрийн бэлэг болгон барихаар шийдсэн юм
Орчин үеийн Led Infinity толин тусгал ширээний чийдэн: 19 алхам (зурагтай)
Орчин үеийн Led Infinity толин тусгал ширээний чийдэн: © 2017 techydiy.org Бүх эрх хуулиар хамгаалагдсан.Та энэ заавартай холбоотой видео эсвэл зургийг хуулж, тарааж болохгүй. Энэхүү зааварчилгааны дагуу би орчин үеийн хэв маягийн хязгааргүй толь хэрхэн бүтээх талаар тайлбарлах болно. түүнчлэн нэг
Infinity толин цаг: 5 алхам (зурагтай)
Хязгааргүй толь цаг: Энэ бол ихэвчлэн гар хийцийн цаг бөгөөд гоёл чимэглэлийн зориулалттай.Цагийн хэд хэдэн LED гэрэл байдаг бөгөөд асаахад унтлагын өрөөний гоё чимэглэл болдог. Унтраасан бол энэ нь жижиг толь юм. Мэдээжийн хэрэг, энэ бол өөрөө цаг юм
IKEA -ийн зургийн жааз дахь Infinity толин тусгал ханын цаг: 4 алхам
IKEA -ийн зургийн жааз дахь Infinity толин тусгал ханын цаг: Сайн байна уу, би үргэлж ханын цаг бүтээхийг хүсдэг байсан. IKEA шиг дэлгүүрүүдэд маш олон гайхалтай ханын цагнууд байдаг. Би эдгээр арилжааны цагтай холбоотой зарим асуудалтай тулгарсан. Тэд миний хувьд хэт чанга байна (тасралтгүй тасалдах нь ядаргаатай), би цагийн зүүг харж чадахгүй байна