Cov txheej txheem:

Rub Lub Teeb - Lub Teeb Pom Kev Siv Neopixel & Rub Tawm Hloov: 6 Cov Kauj Ruam (nrog Duab)
Rub Lub Teeb - Lub Teeb Pom Kev Siv Neopixel & Rub Tawm Hloov: 6 Cov Kauj Ruam (nrog Duab)

Video: Rub Lub Teeb - Lub Teeb Pom Kev Siv Neopixel & Rub Tawm Hloov: 6 Cov Kauj Ruam (nrog Duab)

Video: Rub Lub Teeb - Lub Teeb Pom Kev Siv Neopixel & Rub Tawm Hloov: 6 Cov Kauj Ruam (nrog Duab)
Video: Lig Pob tsuas xyooj nkauj tawm tshiab 2022-2023 2024, Lub Xya hli ntuj
Anonim
Image
Image
Rub Lub Teeb - Teeb Pom Kev Siv Neopixel & Rub Tawm Hloov
Rub Lub Teeb - Teeb Pom Kev Siv Neopixel & Rub Tawm Hloov

Nta ntawm Lub Teeb module

  • Arduino Ib
  • Kho vajtse & ntaub thaiv npog tau yuav los ntawm internet
  • Neopixel & Cov khoom siv fais fab tau qiv los ntawm Lub Tsev Kawm Ntawv ntawm Cov Ntaub Ntawv & Khoom Tsim
  • Lub teeb pom kev zoo tswj los ntawm lub hwj chim
  • Txhua txoj haujlwm tswj hwm los ntawm cov neeg siv kev sib cuam tshuam
  • Cov tsiaj ua yeeb yam ntawm Neopixel sawb: Hom Dej, Hom Dej, Hom Hluav Taws Xob, Hom Pop, Hom Tsis Zoo
  • Qhov rub tawm hloov tau txuas nrog Neopixel sawb thiab cov duab hloov pauv thaum rub Neopixel sawb

Kauj ruam 1: Ua ntej Peb Pib

Ua ntej Peb Pib
Ua ntej Peb Pib

Nyob zoo Instructables thiab Makers.

Peb tau pib thiab sib tham sib tham tsim qhov project hais txog dab tsi yuav tshwm sim yog tias peb tuaj yeem hnov qhov kev xav ntawm nag los ntawm kev ua kom pom kev ntawm lub teeb. Kuv xav tias tus neeg siv qhov kev nkag siab zoo yuav tau txais txiaj ntsig zoo los ntawm kev sib cuam tshuam uas rub lub teeb ncaj qha.

Tsis txhob mus ua haujlwm

Kauj Ruam 2: Qhov Yuav Tsum Tau

Qhov Yuav Tsum Tau
Qhov Yuav Tsum Tau
Qhov Yuav Tsum Tau
Qhov Yuav Tsum Tau
Qhov Yuav Tsum Tau
Qhov Yuav Tsum Tau

Raws li ib Lub Teeb Module

*** Neopixels thiab Lub Hwj Huam tau siv nrog kev txhawb nqa ntawm peb lub tuam tsev. ***

Electronics:

  1. Arduino Ib
  2. 3 xim hlau (Dub, Liab, xim twg)
  3. 3pin txuas (Txuas mus yuav)
  4. Rub tawm hloov 1 (Txuas mus yuav)
  5. shrinking lub cev
  6. WS2812b ntxiv cov hlua LED nrog 74 LED (Neopixel sawb)*2
  7. Fais fab mov (5V 350A) 1

*** 50 teeb xav tau rau Arduino, Rub Hloov thiab NeoPixels. ***

Kho vajtse:

  1. Acrylic bar 2t (10mm*1000mm) 1
  2. Acrylic board 5t (60mm*60mm) 1
  3. Foemax 10t (1200mm*1800mm) 1
  4. Tshuaj tsuag dub
  5. Txoj hlua khi
  6. Txoj hlua
  7. Hardboard
  8. Daim phiaj phiaj

Kauj Ruam 3: Kev Sib Txuas thiab Tsim Kho Vajtse

Kev sib txuas thiab tsim kho vajtse
Kev sib txuas thiab tsim kho vajtse
Kev sib txuas thiab tsim kho vajtse
Kev sib txuas thiab tsim kho vajtse
Kev sib txuas thiab tsim kho vajtse
Kev sib txuas thiab tsim kho vajtse

Ua ntej, peb xav tau Acrylic Txiav los ua ib qho qauv teeb pom kev zoo.

  • Raws li ib txoj hauv kev kom pom qhov ua kom pom kev ntawm lub teeb, teeb tsa lub teeb pom kev zoo uas tau teeb tsa los ntawm kev txuas 74 LEDs hauv daim ntawv ntawm neopixel sawb mus rau 2mm tuab acrylic bar nrog thaj tsam 1M. Peb tau tsim ob hom kev teeb pom kev zoo: raug kab thiab kauv.
  • Rau hom kab, cov kab neopixel uas twb muaj lawm tuaj yeem tuav thiab ruaj ntseg, tab sis hom kauv xav tau kev ua haujlwm. Txhua tus ntawm 74 LED tau muab faib ua daim, txuas rau ib qho kauv acrylic, thiab sib txuas ua ke nrog txhuas.

Txuas Neopixel sawb rau cov acrylic thiab ruaj ntseg txhua txoj hlua kom tiv thaiv nws kom txhob kis los ntawm cua sov, lossis khi nrog txoj kab nuv ntses nyias. Nyob rau hauv cov ntaub ntawv ntawm hom kab, qhov yuav tsum tau rub mus rau qhov kawg ntawm tus qauv tau teeb tsa los tsim qhov zoo nkauj zoo nkauj thiab peb ua tiav pob ping pong nrog tshuaj tsuag xim dub. Tom qab ntawd lawv tau siv lub qhov me me hauv pob ping pong thiab txuas nrog hlua. Qhov tseem ceeb tshaj tom ntej, hloov thiab neopixel, txuas nrog raws li qhia. Tom qab ntawd qhov hloov pauv tau ruaj ntseg rau lub qab nthab.

Nyob rau hauv cov ntaub ntawv ntawm hom kauv, muaj qhov pheej hmoo tias kev rub ncaj qha ntawm txoj kab sib chaws tuaj yeem tsoo cov acrylic hauv qab siab, yog li rub ntu (Cov tswv yim) thiab cov qauv (Cov Khoom Tawm) tau sib cais. Txhawm rau ua kom lub teeb poob qis tshaj plaws, cov qauv tau teeb tsa ntsug ntawm lub qab nthab, cov qauv hloov pauv tau teeb tsa rau saum huab cua, spirals tau tsau ncaj qha rau qab nthab. Thiab peb txuas lub pob ping pong thiab hloov mus rau kab nuv ntses kom nws tuaj yeem ua haujlwm tau.

Kev txiav acrylic raws li qhia hauv daim duab saum toj no yuav tsum muaj kev nyab xeeb hloov mus rau lub txee. Qhov hloov pauv 6cm square zoo li kwv yees li 5mm tuab, nrog txoj kev hloov mus rau qhov nruab nrab thiab ib txoj hlua khi txuas los ntawm qhov ntawm ob sab kom ruaj khov qhov hloov pauv. Ib lub qhov ncig hauv qab ntawm qhov nruab nrab nthuav tawm qhov rub tawm ntawm qhov hloov pauv, hauv qab no uas peb lub xov tooj hluav taws xob tau rub tawm thiab txuas nrog lub dav hlau cable ntawm tus qauv. Thiab zoo ib yam, los ntawm lub qhov nyob hauv plaub lub ces kaum, lub txee thiab acrylic tau ruaj ntseg nrog cov hlua txuas. Raws li tau piav qhia saum toj no, kab qauv txuas ncaj qha mus rau rub, tab sis cov kauv qauv txuas tus pin thiab hloov sib cais.

Kauj Ruam 4: Tsim Kev Siv 50 Lub Teeb Qauv

Tsim Kev Siv 50 Lub Teeb Qauv
Tsim Kev Siv 50 Lub Teeb Qauv
Tsim Kev Siv 50 Lub Teeb Qauv
Tsim Kev Siv 50 Lub Teeb Qauv
Tsim Kev Siv 50 Lub Teeb Qauv
Tsim Kev Siv 50 Lub Teeb Qauv

Peb tau tsim cov neeg siv kev paub rau lub teeb pom kev zoo los ntawm kev xa tawm tag nrho ntawm 50 tus qauv

Peb muaj lub txee uas yog 1, 800mm dav thiab 1, 200mm ntev, thiab peb txuas nrog txhua qhov kev hloov pauv thiab cov qauv kom koj tuaj yeem ntsib cov nag thiab ib puag ncig los nag uas peb tau npaj ua ntej, thiab peb muaj txhua tus qauv sawv ib leeg los pab ua haujlwm ntau.

Nyob ntawm tus qauv tsim, ib lub qhov puag ncig tau raug ເຈາະ rau hauv foemax kom zais qhov teeb tsa thiab kom paub tseeb tias thaj chaw sib txuas ntawm LED module tsis pom. Txij li qhov kev ncua deb ntawm pawg thawj coj saib acrylic mus rau LED module txuas qhov twg qhov hloov pauv tau txuas txog 1cm, siv 1cm tuab foemax.

Cov ncej hlau hlau tau siv los tuav kev teeb tsa ua ke nrog cov ntsia hlau thiab cov hlua txuas thaum tswj hwm qhov hnyav tag nrho thiab sib npaug. Yog tias qhov ntev ntawm qhov kev sib txuas nthuav tawm ntau dua li qhov thaum tus kws tsim khoom sim, cov pawg tuab tuab tsis muaj txiaj ntsig thiab lwm yam txheej txheem raug pom zoo.

Txhawm rau pab tus neeg siv kev paub ntawm qib qhov muag, kev teeb tsa ua tiav tau muab tso rau ntawm kev txhawb nqa ntawm kwv yees li 2m siab, tab sis kev ceev faj yog tias nws nyuaj heev rau nruab qhov teeb tsa LED teeb tsa nrog hloov, yog li txhua qhov kev sib txuas yuav tsum raug tshem tawm. Peb nce tus ntaiv thiab txuas nrog tus qauv nrog kev teeb tsa tsau rau ntawm qhov kev txhawb nqa.

Qhov tseem ceeb tshaj plaws ntawm tag nrho cov txheej txheem no yog kom ntseeg tau tias txoj haujlwm tau ua tiav zoo thiab muaj kev nyab xeeb kom ntseeg tau tias qhov kev paub dhau los ua tau hauv thaj chaw nyab xeeb

Tag nrho ntawm 10 arduino thiab 50 LED modules tau siv thiab tsib LED cov qauv tau txuas nrog rau ib qho arduino kom muaj txiaj ntsig zoo dua qub thiab ua haujlwm tau zoo. Saib daim qauv txheej txheem txuas nrog kom paub meej. Neopixel multi-tasking coding siv qhov hloov pauv tag nrho raws li daim duab tsim qauv yuav tham txog ntxaws hauv cov kauj ruam tom ntej.

Kauj Ruam 5: Arduino Coding & Xov Tooj

Arduino Coding & Xov Tooj
Arduino Coding & Xov Tooj
Arduino Coding & Xov Tooj
Arduino Coding & Xov Tooj

Thaiv

  • 50 tus qauv tau txuas nrog raws li txheej txheem ntawm theem 4.
  • Txhua tus qauv tau muab faib ua 10 pawg ntawm 50 tus qauv los pab ua haujlwm ntau thiab muab kev sib txuas meej.
  • Raws li tau qhia hauv teeb tsa 1 daim duab saum toj no, tsib tus qauv tau txuas nrog rau ib qho arduino, thiab 5v pins ntawm neopixel tau txuas ua ke ib zaug los txuas lub zog siv.
  • GND ntawm neopixels thiab cov hloov pauv kuj tau sib koom ua ke thiab, kom yooj yim ntawm kev nkag siab, cov hloov pauv tau txuas rau tus pin 2, 3, 4, 5, 6 thiab neopixels tau txuas rau hauv tus pin 9, 10, 11, 12, 13.
  • Cov hloov pauv thiab neopixels tau txuas nrog hauv 2-9, 3-10, 4-11, 5-12, 6-13 txoj kev, feem.
  • Nws yuav tsum tau sau tseg tias txij li kev sib txuas ntawm cov kab yog nyuaj thiab muaj kev pheej hmoo ntawm hluav taws vim luv luv Circuit Court, lub raj ntsws tau ua kom sov kom ntseeg tau tias qhov tsis muaj zog tsis tawg.

Neopixel multi-tasking coding nrog rub tawm hloov

5 lub teeb pom kev zoo (Hom Dej, Hom Dej, Hom Hluav Taws Xob, Hom Pop, Hom Tsis Zoo)

#suav nrog

/*하고자 하고자 하는 패턴 을 함/*/

enum qauv {TSIS MUAJ, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE, TWINKLE, STAR, RAINBOWSPARKLE, METEOR, LIGHT, BLOSSOM}; /*네오 픽셀 을 방향 을 설정 함*/ enum kev taw qhia {FORWARD, REVERSE};

/*의 의 클래스 입력 함*/

chav kawm NeoPatterns: pej xeem Adafruit_NeoPixel { /* 패턴 을 추가 하고 업데이트 하기 위한 함수 /* / pej xeem: qauv ActivePattern; /*클레스 함수 에 패턴 의 을 을 입력/*/ kev taw qhia

/*변수 Lub Sij Hawm 을 추가*/ tsis tau kos npe Ntev Ntev; /*변수 lastUpdate 추가 추가*/ unsigned ntev lastUpdate; /*변수 Xim 1, Xim 2 추가 추가*/ uint32_t Xim 1, Xim 2; /*변수 TotalSteps 추가 추가*/ uint16_t TotalSteps; /*변수 Index 를 추가*/ uint16_t Index;

/*패턴 을 완료 했을 다시 불러오는 함수/*/ void (*OnComplete) (); /*패턴 패턴 네오 픽샐 갯수 핀 핀, 번호 번호, 타입, 콜백 콜백 불러오는 함수*/ NeoPatterns (uint16_t pixels, uint8_t tus pin, uint8_t yam, tsis muaj dab tsi (*callback) ()): Adafruit_NeoPixel (pixels, tus pin, hom) { OnComplete = hu rov qab; }

/*을 을 업데이트 하기 위한 구문/*/

void Hloov tshiab () { /*패턴 의 시간 설정. / 태스킹 을 하는/*/ yog ((millis () - lastUpdate)> Ntev) {lastUpdate = millis (); /*ActivePattern 스위치 구문 구문*/ hloov (ActivePattern) {/*case RAINBOW_CYCLE 에서는 RainbowCycleUpdate 를 실행 하라*/ case RAINBOW_CYCLE: RainbowCycleUpdate (); /*case RAINBOW_CYCLE 에서 나와라*/ tawg;

/*case THEATER_CHASE 에서는 TheatreChaseUpdate 를 실행 하라*/

rooj plaub THEATER_CHASE: TheatreChaseUpdate (); /*case THEATER_CHASE 나와라 나와라*/ tawg;

/*rooj plaub COLOR_WIPE 에서는 ColorWipeUpdate 를 실행 하라*/

rooj plaub COLOR_WIPE: ColorWipeUpdate (); /*rooj plaub COLOR_WIPE 에서 나와라*/ so; /*case SCANNER 에서는 ScannerUpdate 를 하라 하라*/ case SCANNER: ScannerUpdate (); /*case SCANNER 에서 나와라*/ tawg;

/*rooj plaub FADE 에서는 FadeUpdate 를 실행 하라*/

rooj plaub FADE: FadeUpdate (); /*case FADE 에서 나와라*/ tawg;

/*rooj plaub TWINKLE 에서는 TwinkleUpdate 를 하라 하라*/

rooj plaub TWINKLE: TwinkleUpdate (); /*case TWINKLE 에서 나와라*/ tawg;

/*case STAR 에서는 StarUpdate 를 실행 하라*/

rooj plaub STAR: StarUpdate (); /*case STAR 에서 나와라*/ tawg;

/*rooj plaub RAINBOWSPARKLE 에서는 RainbowsparkleUpdate 를 하라 하라*/

rooj plaub RAINBOWSPARKLE: RainbowsparkleUpdate (); /*rooj plaub RAINBOWSPARKLE 에서 나와라*/ so; /*rooj METEOR 에서는 MeteorUpdate 를 실행 하라*/ rooj METEOR: MeteorUpdate (); /*case METEOR 에서 나와라*/ tawg;

/*rooj teeb 에서는 LightUpdate 를 실행 하라*/

rooj teeb: LightUpdate (); /*case LIGHT 에서 나와라*/ tawg;

/*rooj plaub BLOSSOM 에서는 BlossomUpdate 를 실행 하라*/

rooj plaub BLOSSOM: BlossomUpdate (); /*rooj plaub BLOSSOM 에서 나와라*/ so; }}}

/*의 의 방향 을 설정 구문/*/

/*Index 증가 증가 초기화 하는 함수/*/

tsis muaj qhov nce ntxiv () { /*만약 정방향 인덱스 인덱스 를 증가 시켜라 /* / yog (Kev Taw Qhia == FORWARD) {Index ++; /*인덱스 인덱스 전체 네오 구동 갯수 으로 으로 으로 으로 0 으로 초기화 시켜라*/ if (Index> = TotalSteps) {Index = 0; /*패턴 을 시키는 함수/*/ yog (OnComplete! = NULL) {OnComplete (); }}}

/*정방향 정방향 이 아니면 인덱스 감소 감소 시켜라*/ else {--Index; /*인덱스 인덱스 전체 네오 구동 갯수 와 같 적 을 을 을 을 을 1 을 빼라*/ if (Index <= 0) {Index = TotalSteps - 1; /*패턴 을 시키는 함수/*/ yog (OnComplete! = NULL) {OnComplete (); }}}}

/*방향 방향 으로 하는 함수*/

void Rov qab () { /*애니메이션 함수 에 Rov qab 를 썼을 시, 방향 방향 이 정방향 이면 /* / yog (Kev Taw Qhia == FORWARD) { /*방향 은 그 와 반대 이며 구동 갯수 갯수 일 일 일 일 일 일 일 일 일 일 일 일 일 일 일 일 일 일 일 일 일 / / / D; Index = TotalSteps - 1; } /*그 외의 방향 이 이면 인덱스 인덱스 으로 으로 으로 으로 / / else else else else else Index = 0; }}

/*을 을 설정 하는 들*

*RainbowCycle 의 시간 과 방향 을 입력*/

void RainbowCycle (uint8_t ncua, qhia dir = FORWARD) { /*실행 되는 패턴 은 RainbowCycle 임* / ActivePattern = RAINBOW_CYCLE; /*은 oid void RainbowCycle () 안에 입력 되는 interval 같음 같음*/ Interval = ncua sij hawm; /*총 구동 는 임 255 임*/ TotalSteps = 255; /*인덱스 는 0 으로 설정 함*/ Index = 0; /*은 oid void RainbowCycle () 안에 입력 ir dir = FORWARD 과 같음*/ Direction = dir; }

/*RainbowCycle 를 업데이트 했을 경우*/

void RainbowCycleUpdate () { /*변수 i 가 네오 픽셀 개수 작 작 를 를 i /증가 시켜라 시켜라* /rau (int i = 0; i <numPixels (); i ++) { /*변수 i 가 증가 함 함 과 동시에 RGB 의 무지개 / 로 변화 해라 / * / setPixelColor (i, Log (((i * 256 / numPixels ()) + Index) & 255)); } / *애니메이션 을 보여주는 함수 * / qhia (); Nce (); }

/*TheatreChase 컬러 와 시간 방향 을 입력/*/

tsis muaj tsev nyob TheatreChase (uint32_t color1, uint32_t color2, uint8_t ncua sijhawm, taw qhia dir = FORWARD) { /*실행 되는 패턴 은 RTHEATER_CHASE* / ActivePattern = THEATER_CHASE; /*은 oid void TheatreChase () 되는 입력 되는 interval 같음 같음*/ Interval = ncua sij hawm; /*총 구동 는 는 numPixels 임 임*/ TotalSteps = numPixels (); /*컬러 1, 2 를 설정*/ Xim 1 = xim 1; Xim 2 = xim 2; /*인덱스 는 0 으로 설정 함*/ Index = 0; /*은 oid void TheatreChase () 안에 입력 ir dir = FORWARD 같음 같음*/ Direction = dir; }

/*TheatreChase 업데이트 했을 경우*/

tsis muaj tsev nyob TheatreChaseUpdate () { /*변수 i 가 네오 픽셀 개수 작 으면 를 를 i /증가 시켜라 /* /rau (int i = 0; i <numPixels (); i ++) { /*만약 변수 i 에 인덱스 를 를 으로 3 으로 나눈 것이 0 과 같다 를 i 를 Xim 로 변환 시켜라*/ yog ((i + Index) % 3 == 0) {setPixelColor (i, Color1); } /*그렇지 않다면 i 를 Xim 로 변환 시켜라* / lwm yam {setPixelColor (i, Color2); }} / *애니메이션 을 보여주는 함수 * / qhia (); Nce (); }

/*ColorWipe 의 컬러 와 시간 방향 을 입력/*/

tsis muaj dabtsis ColorWipe (uint32_t xim, uint8_t ncua, qhia dir = FORWARD) { /*실행 되는 패턴 은 COLOR_WIPE* / ActivePattern = COLOR_WIPE; /*은 oid void ColorWipe () 안에 입력 되는 interval 같음 같음*/ Interval = ncua sij hawm; /*총 구동 는 는 numPixels 임 임*/ TotalSteps = numPixels (); /*컬러 1 을 설정*/ Xim 1 = xim; /*인덱스 는 0 으로 설정 함*/ Index = 0; /*은 oid void ColorWipe () 안에 입력 ir dir = FORWARD 같음 같음*/ Qhia = dir; }

/*ColorWipeUpdate 를 업데이트 했을 경우*/

tsis muaj dabtsis ColorWipeUpdate () { /*index 컬러 로 1 로 변환 시켜라* / setPixelColor (Index, Color1); / *애니메이션 을 보여주는 함수 */ qhia (); Nce (); }

/*Scanner 컬러 컬러 와 시간 입력 입력*/

void Scanner (uint32_t color1, uint8_t luv) { /*실행 되는 패턴 은 SCANNER* / ActivePattern = SCANNER; /*은 은 void Scanner () 안에 입력 되는 interval 같음 같음*/ Interval = ncua sij hawm; /*구동 갯수 총 갯수 에서 1 을 빼고 2 를 곱 해라*/ TotalSteps = (numPixels () - 1)*2; /*컬러 1 을 설정*/ Xim 1 = xim 1; /*인덱스 는 0 으로 설정 함*/ Index = 0; }

/*ScannerUpdate 업데이트 업데이트 했을 경우*/

void ScannerUpdate () { /*변수 i 는 영 이고 총 갯수 작을 경우 를 i /증가 시켜라* /rau (int i = 0; i <numPixels (); i ++) { /*만약 변수 i 가 인덱스 와 같다 같다 면 를 color1 로 변환 시켜라*/ yog (i == Index) {setPixelColor (i, Color1); } / *그렇지 않다면 변수 i 를 전체 갯수 에서 인덱스 뺀값 같다 / / / * / lwm yam yog (i == TotalSteps - Index) {setPixelColor (i, Color1); } / *그 밖에는 i 를 디밍 시켜라 / * / else {setPixelColor (i, DimColor (getPixelColor (i)))); }} / *애니메이션 을 보여주는 함수 * / qhia (); Nce (); }

/*Scanner 컬러, 1, 2 와 스텝, 시간, 방향 을 입력*/

void Fade (uint32_t color1, uint32_t color2, uint16_t cov kauj ruam, uint8_t ncua, qhia dir = FORWARD) { /*실행 되는 패턴 은 FADE* / ActivePattern = FADE; /*은 은 void Fade () 안에 입력 되는 interval 같음 같음*/ Interval = ncua sij hawm; /*구동 갯수 는 스텝 값임*/ TotalSteps = cov kauj ruam; /*컬러 1, 2 를 설정*/ Xim 1 = xim 1; Xim 2 = xim 2; /*인덱스 는 0 으로 설정 함*/ Index = 0; /*은 은 void Fade () 안에 입력 되는 dir = FORWARD 같음 같음*/ Direction = dir; } /*FadeUpdate 업데이트 업데이트 했을 경우* / void FadeUpdate () { /*변수 liab 값 은 다음 과 같음 같음* / uint8_t liab = ((Liab (Color1)**(TotalSteps - Index)) + (Liab (Color2)*Index)) / TotalSteps; / * 변수 ntsuab 값 은 다음 과 같음 * / uint8_t ntsuab = ((Ntsuab (Color1)) * (TotalSteps - Index)) + (Ntsuab (Color2) * Index)) / TotalSteps; / * 변수 xiav 은 은 다음 과 같음 * / uint8_t xiav = ((Xiav (Xim 1) * *) /*의 의 liab, ntsuab, xiav 값 으로 컬러 를 셋팅 함/*/ ColorSet (Xim (liab, ntsuab, xiav)); / *애니메이션 을 보여주는 함수 */ qhia (); Nce (); }

/*네오 네오 픽셀 끄는 구문*/

void alloff () { /*총 네오 갯수 갯수 개 74 개 이며* / int NPIXEL = 74; /*변수 i 가 증가 하며 픽셀 으로 으로 으로 으로 0 으로 변환 함*/ rau (int i = 0; i <NPIXEL; i ++) {setPixelColor (i, 0, 0, 0); }}

/*Twinkle 컬러 와 1 와 시간 을 입력*/

tsis muaj dab tsi Twinkle (uint32_t color1, uint8_t ncua) { /*실행 되는 패턴 은 TWINKLE* / ActivePattern = TWINKLE; /*은 은 void Twinkle () 안에 입력 되는 interval 같음 같음*/ Interval = ncua sij hawm; /*컬러 1 를 설정*/ Xim 1 = xim 1; /*총 구동 는 는 numPixels 임 임*/ TotalSteps = numPixels (); Index = 0; }

/*TwinkleUpdate 업데이트 업데이트 했을 경우*/

void TwinkleUpdate () { /*모든 네오 픽셀 의 컬러 으로 으로 0 으로 셋팅* / setAll (0, 0, 0); /*변수 Pixel 은 random 74*/ int Pixel = random (74); /*random 74 개 에서 2 로나 눈 를 랜덤 랜덤 켜라//*/setPixelColor (Pixel/2, 50, 100, 255); setPixelColor (Pixel, 250, 255, 250); setPixelColor (Pixel/2, 200, 250, 255); setPixelColor (Pixel, 255, 255, 255); setPixelColor (Pixel, 250, 230, 250); setPixelColor (Pixel/2, 150, 200, 255); / *애니메이션 을 보여주는 함수 */ qhia (); / *랜덤 하게 끄는 함수 */ setPixelColor (Pixel, 0, 0, 0); / *애니메이션 을 보여주는 함수 */ qhia (); Nce (); }

/*Hnub qub 컬러 값 1 값 입력 입력*/

tsis muaj hnub qub (uint32_t color1) { /*실행 패턴 은 AR STAR* / ActivePattern = STAR; /*은 은 void Star () 안에 입력 되는 interval 같음 같음*/ Interval = Ntev; /*총 구동 는 는 numPixels 임 임*/ TotalSteps = numPixels (); /*컬러 1 을 설정*/ Xim 1 = xim 1; Index = 0; }

/*StarUpdate 업데이트 업데이트 했을 경우*/

tsis muaj dab tsi StarUpdate () { /*인덱스 와 컬러 를 셋팅* / setPixelColor (Index, Color1); qhia (); /*변수 i 가 0 이고 구동 갯수 작 으면 i 를 감소 시킴 = 한칸 씩 이동 하는/*/ rau (int i = 0; kuv <numPixels (); i--) {setPixelColor (i, Xim (0, 0, 0)); } / *애니메이션 을 보여주는 함수 * / nce ntxiv (); }

/*Rainbowsparkle 시간 시간 과 방향 을 입력/*/

tsis muaj dab tsi Rainbowsparkle (uint8_t ncua, qhia dir = FORWARD) { /*실행 되는 패턴 은 RAINBOWSPARKLE* / ActivePattern = RAINBOWSPARKLE; /*은 oid tsis muaj dab tsi Rainbowsparkle () 안에 입력 되는 interval 같음 같음*/ Interval = luv; /*총 구동 는 는 numPixels 임 임*/ TotalSteps = numPixels (); Index = 0; /*은 oid tsis muaj dab tsi Rainbowsparkle () 안에 입력 되는 kev taw qhia 같음 같음*/ Kev taw qhia = dir; }

/*RainbowsparkleUpdate 를 업데이트 했을 경우*/

tsis muaj dab tsi RainbowsparkleUpdate () { /*변수 i 가 0 이고 구동 보다 보다 작 값 i 값 을 증가 하는데* /rau (int i = 0; i <numPixels (); i ++) { /*변수 i 가 0 이고 구동 갯수 갯수 / 으면 값//*/ if ((i + Index) % 2 == 0) {uint32_t c = random (255); setPixelColor (i, c); } lwm {setPixelColor (i, random (255)); }} / *애니메이션 을 보여주는 함수 * / qhia (); Nce (); } /*Meteor 시간 시간 과 방향 을 입력 /* / tsis muaj dab tsi Meteor (uint32_t color1) { /*실행 되는 패턴 은 METEOR* / ActivePattern = METEOR; /*시간 설정*/ Lub Sijhawm = Ntev; / *구동 갯수 는 는 numPixels 에서 일뺀 1 후 *, *2 를 한 것과 같음 */ TotalSteps = (numPixels ()-1) *2; /*컬러 1 을 설정*/ Xim 1 = xim 1; Index = 0; }

/*MeteorUpdate 를 업데이트 했을 경우*/

tsis muaj dab tsi MeteorUpdate () {rau (int i = 0; i <numPixels (); i ++) {if (i == Index) {setPixelColor (i, 100, random (255), 255)); } lwm {setPixelColor (i, DimColor (getPixelColor (i)))); }} / *애니메이션 을 보여주는 함수 * / qhia (); Nce (); }

/*Lub teeb 의 시간 과 을 입력 입력*/

tsis muaj teeb pom kev (uint32_t color1) { /*실행 패턴 은 IGHT LIGHT* / ActivePattern = LIGHT; /*시간 설정*/ Lub Sijhawm = Ntev; / *구동 갯수 는 는 numPixels 에서 일뺀 1 후 *, *2 를 한 것과 같음 */ TotalSteps = (numPixels ()-1) *2; /*컬러 1 을 설정*/ Xim 1 = xim 1; Index = 0; }

/*LightUpdate 업데이트 했을 경우*/

void LightUpdate () {rau (int i = 0; i <numPixels (); i ++) {if (i == TotalSteps - Index) {setPixelColor (i, 150, random (200), 40); } lwm {setPixelColor (i, DimColor (getPixelColor (i)))); }} / *애니메이션 을 보여주는 함수 * / qhia (); Nce (); }

/*Blossom 시간 시간 과 을 입력 입력*/

tsis muaj dab tsi Blossom (uint32_t color1) { /*실행 패턴 패턴 은 BLOSSOM* / ActivePattern = BLOSSOM; /*시간 설정*/ Lub Sijhawm = Ntev; / *구동 갯수 는 는 numPixels 에서 일뺀 1 후 *, *2 를 한 것과 같음 */ TotalSteps = (numPixels ()-1) *2; /*컬러 1 을 설정*/ Xim 1 = xim 1; Index = 0; }

/*BlossomUpdate 업데이트 업데이트 했을 경우*/

tsis muaj dab tsi BlossomUpdate () {rau (int i = 0; i <numPixels (); i ++) {if (i == TotalSteps - Index) {setPixelColor (i, 255, random (255), 100)); } lwm {setPixelColor (i, DimColor (getPixelColor (i)))); }} / *애니메이션 을 보여주는 함수 * / qhia (); Nce (); }

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/ *네오 픽셀 켜지 켜지 와 색 해주는 함수// */ void setAll (byte liab, byte ntsuab, byte xiav) {rau (int i = 0; i <numPixels (); i ++) {setPixelColor (i, liab ntsuab, xiav); } qhia (); }

/*픽셀 픽셀 디밍, 즉 밝기 를 조절 하는 함수*/

uint32_t DimColor (uint32_t xim) {// Hloov ua lwm yam R, G thiab B ib me ntsis rau sab xis uint32_t dimColor = Xim (Liab (xim) >> 1, Ntsuab (xim) >> 1, Xiav (xim) >> 1); rov dimColor; }

/*네오 네오 픽셀 의 칼라 조절/*/

void ColorSet (uint32_t xim) {rau (int i = 0; kuv <numPixels (); i ++) {setPixelColor (i, xim); } qhia (); }

/*값 값 불러 옴*/

uint8_t Liab (uint32_t xim) {rov qab (xim >> 16) & 0xFF; } /*그린 값 을 불러 /* / uint8_t Ntsuab (uint32_t xim) {rov qab (xim >> 8) & 0xFF; } /*블루 값 을 불러 /* / uint8_t Xiav (uint32_t xim) {rov qab xim & 0xFF; }

/*Zaj sawv 컬러 를 불러 옴*/

uint32_t Log (byte WheelPos) {WheelPos = 255 - WheelPos; yog (WheelPos <85) {rov qab Xim (255 - WheelPos * 3, 0, WheelPos * 3); } lwm yog (WheelPos <170) {WheelPos -= 85; rov qab Xim (0, WheelPos * 3, 255 - WheelPos * 3); } lwm {WheelPos -= 170; rov qab Xim (WheelPos * 3, 255 - WheelPos * 3, 0); }}}};

/*strip 을 불러 오기 함수 함수 /*사용 하는 스트립 별로 별로 지정 해주어야 해주어야 함* /

void strip1Complete (); void strip2Complete (); void strip3Complete (); void strip4Complete (); void strip5Complete ();

/*픽셀 픽셀 갯수 설정*/

#define NUMPIXELS 74 /*사용 하는 버튼 갯수 갯수 설정* / #define B_NUM 5 /*Import strip1 ~ 5 까지, 갯수 는 74 개 스트립 연결 핀 은 은 strip1 은 8 ~ strip5 까지 12* / NeoPatterns strip1 (74, 8, NEO_GRB + NEO_KHZ800, & strip1 Ua tiav); NeoPatterns strip2 (74, 9, NEO_GRB + NEO_KHZ800, & strip2Complete); NeoPatterns strip3 (74, 10, NEO_GRB + NEO_KHZ800, & strip3Complete); NeoPatterns strip4 (74, 11, NEO_GRB + NEO_KHZ800, & strip4Complete); NeoPatterns strip5 (74, 12, NEO_GRB + NEO_KHZ800, & strip5Complete); /*배열 을 사용한 연결 버튼 설정/*/ const int buttonPin [B_NUM] = {2, 3, 4, 5, 6}; /*을 을 사용 하여 버튼 를 지정 지정/*/ int buttonState [B_NUM]; /*2 번핀 부터 6 번핀 까지 상태 순서 순서 OW LOW 임*/ int lastButtonState [B_NUM] = {LOW, LOW, LOW, LOW, LOW}; /*2 번핀 부터 6 번핀 까지 카운터 를 초기화 시킴/*/ int khawm Counter [B_NUM] = {0, 0, 0, 0, 0}; /*2 번핀 부터 6 번핀 까지 버튼 카운터 는 임 5 임*/ int khawmCounterMax = 5; /*모든 버튼 핀 을 읽 있도록 변수 변수/*/ int nyeem [B_NUM]; unsigned ntev lastDebounceTime [B_NUM] = {0, 0, 0, 0, 0, 0} /*버튼 버튼 핀 을 읽는 은 은 50 delay50 과 같음*/ unsigned ntev debounceDelay = 50;

void teeb tsa () {

/ * 복잡 하게 저항 연결 이 필요 없도록 인풋 풀업 방식 의 버튼 설정: GND - 5V (Txuas mus rau Pin number) * / rau (rau cov menyuam kuv = 0; i <B_NUM; kuv ++) {pinMode (buttonPin , INPUT_PULLUP); } Serial.begin (9600); /*스트립 1 ~ 5 셋팅 셋팅*/ strip1.begin (); strip2.begin (); strip3.begin (); strip4.begin (); strip5.begin ();

//strip1. TheaterChase(strip1. Color(255, 0, 255), strip1. Color (255, 50, 0), 20, FORWARD);

}

/*카운터 카운터 값 은 5 임*/

cov counter = 5; void loop () { /*버튼 수 보다 i 가 으면 시키고* / rau (int i = 0; kuv debounceDelay) {yog (nyeem ! = buttonState ) {buttonState = nyeem ntawv [kuv]; buttonCounter [kuv] ++; /*카운팅 카운팅 위에서 설정 한 Max 값 5 를 넘으면 0 초기화 시켜라*.*/ Yog (buttonCounter > buttonCounterMax) buttonCounter = 0; }} lastButtonState = nyeem ; } /*모든 스트립 을 함*.* / Strip1. Update (); strip2. Update (); strip3. Update (); strip4. Update (); strip5. Update ();

///// SWITCH_2 ////////////////////////////////////////////// ////////////////////////////////////////////////////////// //////////////////////////////////////////////

/*버튼 의 0 번째 즉. 2/ hloov pauv (khawm Counter [0]) {

/*버튼 버튼 을 활동 시키면 구동 되는 애니메이션*/

rooj plaub 0: strip1. ActivePattern = BLOSSOM; /*해당 애니메이션 의 시간 을/*/ strip1. Interval = 20; /*구동 되는 네오 픽셀 갯수 를 설정/*/ strip1. TotalSteps = strip1.numPixels (); tawg; /*두번째 버튼 을 활동 시키면 되는 애니메이션/*/ rooj plaub 1: strip1. ActivePattern = RAINBOWSPARKLE; strip1. Interval = 50; strip1. TotalSteps = strip1.numPixels (); tawg; /*세번째 버튼 을 활동 구동 되는 애니메이션/*/ rooj plaub 2: strip1. ActivePattern = SCANNER; strip1. Interval = 10; strip1. TotalSteps = (strip1.numPixels () - 1) * 2; tawg; /*네번째 버튼 을 활동 시키면 되는//*/ rooj plaub 3: strip1. ActivePattern = TWINKLE; strip1. Interval = 1; strip1. TotalSteps = strip1.numPixels (); tawg; /*다섯 번째 버튼 을 활동 구동 되는//*/ rooj plaub 4: strip1. ActivePattern = METEOR; strip1. Interval = 10; strip1. TotalSteps = strip1.numPixels (); tawg; } Serial.print (buttonCounter [0]); Serial.print (","); Serial.println (buttonCounter [1]);

///// SWITCH_3 ////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////

hloov (buttonCounter [1]) {rooj plaub 0: strip2. ActivePattern = STAR; strip2. Interval = 50; strip2. TotalSteps = strip2.numPixels (); tawg; rooj plaub 1: strip2. ActivePattern = RAINBOWSPARKLE; strip2. Interval = 100; strip2. TotalSteps = strip2.numPixels (); tawg; rooj plaub 2: strip2. ActivePattern = SCANNER; strip2. Interval = 20; strip2. TotalSteps = (strip2.numPixels () - 1) * 2; tawg; rooj plaub 3: strip2. ActivePattern = TWINKLE; strip2. Interval = 5; strip2. TotalSteps = strip2.numPixels (); tawg; rooj plaub 4: strip2. ActivePattern = METEOR; strip2. Interval = 40; strip2. TotalSteps = strip2.numPixels (); tawg; } Serial.print (buttonCounter [0]); Serial.print (","); Serial.println (buttonCounter [1]);

///// SWITCH_4 //////////////////////////////////////////////// ////////////////////////////////////////////////////////// //////////////////////////////////////////////

hloov (buttonCounter [2]) {rooj plaub 0: strip3. ActivePattern = STAR; strip3. Interval = 50; strip3. TotalSteps = strip3.numPixels (); tawg; rooj plaub 1: strip3. ActivePattern = RAINBOWSPARKLE; strip3. Interval = 100; strip3. TotalSteps = strip3.numPixels (); tawg; rooj plaub 2: strip3. ActivePattern = SCANNER; strip3. Interval = 20; strip3. TotalSteps = (strip3.numPixels () - 1) * 2; tawg; rooj plaub 3: strip3. ActivePattern = TWINKLE; strip3. Interval = 5; strip3. TotalSteps = strip3.numPixels (); tawg; rooj plaub 4: strip3. ActivePattern = METEOR; strip3. Interval = 25; strip3. TotalSteps = strip3.numPixels (); tawg; } Serial.print (buttonCounter [0]); Serial.print (","); Serial.println (buttonCounter [1]);

///// SWITCH_5 ////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////

hloov (buttonCounter [3]) {rooj plaub 0: strip4. ActivePattern = STAR; strip4. Interval = 50; strip4. TotalSteps = strip4.numPixels (); tawg; rooj plaub 1: strip4. ActivePattern = RAINBOWSPARKLE; strip4. Interval = 100; strip4. TotalSteps = strip4.numPixels (); tawg; rooj plaub 2: strip4. ActivePattern = SCANNER; strip4. Interval = 20; strip4. TotalSteps = (strip4.numPixels () - 1) * 2; tawg; rooj plaub 3: strip4. ActivePattern = TWINKLE; strip4. Interval = 5; strip4. TotalSteps = strip4.numPixels (); tawg; rooj plaub 4: strip4. ActivePattern = METEOR; strip4. Interval = 25; strip4. TotalSteps = strip4.numPixels (); tawg; } Serial.print (buttonCounter [0]); Serial.print (","); Serial.println (buttonCounter [1]);

///// SWITCH_6 ////////////////////////////////////////////////// ////////////////////////////////////////////////////////// //////////////////////////////////////////////

hloov (buttonCounter [4]) {rooj plaub 0: strip5. ActivePattern = STAR; strip5. Interval = 50; strip5. TotalSteps = strip5.numPixels (); tawg; rooj plaub 1: strip5. ActivePattern = RAINBOWSPARKLE; strip5. Interval = 100; strip5. TotalSteps = strip5.numPixels (); tawg; rooj plaub 2: strip5. ActivePattern = SCANNER; strip5. Interval = 20; strip5. TotalSteps = (strip5.numPixels () - 1) * 2; tawg; rooj plaub 3: strip5. ActivePattern = TWINKLE; strip5. Interval = 5; strip5. TotalSteps = strip5.numPixels (); tawg; rooj plaub 4: strip5. ActivePattern = METEOR; strip5. Interval = 25; strip5. TotalSteps = strip5.numPixels (); tawg; } Serial.print (buttonCounter [0]); Serial.print (","); Serial.println (buttonCounter [1]); }

// strip1 Tiav Callback

void strip1Complete () {strip1. Color1 = strip1. Wheel (random (255))); strip1. Color2 = strip1. Wheel (random (255)); strip1. Index = 0; }

// strip2 Ua tiav Callback

void strip2Complete () {strip2. Color1 = strip2. Wheel (random (255))); strip2. Color2 = strip2. Wheel (random (255))); strip2. Index = 0; }

// strip3 Ua tiav Callback

void strip3Complete () {strip3. Color1 = strip3. Wheel (random (255))); strip3. Color2 = strip3. Wheel (random (255))); strip3. Index = 0; }

// strip4 Ua tiav Callback

void strip4Complete () {strip4. Color1 = strip4. Wheel (random (255))); strip4. Color2 = strip4. Wheel (random (255))); strip4. Index = 0; }

// strip5 Ua tiav Callback

void strip5Complete () {strip5. Color1 = strip5. Wheel (random (255))); strip5. Color2 = strip5. Wheel (random (255)); strip5. Index = 0; }

Kauj Ruam 6: Qhov tshwm sim thiab Ua Zaj Duab Xis

Image
Image
Tshwm Sim thiab Ua Zaj Duab Xis
Tshwm Sim thiab Ua Zaj Duab Xis

Ua tsaug rau koj txoj kev txaus siab rau peb tes num txawm hais tias nws tsis txaus.

Pom zoo: