Мазмұны:

Толық кемпірқосақ әсері бар кемпірқосақ сөз сағаты және басқалары: 13 қадам (суреттермен)
Толық кемпірқосақ әсері бар кемпірқосақ сөз сағаты және басқалары: 13 қадам (суреттермен)

Бейне: Толық кемпірқосақ әсері бар кемпірқосақ сөз сағаты және басқалары: 13 қадам (суреттермен)

Бейне: Толық кемпірқосақ әсері бар кемпірқосақ сөз сағаты және басқалары: 13 қадам (суреттермен)
Бейне: Басқа тышты деген осы 😡 2024, Шілде
Anonim
Толық кемпірқосақ әсері бар кемпірқосақ сөз сағаты және басқалары
Толық кемпірқосақ әсері бар кемпірқосақ сөз сағаты және басқалары

Мақсаттар

1) Қарапайым

2) Қымбат емес

3) мүмкіндігінше энергия тиімді

Толық кемпірқосақ әсері бар кемпірқосақ сөз сағаты.

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

Қарапайым IR қашықтан басқару пульті

Неопиксельдердің жарықтығын бақылау үшін 03-nov-18 LDR жаңартыңыз

01 қаңтар-19 жаңарту WS2812B қуатын тұтынуды азайту.

15 қаңтар-19 смайлды жаңартыңыз.

23 қаңтар-19 жаңарту Code 1.6

19 наурыздағы кітапханалар сілтемелерін жаңартыңыз

14-сәуір-19 нұсқасын жаңарту 1.7 Таңдаулы смайлик түсі кемпірқосақ/түзету enz.

Соңғы жаңарту 01-маусым-19 нұсқасы 2.0 IR қашықтан басқару құралы және кодты қайта жобалау

1 -қадам: Сағат үшін корпус

Сағатқа арналған жағдай
Сағатқа арналған жағдай
Сағатқа арналған іс
Сағатқа арналған іс
Сағатқа арналған жағдай
Сағатқа арналған жағдай

Қарапайым құралдар мен кішкене дағдылардың арқасында сағат сағатын жасау қиын емес, мен қол жетімді материалдарды қолдандым.

Бұл жағдайда мен бірнеше жақтауды кескен өрескел қарағай таяқшасын қолдандым. Бұлар корпустың төрт жағын бір -біріне жабыстырып, бұрыштарындағы кішкене ағашпен нығайтатын еді. Содан кейін ағаш тегістеу мен бояуды қажет етеді.

Әріптер фольгадан принтер арқылы айнаға жазылады. Фольга шыны пластинаның артында орналасқан және жарықтың жақсы таралуы үшін екі қабатты үлгі қағазымен қапталған. Шыны силиконды тығыздағышпен бекітілген.

2 -қадам: неопиксельдер

Неопиксельдер
Неопиксельдер
Неопиксельдер
Неопиксельдер
Неопиксельдер
Неопиксельдер
Неопиксельдер
Неопиксельдер

Неопиксельді жарық диодтары ағаш тақтайшаға орналастырылған, онда алдымен 3 мм тесіктер бұрғыланады. Алдыңғы жағында олар әріп өлшеміне дейін 3/4 тереңдікке дейін ұлғайтылған. Осыдан кейін артқы жағындағы 3 мм 10 мм -ге дейін ұлғайтылады, бұл неопиксель өлшемі. Кейбір таңбалар үшін W, басқалары үшін тесік сәл реттелуі керек.

Мен фанераны қолдандым, ол тез бөлініп кетеді, МДФ жақсы болуы мүмкін.

Жеке светодиодтармен сіз жарық диодты жолақтармен бірдей тұрақты қашықтыққа байланысты емессіз. Сіз мұны барлық қысқа сымдармен жасай аласыз. Бірақ екі мин (-) қосылыс ішкі қосылған екі плюс (+) қосылымға ұқсайды, сондықтан да сол байланыс.

Сымның бір бөлігін сол жақ жарық диодқа, содан кейін оң жақ жарық диодқа дәнекерлеу арқылы сіз көп жұмыстан құтқара аласыз. Содан кейін аралықтарды дәнекерлеңіз.

Деректер байланысы, әрине, қысқа бөліктерден тұруы керек, себебі деректерді шығару деректерді енгізуге өтеді.

3 -қадам: алдыңғы мәтінді реттеу

Алдыңғы мәтінді реттеу
Алдыңғы мәтінді реттеу
Алдыңғы мәтінді реттеу
Алдыңғы мәтінді реттеу
Алдыңғы мәтінді реттеу
Алдыңғы мәтінді реттеу

Алдыңғы тақта енді голланд тілінде, бірақ кез келген тілге аудару үшін.

NeoPixels жарық диодтары 0-167 аралығында осында ауысады. Нөмірлеу жоғарғы сол жақтағы бірінші жолдан оңға қарай, содан кейін екінші қатар оңнан солға қарай жүреді. Реттеуді өз қажеттіліктеріңізге сәйкес жасауға болады. NeoPixels саны таңбалар санына байланысты анықталады. Келесі жолда не не одан көп неопиксельдерді реттеуге болады

#depine NUMPIXELS 168 // Arduino -ға қанша NeoPixels бекітілген?

168 - бұл басқа сан. Нөмірлеу 0 -ден басталады. Сіз кез келген мәтін жасай аласыз. Егер сіз мәтінді өзгертсеңіз, сізге сәйкес сөздерді өзгертуге тура келеді. Нөмірлеу өзгеріссіз қалады.

Мысал ретінде, кодтың DRIE анықталады

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

Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // мини-дри

}

Егер сіз Arduino сөзін жасағыңыз келсе, ол келесідей болады:

жарамсыз 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

}

Осылайша сіз сөздерді құра аласыз.

Сағаттық сөздер үшін олар сабақтас сөз құраса пайдалы, бірақ бұл өте қажет емес. Пайдаланылмаған әріптерге неониксельдер қажет емес. Мен олардың барлығын болашақ мүмкіндіктерді пайдалану үшін уақытты көрсетуден басқа толтырдым.

Егер сіз бастапқы нүктені өзгертсеңіз немесе сабақтастық реттілігін өзгертсеңіз, нөмірлеу сәйкесінше өзгеруі керек.

4 -қадам: Толық кемпірқосақ әсері

Толық кемпірқосақ әсері
Толық кемпірқосақ әсері

Сағат қазір соншалықты бағдарламаланған, сонда неше рет неопиксель қосылғанын санауға болады.

Жалпы спектр бөлінген санға жуық, содан кейін сәл ығысады. Нәтижесінде, әр неопикселдің түсі үнемі өзгеріп отырады. Неопиксель nr 1 және nr 167 бір -біріне сәйкес келеді.

Егер сіз бір мезгілде әр түрлі түстерді таңдасаңыз, оны реттеу оңай. Түс барлық спектрде өзгереді, бірақ оның кішкене бөлігінде. Неопиксель nr 1 мен nr 167 енді бір -бірінің түсіне кірмейді.

Жарықтықты келесі жолда орнатуға болады, pixel.setBrightness (150);

Кіші сан аз, ал үлкен сан жарықтық.

5 -қадам: Әр түрлі компоненттер

Әр түрлі компоненттер
Әр түрлі компоненттер
Әр түрлі компоненттер
Әр түрлі компоненттер
Әр түрлі компоненттер
Әр түрлі компоненттер

Мен қолданған келесі компоненттер

Arduino Pro Mini ATMEGA328 5V/16МГц

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

168 дана Neopixels жарықдиодты чиптер мен жылытқыштар 5V 5050 RGB WS2811 IC кіріктірілген

Фольгадан жасалған трафарет

DCF77 қабылдағышы

6 -қадам: Сағаттың коды

Міне код. Ешкім болмаған кезде және түнде жарықтылықты басқару және өшіру қосылды.

RCWL-0516 радиолокациялық толқынды қозғалыс сенсоры қосылды (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 вольтке дейін өзгеруі мүмкін, ол 0 -ден 1024 -ке дейін «LDRValue» санына айналады.

Егер жаңа өлшенген мән соңғы есептелген мәннен үлкен болса, онда қарқындылық 1 -ге артады, егер ол 1 -ге азайтылғаннан төмен болса және оған тең болса, ештеңе жасалмайды. Мән баяу жүруі үшін, жыпылықтау әсері болмайды, тек 1 ғана жоғарылайды немесе азаяды, ал есептеу циклде болғандықтан, цикл 25 рет өткеннен кейін ғана қайта есептеледі.

Қарқындылық теориялық тұрғыдан минимум 20 және максимум 1024/7 + 45 = 191. Мен өлшеген максималды мән 902 болды, бұл 173 қарқындылыққа тең. Бұл мен әдепкі мән ретінде орнатқан 150 -ге сәйкес келеді.. (pixel.setBrightness (150) қараңыз)

2.0 нұсқасында басқаруды қашықтан басқару пульті арқылы орнатуға болады. Келесі параметрлер қосылды: ең аз параметр ретінде Brightness_min және ең жоғары параметр ретінде Brightness_max және параметр параметрі ретінде Brightness_Offset. Brightness_min және _max - бұл сіздің жеке жағдайыңызға байланысты болатын мәндер. Brightness_Offset - бұл қашықтан басқару пультімен орнатылатын және азды -көпті жарықтылықты орнатуға болатын мән.

Өлшенген LDRValue мен BerLDRValue есептелген мәндерінің арасында 3 -тен тұратын өлі жолақ бар.

Жарықтық параметрін тексеру үшін BrightnessControl void ішіндегі баспа мәлімдемелерін пайдаланыңыз.

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 Кох резисторы арқылы Arduino -дан 4 шығысымен басқарылады. Егер шығыс цифрлық түрде төменге (0) түссе, неопиксельдер қосулы және жоғары (1) күйде сөнеді.

10 -қадам: Сөз сағатындағы смайлик

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

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

Кейде сағатта смайлик пайда болады, бұл сізді бақытты етеді.

Смайликті радар сенсоры іске қосады. Қозғалыс саны (реттелетін) - бұл Смайликтің пайда болуының өлшемі. % Белгілері қозғалыстың анықталғанын көрсетеді. Әрбір оныншы (реттелетін) қозғалыста Смайлик Винки бетімен шығады, ал үш рет Винки жүзінде төртінші рет күлімсіреген тіл шығады.

Смайлик - бұл кодтағы кішкене өзгеріс.

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 -қадам: Қарапайым ИҚ қашықтан басқару құралы

Қарапайым IR қашықтан басқару құралы
Қарапайым IR қашықтан басқару құралы
Қарапайым IR қашықтан басқару құралы
Қарапайым IR қашықтан басқару құралы
Қарапайым IR қашықтан басқару құралы
Қарапайым IR қашықтан басқару құралы

Ассамблея

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

Операция келесідей

IR қашықтан басқару пультіндегі кез келген пернені, содан кейін OK түймесін басыңыз. Бірінші рет басқанда, сіз инфрақызыл инфрақұрылымды өңдейсіз, ал екінші рет бұл сұраныстың негізделгенін анықтайсыз. Екінші рет OK бірінші пернені тез басуы керек, әйтпесе ол қайтадан оралады. Мен бұл конструкцияны бірінші кодты дұрыс декодтаудың қиын болуы үшін жасадым, сондықтан инфрақызыл инфрақызылмен жұмыс істемедім.

Инфрақызыл өңдеуден кейін ақпарат алу үшін бірнеше жарық диоды қосылады, әрі қарай оқыңыз және бірінші суретті қараңыз.

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

Алғашқы төрт перне светодиодтардың жоғарғы төрт қатарына сәйкес келеді. Төрт жарық диоды параметрге байланысты солға немесе оңға бұрылады. 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 қашықтан басқару құралы (өте арзан) қарапайым қашықтан басқару құралынан бірнеше есе жақсы жұмыс істеді.

Түсті орнатқан кезде сіз өзгерісті бүкіл дисплейде көресіз. Түстерге шолу жасалған сайт үшін https://www.helderester.nl/kleurentabel.html қараңыз. Сіз, әрине, кез келген мәнді орната аласыз.

Егер кемпірқосақ спектрінің ені 0 -ге тең болса, спектр өте тар және дисплейде үнемі өзгеретін бір түс болады.

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

13 -қадам: Қандай қосымшалар?

Қандай байланыстар?
Қандай байланыстар?

Бұдан кейін бос жады әлі де жеткілікті болса, дыбыс шығады.

Менде дауыс зорайтқыштар бар. Олар ескі ноутбуктен.

Ұсынылған: