Cov txheej txheem:
Video: Infinity Daim iav Clock nrog Potentiometers: 3 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:25
Kuv tuaj hla daim iav infinity thiab kuv pom nws yog qhov txias heev. Qhov no tau tshoov kuv siab kom ua daim iav infinity, tab sis kuv xav tau nws kom muaj lub hom phiaj. Yog li, kuv txiav txim siab los ua lub iav tsom iav infinity ua haujlwm. Nov yog daim iav infinity uas tso cai rau koj hloov cov qauv, nrawm thiab xim siv potentiometers. (Nco tseg: Nov yog kuv thawj zaug ua tej yam zoo li no)
Khoom siv
Cia peb dhia mus rau qhov koj xav tau los ua qhov no!
Koj yuav xav tau…
1) 1 Arduino Uno
3) 1 daim ntawv qhia zaub mov
4) 1 Swb Hloov
5) 3 Potentiometers
6) 19V roj teeb
7) 5 meter WS2811 LED Sawb
8) Jumper Cable Hluav Taws Xob
9) Lub moos (Lub moos Kuv tau siv 12 nti Lub Sijhawm Loj Loj)
10) Daim iav Yooj Yim (Ib qho kuv siv Daim iav Daim iav)
11) Zaj Duab Xis Tsis Pub Leej Twg Paub (Qhov uas Kuv Siv Ib Daim iav)
12) Cov laug yuav xav tau qhov no nyob ntawm koj cov khoom koj muaj
Kauj ruam 1: Kev thaiv kab
Txoj hlua yog yooj yim heev
- SPST Hloov tig thiab tua LED's (A0)
- Sab laug potentiometer tswj lub teeb (A1)
- Qhov nruab nrab potentiometer tswj cov qauv (A2)
- Txoj cai potentiometer tswj qhov nrawm (A3)
Kauj ruam 2: Txoj Cai
#suav nrog
#Txhais tus lej PIN 6
#define NUM_LEDS 54
#define A0A0
#Txhais A1 A1
#Txhais A2 A2
#Txhais qhov A3 A3
// Parameter 1 = tus lej pixels hauv kab
// Parameter 2 = tus lej tus lej (feem ntau siv tau)
// Parameter 3 = pixel hom chij, ntxiv ua ke raws li xav tau:
// NEO_KHZ800 800 KHz bitstream (feem ntau NeoPixel khoom w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (tsis v2) FLORA pixels, WS2811 tsav tsheb)
// NEO_GRB Pixels tau txuas rau GRB bitstream (feem ntau cov khoom NeoPixel)
// NEO_RGB Pixels tau txuas rau RGB bitstream (v1 FLORA pixels, tsis v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void teeb tsa () {
strip.begin ();
strip.show (); // Pib tag nrho cov pixels rau 'tawm'
}
void voj () {
yog (analogRead (A0)> = 512) {
yog (analogRead (A2)> = 768) {
yog (analogRead (A3)> = 768) {
rainbowCycle (80, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} lwm yog (analogRead (A3)> = 512) {
rainbowCycle (60, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} lwm yog (analogRead (A3)> = 256) {
rainbowCycle (40, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
lwm tus {
rainbowCycle (20, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
} lwm yog (analogRead (A2)> = 512) {
yog (analogRead (A1)> = 768) {
CylonBounce (random (255), random (255), random (255), 4, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} lwm yog (analogRead (A1)> = 512) {
CylonBounce (random (255), 0, 0, 4, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} lwm yog (analogRead (A1)> = 256) {
CylonBounce (0, random (255), 0, 4, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
lwm tus {
CylonBounce (0, 0, random (255), 4, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
} lwm yog (analogRead (A2)> = 256) {
yog (analogRead (A1)> = 768) {
siv r, g, b.
r = random (255);
g = random (255);
b = random (255);
meteorRain (r, g, b, 10, 20, tseeb, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} lwm yog (analogRead (A1)> = 512) {
siv r, g, b.
r = random (255);
g yog 0;.
b = 0;
meteorRain (r, g, b, 10, 20, tseeb, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} lwm yog (analogRead (A1)> = 256) {
siv r, g, b.
r = 0 hli;
g = random (255);
b = 0;
meteorRain (r, g, b, 10, 20, tseeb, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
lwm tus {
siv r, g, b.
r = 0 hli;
g yog 0;.
b = random (255);
meteorRain (r, g, b, 10, 20, tseeb, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
}
lwm {yog (analogRead (A1)> = 768) {
RunningLights (random (255), random (255), random (255), analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} lwm yog (analogRead (A1)> = 512) {
RunningLights (random (255), 1, 1, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
} lwm yog (analogRead (A1)> = 256) {
RunningLights (1, random (255), 1, analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
lwm tus {
RunningLights (1, 1, random (255), analogRead (A0), analogRead (A1), analogRead (A2), analogRead (A3));
}
}
lwm yam {
setAll (0, 0, 0);
}
}
void rainbowCycle (int SpeedDelay, int oldA0, int oldA1, int oldA2, int oldA3) {
peb *c;
uint16_t kuv, j;
rau (j = 0; j <256*5; j ++) {// 5 mus ntawm txhua xim ntawm lub log
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
rau (kuv = 0; kuv <NUM_LEDS; kuv ++) {
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
c = Log (((i * 256 / NUM_LEDS) + j) & 255);
setPixel (i, *c, *(c+1), *(c+2));
}
showStrip ();
ncua (SpeedDelay);
}
}
byte * Log (byte WheelPos) {
zoo li qub byte c [3];
yog (WheelPos <85) {
c [0] = WheelPos * 3;
c [1] = 255 - WheelPos * 3;
c [2] = 0;
} lwm yog (WheelPos <170) {
WheelPos -= 85;
c [0] = 255 - WheelPos * 3;
c [1] = 0;
c [2] = WheelPos * 3;
lwm yam {
WheelPos -= 170;
c [0] = 0;
c [1] = WheelPos * 3;
c [2] = 255 - WheelPos * 3;
}
rov c;
}
tsis muaj dab tsi CylonBounce (byte liab, byte ntsuab, byte xiav, int EyeSize, int oldA0, int oldA1, int oldA2, int oldA3) {
koj SpeedDelay;
koj ReturnDelay;
yog (analogRead (A3)> = 768) {SpeedDelay = 80; ReturnDelay = 120;}
lwm tus yog (analogRead (A3)> = 512) {SpeedDelay = 60; ReturnDelay = 100;}
lwm tus yog (analogRead (A3)> = 256) {SpeedDelay = 40; ReturnDelay = 80;}
lwm {SpeedDelay = 20; ReturnDelay = 60;}
rau (int kuv = 0; kuv <NUM_LEDS-EyeSize-2; i ++) {
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
setAll (0, 0, 0);
setPixel (kuv, liab/10, ntsuab/10, xiav/10);
rau (int j = 1; j <= EyeSize; j ++) {
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
setPixel (i+j, liab, ntsuab, xiav);
}
setPixel (i+Qhov muag+1, liab/10, ntsuab/10, xiav/10);
showStrip ();
ncua (SpeedDelay);
}
ncua (ReturnDelay);
rau (int kuv = NUM_LEDS-EyeSize-2; i> 0; i--) {
setAll (0, 0, 0);
setPixel (kuv, liab/10, ntsuab/10, xiav/10);
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
rau (int j = 1; j <= EyeSize; j ++) {
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
setPixel (i+j, liab, ntsuab, xiav);
}
setPixel (i+Qhov muag+1, liab/10, ntsuab/10, xiav/10);
showStrip ();
ncua (SpeedDelay);
}
ncua (ReturnDelay);
}
tsis muaj dab tsi RunningLights (byte liab, byte ntsuab, byte xiav, int oldA0, int oldA1, int oldA2, int oldA3) {
int Txoj hauj lwm = 0;
koj WaveDelay;
yog (analogRead (A3)> = 768) {WaveDelay = 80;}
lwm tus yog (analogRead (A3)> = 512) {WaveDelay = 60;}
lwm tus yog (analogRead (A3)> = 256) {WaveDelay = 40;}
lwm {WaveDelay = 20;}
rau (int j = 0; j
{
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
Txoj hauj lwm ++; // = 0; // Txoj hauj lwm + Tus nqi;
rau (int i = 0; i
// sine wave, 3 offset tsis ua tus zaj sawv!
// ntab theem = kev txhaum (kuv + Txoj Haujlwm) * 127 + 128;
// setPixel (kuv, qib, 0, 0);
// ntab theem = kev txhaum (kuv + Txoj Haujlwm) * 127 + 128;
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
setPixel (i, ((sin (i + Txoj Haujlwm) * 127 + 128)/255) * liab, ((sin (i + Txoj Haujlwm) * 127 + 128)/255) * ntsuab, ((sin (i + Txoj Haujlwm) * 127 + 128)/255) * xiav);
}
showStrip ();
ncua (WaveDelay);
}
}
tsis muaj dab tsi meteorRain (byte liab, byte ntsuab, byte xiav, byte meteorSize, byte meteorTrailDecay, boolean meteorRandomDecay, int oldA0, int oldA1, int oldA2, int oldA3) {
setAll (0, 0, 0);
koj SpeedDelay;
yog (analogRead (A3)> = 768) {SpeedDelay = 80;}
lwm tus yog (analogRead (A3)> = 512) {SpeedDelay = 60;}
lwm tus yog (analogRead (A3)> = 256) {SpeedDelay = 40;}
lwm {SpeedDelay = 20;}
rau (int kuv = 0; kuv <NUM_LEDS+NUM_LEDS; kuv ++) {
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
// fade qhov ci ci tag nrho LEDs ib kauj ruam
rau (int j = 0; j
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
yog ((! meteorRandomDecay) || (random (10)> 5)) {
fadeToBlack (j, meteorTrailDecay);
}
}
// kos lub hnub qub
rau (int j = 0; j <meteorSize; j ++) {
yog (oldA0! = analogRead (A0) || ((oldA1-256)> analogRead (A1)) || ((oldA1+256) analogRead (A2)) || ((oldA2+256) analogRead (A3)) | | ((oldA3+256)
tawg;
}
yog ((i-j = 0)) {
setPixel (i-j, liab, ntsuab, xiav);
}
}
showStrip ();
ncua (SpeedDelay);
}
}
void fadeToBlack (int ledNo, byte fadeValue) {
#ifdef ADAFRUIT_NEOPIXEL_H
// NeoPixel
uint32_t qubColor;
uint8_t r, g, b;
tus nqi;
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 (coj tsis muaj, r, g, b);
#ib
#ifndef ADAFRUIT_NEOPIXEL_H
// FastLED
leds [ledNo].fadeToBlackBy (fadeValue);
#ib
}
// *** REPLACE TO HERE ***
tsis muaj dabtsis showStrip () {
#ifdef ADAFRUIT_NEOPIXEL_H
// NeoPixel
strip.show ();
#ib
#ifndef ADAFRUIT_NEOPIXEL_H
// FastLED
FastLED.show ();
#ib
}
void setPixel (int Pixel, byte liab, byte ntsuab, byte xiav) {
#ifdef ADAFRUIT_NEOPIXEL_H
// NeoPixel
strip.setPixelColor (Pixel, strip. Color (liab, ntsuab, xiav));
#ib
#ifndef ADAFRUIT_NEOPIXEL_H
// FastLED
leds [Pixel].r = liab;
leds [Pixel].g = ntsuab;
leds [Pixel].b = xiav;
#ib
}
tsis muaj dab tsi setAll (byte liab, byte ntsuab, byte xiav) {
rau (int kuv = 0; kuv <NUM_LEDS; kuv ++) {
setPixel (kuv, liab, ntsuab, xiav);
}
showStrip ();
}
Kauj Ruam 3: Tsim Lub Sijhawm
Kuv yuav pom zoo kom tau txais lub iav iav uas nyob sab hauv. Thaum kuv tau thov daim iav hloov pauv mus rau sab hauv ntawm lub moos muaj teeb meem vim cov lej hauv lub moos tawm los, daim iav tau khoov ua rau lub iav tsis pom kev zoo tshwm sim. Koj yuav tsum muaj daim iav hloov pauv tau yooj yim thiab Zaj Duab Xis Tsis Pub Leej Twg ua kom tiaj li sai tau. Yog tias koj tau txais lub moos kom ntseeg tau tias koj tuaj yeem tso LED sab hauv yam tsis muaj teeb meem.
Kauj Ruam 1: Qhib lub moos thiab tshem lub iav pem hauv ntej
Kauj Ruam 2: Muab Zaj Duab Xis Tsis Pub Leej Twg tso rau ntawm lub khob iav (Daim vis dis aus no qhia koj yuav ua li cas)
Kauj Ruam 3: Siv daim iav hloov pauv sab hauv ntawm lub moos (Tshem lub moos tes ua ntej ua qhov no)
Kauj Ruam 4: Ua lub qhov nyob hauv nruab nrab kom lub moos txhais tes rov qab los
Kauj Ruam 5: Muab cov hlua LED nyob ib puag ncig sab hauv ntawm lub moos (Kuv siv rab phom kub kub rau cov kauj ruam no)
Kauj Ruam 6: Qhib cov hlua LED thiab tso lub iav rau sab saum toj ntawm lub moos kom pom tias qhov cuam tshuam qhov iav tsis zoo nyob ntawd
Kauj Ruam 7: Thaum koj ua tiav nrog txhua yam tso lub moos ua ke thiab cia cov xov hlau hla mus rau tom qab
Kauj Ruam 8: Ua tsaug uas koj tau ua tiav txoj haujlwm thiab txhua yam yuav tsum ua haujlwm zoo
Yog tias koj muaj lus nug thov tawm tswv yim rau lawv hauv qab no (Paub tias kuv yuav tsis tuaj yeem teb tau, tab sis kuv yuav ua qhov zoo tshaj plaws)
Pom zoo:
Ua Ib Daim iav Daim Duab Infinity: 15 Kauj Ruam (nrog Duab)
Ua Lub Tsom iav Infinity: Hauv qhov haujlwm yav dhau los kuv tau tsim daim iav tsis muaj qhov kawg, qhov twg kuv lub hom phiaj kawg rau nws yog ua kom nws ua lub moos. (Ua Daim iav Infinity Muaj Xim) Kuv tsis tau ua raws li tom qab tsim nws vim tias, txawm hais tias nws zoo li txias, muaj qee yam nrog
Tsiv daim phiaj nrog daim iav Infinity: 7 Kauj Ruam
Tsiv Grid Nrog Daim iav Infinity: cov yeeb yaj kiab no ua yeeb yaj kiab thiab txav video.Peb xav qhia qhov chaw nrawm nrawm los ntawm kev txav chaw thiab Daim iav Infinity los qhia qhov kev nkag siab ntawm qhov chaw zoo dua. Peb txoj haujlwm muaj ob daim phaj acrylic, sab xub ntiag, thiab cov duab nraub qaum, uas
Tsom iav tsom iav Siv Daim Kab Xev: 5 Kauj Ruam (nrog Duab)
Tsom iav tsom iav Siv Daim Kab Xev: Muaj qee yam uas ua rau muaj kev ntxhov siab ntau dua li siv hmo ntuj thaij duab saum ntuj nrog koj lub tsom iav raj, tsuas yog txhawm rau pom tias txhua yam ntawm koj cov duab tsuas yog tsom me ntsis … nyuaj
Infinity Daim iav Clock: 5 Cov Kauj Ruam (nrog Duab)
Infinity Mirror Clock: Nov yog lub moos xuas tes ua feem ntau rau kev kho kom zoo nkauj. Muaj ob peb lub teeb LED hauv lub moos, thaum qhib, nws yog qhov zoo nkauj kho kom zoo nkauj rau chav pw. Thaum muab tua, nws yog daim iav me me. Tau kawg, nws yog lub moos nws tus kheej
Infinity Daim iav Phab Ntsa Hauv IKEA Daim Duab Duab: 4 Kauj Ruam
Infinity Mirror Wall Clock hauv IKEA Daim Duab Duab: Nyob zoo, Kuv ib txwm xav tsim lub moos phab ntsa. Muaj ntau ntau ntawm cov phab ntsa zoo nkauj hauv khw xws li IKEA. Kuv muaj qee qhov teeb meem nrog cov lag luam moos no. Lawv nrov heev rau kuv (tic-tac txuas ntxiv yog qhov tsis txaus ntseeg), Kuv tsis tuaj yeem pom lub sijhawm teev