Мазмуну:

Rainbow Word Clock Толук Радуга таасири жана башкалар менен: 13 кадам (Сүрөттөр менен)
Rainbow Word Clock Толук Радуга таасири жана башкалар менен: 13 кадам (Сүрөттөр менен)

Video: Rainbow Word Clock Толук Радуга таасири жана башкалар менен: 13 кадам (Сүрөттөр менен)

Video: Rainbow Word Clock Толук Радуга таасири жана башкалар менен: 13 кадам (Сүрөттөр менен)
Video: Как пройти все мини-игры FNaF world up2! mini-games (foxy.exe, rainbow, fnaf 2057, fighters) 2024, Июль
Anonim
Толук Радуга эффекти менен Rainbow Word Clock жана башкалар
Толук Радуга эффекти менен Rainbow Word Clock жана башкалар

Максаттар

1) Жөнөкөй

2) Кымбат эмес

3) Мүмкүн болушунча энергияны үнөмдөө

Rainbow Word Clock толук асан -үсөн эффектиси менен.

Сөз саатындагы смайлик.

Жөнөкөй IR алыстан башкаруу

Neopixelsтин жарыктыгын көзөмөлдөө үчүн 03-nov-18 LDRди жаңыртыңыз

Жаңыртуу 01-ян-19 WS2812B энергия керектөөнү азайтуу.

Жаңыртуу 15-январь-19 Смайлик.

Жаңыртуу 23-январь-19 Code 1.6

10-мар-19 китепканаларынын шилтемелерин жаңыртыңыз

14-апрель-19 версиясын жаңыртуу 1.7 Тандоо смайликти өчүрүү/өчүрүү түстүү асан-үсөн/оңдоо enz.

Акыркы жаңыртуу 01-июнь-19 версиясы 2.0 IR алыстан башкаруу жана кодду кайра иштеп чыгуу

1 -кадам: Сааттын иши

Сааттын иши
Сааттын иши
Сааттын иши
Сааттын иши
Сааттын иши
Сааттын иши

Кээ бир жөнөкөй куралдар жана бир аз чеберчилик менен, кат саатын жасоо кыйын эмес, мен үчүн жеткиликтүү материалдарды колдондум.

Иш үчүн мен бир нече кадрларды араалаган орой карагай тилкесин колдондум. Булар корпустун төрт тарабын бириктирип, бурчтарына кичинекей жыгач менен бекемделген. Андан кийин жыгачты тегиздөө жана сырдоо керек.

Тамгалар фольгадан принтер тарабынан күзгү жазуу менен кесилет. Фольга айнек табактын арт жагында жана жарыктын жакшы таралышы үчүн эки катмарлуу кагаз менен жабылган. Айнек силикон пломба менен бекитилген.

2 -кадам: Neopixels

Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels

Неопиксель диоддору жыгач табакчанын үстүнө жайгаштырылган. Бул жерде сиз алгач 3 мм тешик бургулайсыз. Фронтто алар тамга өлчөмүнө чейин 3/4 тереңдикке чейин чоңойтулат. Андан кийин артындагы 3 мм 10 ммге чейин көбөйтүлөт, бул неопикселдин өлчөмү. Кээ бир W белгилери үчүн, тешикти бир аз тууралоо керек.

Мен фанераны колдоном, ал тез эле бөлүнүп кетет, MDF жакшы болушу мүмкүн.

Жеке LED менен сиз LED strips. The LEDлер менен болгон туруктуу аралыкка байланыштуу эмессиз. Сиз муну бардык кыска зымдар менен жасай аласыз. Бирок эки мин (-) туташуу ички байланышкан эки плюс (+) туташуусуна окшош, ошондуктан бир эле байланыш.

Зымдын бир бөлүгүн сол LEDга, андан кийин оң LEDга ширетүү менен өзүңүздү көп жумуштан куткара аласыз. Андан кийин ортолорун ээрчиңиз.

Маалыматтын байланышы, албетте, кыска бөлүктөрдөн турушу керек, анткени берилиштер берилиштерге кирет.

3 -кадам: Алдыңкы текстти тууралоо

Алдыңкы текстти тууралоо
Алдыңкы текстти тууралоо
Алдыңкы текстти тууралоо
Алдыңкы текстти тууралоо
Алдыңкы текстти тууралоо
Алдыңкы текстти тууралоо

Алдыңкы табак азыр голланд тилинде, бирок жөн гана каалаган тилге которуу үчүн.

NeoPixels леддери бул жерде 0-167ден удаалаш которулат. Номерлөө жогорку сол жактагы биринчи саптан оңго, андан кийин экинчи катар оңдон солго карай жүрөт. Жөнгө салуу сиздин муктаждыктарыңызга жараша болот. NeoPixels саны символдордун санына жараша аныкталат. Аз же көп Неопикселдерди кийинки сапта туураласа болот

#define NUMPIXELS 168 // Ардуиного канча NeoPixels тиркелет?

168 башка санга караганда. Номерлөө 0дөн башталат. Сиз каалаган текстти түзө аласыз. Эгерде сиз текстти өзгөртсөңүз, анда сиз дагы тиешелүү сөздөрдү тууралашыңыз керек болот. Номерлөө ошол эле бойдон калууда.

Мисалы, протоколдун DRIE коддо аныкталат

жараксыз zetmDrie () {

Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // min-drie

}

Эгерде сиз Arduino сөзүн жасоону кааласаңыз, анда ал төмөнкүдөй болот:

void zetArduino () {

Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;

Led_Aan [120] = 1, Led_Aan [135] = 1, Led_Aan [147] = 1; // Word-arduino

}

Ошентип, сиз ортосунда сөздөрдү түзө аласыз.

Саат сөздөр үчүн, эгер алар туташ сөз түзүшсө пайдалуу, бирок бул өтө зарыл эмес. Колдонулбаган тамгаларга Neonpixels кереги жок. Мен алардын бардыгын келечектеги мүмкүнчүлүктөрдү колдонуу үчүн, убакыттан башка толтурулганмын.

Эгерде сиз баштапкы чекитти өзгөртсөңүз же мурастоо тизмегин өзгөртсөңүз, номерлөө ошого жараша өзгөрүшү керек.

4 -кадам: Толук асан -үсөн эффекти

Толук асан -үсөн эффекти
Толук асан -үсөн эффекти

Саат азыр ушунчалык программалангандыктан, секундасына канча жолу канча неопиксель күйгүзүлгөнү эсептелет.

Жалпы спектр бөлүнгөндөрдүн санына жакын жана андан кийин бир аз жылдырылган. Натыйжада, ар бир неопикселдин түсү дайыма өзгөрүп турат. Neopixel nr 1 жана nr 167 кээ бир түстөрдү камтыйт.

Эгерде сиз бир эле учурда азыраак түстөрдү кааласаңыз, бул оңой оңой. Түс дагы деле бүт спектрде өзгөрөт, бирок анын кичине бөлүгү менен. Neopixel nr 1 жана nr 167 мындан ары кандайдыр бир түс камтыйт.

Жарыктыгы төмөнкү сапта коюлушу мүмкүн, piksel.setBrightness (150);

Кичине сан азыраак жана чоңураак көбүрөөк жарык болот.

5 -кадам: Ар кандай компоненттер

Ар түрдүү компоненттер
Ар түрдүү компоненттер
Ар түрдүү компоненттер
Ар түрдүү компоненттер
Ар түрдүү компоненттер
Ар түрдүү компоненттер

Мен колдонгон төмөнкү компоненттер

Arduino Pro Mini ATMEGA328 5V/16MHz

Сағат модулу DS3231

168 даана Neopixels алып келген WS2812 LED чипи жана жылыткычы 5V 5050 RGB WS2811 IC Камтылган

Фольга кат трафарети

DCF77 кабылдагыч

6 -кадам: Сааттын коду

Бул жерде код. Эч ким жок болгондо жана түн ичинде жарыкты көзөмөлдөө жана өчүрүү кошулду.

Кошулган RCWL-0516 Radar Microwave Motion Sensor (RADAR издөө)

10 мүнөт кыймылдабай койгондон кийин, NeoPixels өчөт.

2.0 версиясы жөнүндө

Эстутумдун колдонулушу өтө көп болгондуктан, компилятордо эскертүүлөр түгөнүп калган. Мына ошондуктан мен кодду толугу менен өзгөрттүм, бирок операция ошол бойдон калды жана IR кабыл алуучу кошулду.

EEPROMга маалыматтарды берүү үчүн коддун бир бөлүгү бар. / * Жана * / убактылуу алып салуу менен муну бир жолу иштетиңиз. EEPROMду маалымат менен камсыз кылуу үчүн => муну бир жолу иштетиңиз

Боштук циклинин башында кодду алыстан башкаруу пулуңуздан окууга болот. Сиз муну убактылуу * / жана * / алып салуу менен иштете аласыз, кийинчерээк кайра коюуну унутпаңыз. Сиз өзүңүздүн баскычтарыңызды да аныктай аласыз. Окулган кодду => Бул жерге өз баскычтарыңызды аныктаңыз

Samsung пульту (абдан арзан) жөнөкөйгө караганда жакшыраак иштейт.

7 -кадам: Аппараттык сүрөттөмө

Аппараттык сүрөттөмө
Аппараттык сүрөттөмө
Аппараттык сүрөттөмө
Аппараттык сүрөттөмө
Аппараттык сүрөттөмө
Аппараттык сүрөттөмө

Arduino Pro Miniнин ар кандай версиялары бар. Көңүл буруңуз, туташуулар ар кандай болушу мүмкүн.

RCWL-0516 микротолкундуу кыймыл датчиги кошулду.

Сааттын жанында кыймыл болгондо, NeoPixel күйүп турат

жана эч кандай кыймыл жок болгондо NeoPixel бир нече мүнөттөн кийин өчөт.

2.0 версиясында DCF77 алгычы 13 -пин аркылуу кубат менен камсыздалат. Бул пин чыгаруу катары аныкталат жана DCF77 тартибине кайрылганда жогору коюлат. DCF77 ресивери 0,28 мАны колдонот жана күнүнө бир нече мүнөткө гана керектелет.

Өчүрүү сактайт

5 Вольт * 0,28 мА / 1000 * 24 саат * 365 күн * 1 / 0,85 эффективдүүлүк электр энергиясы = 14,4 ватт жылына.

Бул анча деле сезилбейт, бирок ар бир аз жардам берет.

8 -кадам: Неопикселдердин жарыктыгын көзөмөлдөө үчүн LDR

Неопикселдердин жарыктыгын көзөмөлдөө үчүн LDR
Неопикселдердин жарыктыгын көзөмөлдөө үчүн LDR
Неопикселдердин жарыктыгын көзөмөлдөө үчүн LDR
Неопикселдердин жарыктыгын көзөмөлдөө үчүн LDR

Неопикселдердин жарыктыгын көзөмөлдөө үчүн LDR кошулду.

Мен LDRди неопиксел 103 мейкиндигине чаптадым. Бул убакыт дисплейинде колдонулбайт, демек жөнгө салууга таасир этпейт. Кагаз окуяны өчүрөт, бирок бул көйгөй эмес.

LDRнын чыңалуусу жана 20 кох резистору Arduino Pro Mini A0го барат. Чыңалуу - жарыктын интенсивдүүлүгүнүн көрсөткүчү, демек, неопиксельдер жарыктын көлөмүнүн көрсөткүчү.

Мен колдонгон формула жакшы жарык көзөмөлүн берет, аны шартка жараша туураласа болот. Жарыктын санына жараша, чыңалуу 0 менен 5 вольттун ортосунда өзгөрүшү мүмкүн, ал "LDRValue" ичиндеги 0дон 1024кө чейин которулат.

Эгерде жаңы өлчөнгөн чоңдук акыркы эсептелген мааниден чоң болсо, анда интенсивдүүлүк 1ге жогорулайт, эгерде ал 1ге төмөндөгөндөн төмөн болсо жана ага барабар болсо эч нерсе кылынбайт. Эч кандай эффект болбош үчүн маанини акырындык менен улантуу үчүн, 1 гана көбөйтүлөт же төмөндөтүлөт жана эсептөө циклде болгондуктан, циклди 25 жолу басып өткөндөн кийин гана кайра эсептелет.

Интенсивдүүлүк теориялык жактан минималдуу 20 жана максимум 1024/7 + 45 = 191. Мен өлчөгөн максималдуу мааниси 902 болгон, бул 173 интенсивдүүлүгүн түзөт. Бул мен демейки маани катары койгон 150гө туура келет. (кара пиксел.setBrightness (150))

2.0 версиясында сиз башкарууну алыстан башкаруу аркылуу орното аласыз. Төмөнкү параметрлер кошулду: Brightness_min минималдуу жана Brightness_max максималдуу параметр жана Brightness_Offset параметр параметр катары. Brightness_min жана _max - бул сиздин жеке жагдайыңызга жараша боло турган баалуулуктар. Brightness_Offset - бул алыстан башкаруу пульту менен орнотула турган жана анын аздыр -көптүр жарыктыгын коюуга мүмкүн болгон мааниси.

LDRValue менен эсептелген BerLDRValue баалуулуктарынын ортосунда 3төн турган өлүк тобу да бар.

Жарыктык жөндөөсүн текшерүү үчүн BrightnessControl боштугундагы басма сөздөрдү колдонуңуз.

9 -кадам: WS2812B энергия керектөөнү азайтуу

WS2812B энергия керектөөнү азайтуу
WS2812B энергия керектөөнү азайтуу

WS2812B даректүү неопикселдериндеги драйверлер неопикселдер өчүк болсо дагы, 0 түскө коюлган (неопиксель элементтери күйбөгөн).

Бардык 169 неопикселдер чыкканда, мен неопикселдерге 69 мА өлчөйм. Саат суткасына 12 саат иштебейт деп ойлосок, анда жалпы өчүрүү үнөмдөйт: 5 (Вольт электр менен камсыздоо) * 69/1000 (Милямпер / 1000 = Ампер) * 12 (Күнүнө сааттардын саны) * 365 (Бир күндүн саны жыл) = 1511 Ватт саат. Ошентип, жылына 1,5 кВт. Мен макулмун, бул көп нерсе эмес, бирок көптөгөн кичинекейлер чоң нерсени түзөт.

Район жөнөкөй. Электр менен жабдуу плюс P-канал MosFet менен алмаштырылат. Радар сенсору неопикселдердин күйүк же өчүк экенин аныктайт. Мен MosFetsти жоготкондуктан ON каршылыгын мүмкүн болушунча төмөн кармоо үчүн эки MosFet паррелелин койдум. Кадимки колдонууда мен MosFetsтин үстүнөн 4, 5 миль вольтту өлчөйм. Дарбаза 470 Kohm резистору аркылуу Arduinoдон 4 чыгарылышы менен башкарылат. Эгерде чыгуу санариптик түрдө төмөнкү (0) деңгээлге өтсө, неопиксель күйүк жана жогорку деңгээлде (1) өчүк.

10 -кадам: Сөз сааты боюнча смайлик

Сөз саатындагы смайлик
Сөз саатындагы смайлик
Сөз саатындагы смайлик
Сөз саатындагы смайлик

Сөз саатындагы смайлик.

Кээде саатта смайлик пайда болот, бирок бул сизди бактылуу кылат.

Смайлик радар сенсорунун жардамы менен ишке ашат. Кыймылдын саны (жөнгө салынуучу) - бул Смайликтин пайда болушунун көрсөткүчү. % Белгилери кыймыл табылганын көрсөтөт. Ар бир онунчу (жөнгө салынуучу) кыймыл менен, Smiley Winky Face менен чыгат жана үч жолу Winky Face төртүнчү жолу Smiley Face тилин чыгарат.

Смайлик - бул коддогу кичинекей өзгөрүү.

11 -кадам: Кайсы китепканалар колдонулат

Кайсы китепканалар колдонулат.

Мен аларды Windows 7де Arduino IDE 1.6 менен колдоном, алар дагы Windows 10до Adruino IDE 1.8.8 менен сыналган.

RTClib-мастер

Arduino-DS3231-мастер

Adafruit_NeoPixel-мастер

Arduino-DCF77-мастер

Кен Ширрифтин IRremote китепканасы

Колдонулган китепкана жөнүндө дайыма башаламандык бар болгондуктан, мен колдонгон китепкананы кошом.

IRremote китепканасы көп эстутумду колдонот.

// Сиз киргизген ар бир протокол эс тутумун жана декоддоо учурунда убакытты камтыйт // Өчүрүңүз (0гө коюңуз) сизге кереги жок/каалабаган бардык протоколдорду!

Менде NEC жана Samsung протоколунан башкасынын баары өчүрүлгөн. Бул эс тутумду 10%үнөмдөйт. Учурда эс тутумдун көлөмүндө көйгөй жок, андыктан азырынча өчүрүү зарыл эмес.

12 -кадам: Simple IR Remote Control

Жөнөкөй IR алыстан башкаруу
Жөнөкөй IR алыстан башкаруу
Жөнөкөй IR алыстан башкаруу
Жөнөкөй IR алыстан башкаруу
Жөнөкөй IR алыстан башкаруу
Жөнөкөй IR алыстан башкаруу

Ассамблея

Сүрөттөрдөн көрүнүп тургандай, LED 132 үчүн тешик бир аз өтө чоң болуп чыкты. Мен муну жакшы пайдаланып, ага IR кабылдагычты коштум. IR кабылдагычтын VS1838 маалымат пинин Arduino'дун 7 пинине туташтырыңыз. Мындан тышкары плюс жана минус энергия булагын туташтырыңыз. IR кабылдагычы 0,21 мАны колдонот жана FET которуштургандан кийин плюс электр энергиясына туташтырылышы мүмкүн. Бул үнөмдөөгө алып келет, эгер саат 50% болсо, 5 Вольт * 0,21 мА / 1000 * 12 саат * 365 күн * 1 / 0,85 эффективдүүлүк электр энергиясы = 5,4 ватт. Бул анча деле сезилбейт, бирок ар бир аз жардам берет.

Операция төмөнкүдөй

IR алыстан башкаруудагы каалаган баскычты, андан кийин OK баскычын басыңыз. Биринчи жолу басканда, сиз IR иштетүүгө киресиз, ал эми экинчи жолу анын негиздүү суроо экендигин аныктайсыз. Экинчи жолу OK биринчи баскычты бат эле басышы керек, антпесе ал кайра кайтып келет. Мен бул конструкцияны биринчи кодду туура чечмелөө үчүн жасадым, ошондуктан IR иштетүү менен бүтпөдүм.

IR тутумуна киргенден кийин, бир нече светодиоддор маалымат алуу үчүн, түшүндүрмө алуу үчүн андан ары окуп, биринчи сүрөттү көрүшөт.

Сүрөттөмө жөнөкөй алыстан башкаруу үчүн, бирок сиз каалаган алыстан башкарууну колдонуп, өз ачкычтарыңызды аныктай аласыз. Мен дагы Samsung пультун колдондум.

Алгачкы төрт баскыч LEDдин төрт төрт катарына туура келет. Төрт LED орнотууга жараша солго же оңго бурулат. 1ден 4кө чейинки баскычтар басылганда абал тескерисине өзгөрөт жана эс тутумда сакталат.

1 туруктуу түс же асан -үсөн эффекти

2 секунда жарыгы өчөт же экинчи жарыгы күйөт

3 смайлик өчүү смайлик

4 DCF77 өчүк же DCF77 күйүк

Ачкычтын номери төмөнкү баскычтарда көрсөтүлөт

5 смайлик эсептегич

6 асан -үсөн спектринин туурасы

7 кызыл жөндөөнү оңдоо

8 жашыл жөндөөнү оңдоо

9 оңдоо көк түс

Светодиоддордун 6, 7 жана 8 -катарлары азыр белгиленген наркка туура келет, 6 -сапта бирдиктер көрсөтүлөт, 7 -сапта ондуктар жана 8 -катарда жүз. Ар бир сап нөл мааниси менен башталат. Ошентип, катардагы биринчи жетекчи 0, экинчиси 1 ж.

0 убакыт жөндөө

/\ жарыктыгы жөндөө

0 баскычы басылганда, "он" светодиоддору күйөт, бул сиз убакытты коюуну каалаарыңызды билдирет жана экинчи жолу 0 басканыңызда дисплейде белгиленген убакыт пайда болот.

Эми убакытты коюуга болот жана дисплейде көрсөтүлөт.

Туура убакытты коюңуз, андан кийин маалымдама саатында мүнөт бирдей болсо, OK баскычын басыңыз.

Убакыт туураланды.

Эгерде сиз мүнөт же саат баскычын иштетпесеңиз, убакытты өзгөртүү болбойт. Эгер сиз аларды бассаңыз, убакыт дароо коюлат.

5тен 9га чейинки баскычтардын мааниси баскычтар менен өзгөртүлүшү мүмкүн

оң плюс 1

солго минус 1

алдыга плюс 10

тескери минус 10.

жана убакыт жөндөө үчүн

оң плюс 1 мүнөт

солго минус 1 мүнөт

алдыга плюс 1 саат

тескери минус 1 саат

Кээде баскычты басуу таанылбайт же эки жолу жасалат. Андыктан көңүл буруңуз, эгер жөндөө жакшы болсо, башкача аракет кылыңыз же оңдоңуз. Мен сынап көргөн Samsung пульту (абдан арзан) жөнөкөй алыстан башкарууга караганда бир нече эсе жакшы иштеди.

Түстү орнотуп жатканда, сиз өзгөрүүнү түздөн -түз бүтүндөй дисплейде көрөсүз. Сиз, албетте, каалаган бааны коё аласыз.

Эгерде асан -үсөн спектринин туурасы 0 мааниге ээ болсо, спектр абдан тар жана дисплей дайыма өзгөрүп турган бир түскө ээ.

Убакытты мындай коюунун кемчилиги - бул жайкы / кышкы өтүүнү эсептей албооңузда, анткени бизде күн туура эмес. Сааттын мааниси жок, анткени биз азыр колдонбойбуз.

13 -кадам: Кандай Nexts?

Кандай Nexts?
Кандай Nexts?

Кийинки нерсе, бош эстутум дагы эле жетиштүү болсо, үн.

Менде үн күчөткүчтөр бар. Алар эски ноутбуктан.

Сунушталууда: