Мазмұны:

Arduino негізіндегі екілік дабыл сағаты: 13 қадам (суреттермен)
Arduino негізіндегі екілік дабыл сағаты: 13 қадам (суреттермен)

Бейне: Arduino негізіндегі екілік дабыл сағаты: 13 қадам (суреттермен)

Бейне: Arduino негізіндегі екілік дабыл сағаты: 13 қадам (суреттермен)
Бейне: binary counter with 74HC595 #arduino 2024, Шілде
Anonim
Image
Image

Базалық инженерия бойынша Автордың толығырақ оқыңыз:

DIY лазерлік халық санағышы
DIY лазерлік халық санағышы
Өздігінен жүретін қайық жасау (ArduPilot Rover)
Өздігінен жүретін қайық жасау (ArduPilot Rover)
Өздігінен жүретін қайық жасау (ArduPilot Rover)
Өздігінен жүретін қайық жасау (ArduPilot Rover)
Керемет төсек шамы мен телефон қондырғысы
Керемет төсек шамы мен телефон қондырғысы
Керемет төсек шамы мен телефон қондырғысы
Керемет төсек шамы мен телефон қондырғысы

Туралы: Сәлеметсіз бе, менің атым Джан, мен жасаушымын, мен заттарды салуды және жасауды жақсы көремін, сонымен қатар мен заттарды жөндеуге өте шебермін. Мен әрқашан жаңа нәрселерді жасауды ұнататынмын деп ойлаймын, сондықтан мен әлі күнге дейін жасаймын … Жертөле инженериясы туралы толығырақ »

Эй, Бүгін мен сізге соңғы жобаларымның бірін, екілік оятқышты қалай салу керектігін көрсеткім келеді.

Интернетте әр түрлі екілік сағаттар бар, бірақ бұл уақыт пен түс сияқты нәрселерді орнатуға арналған дабыл функциясы мен сенсорлық түймелері бар түрлі -түсті жарықдиодты жолақтардан жасалған бірінші сағат болуы мүмкін.

Өтінемін, оның күрделі көрінісі сізді қорқытпасын. Кішкене түсіндірмемен, екілік файлды оқу іс жүзінде көрінгендей қиын емес. Ал егер сіз жаңа нәрсені үйренгіңіз келсе, мен сізге кейінірек көмектесуге тырысамын.

Сізге осы жобаның астарындағы оқиға туралы қысқаша айтып берейін:

Мен бастапқыда жарықдиодты қолмен қолданатын «қалыпты» сағатты құруды жоспарладым, бірақ қолымда жарық диодтары жеткіліксіз болды.

Су, уақытты мүмкіндігінше аз жарық диодтармен көрсеткіңіз келсе не істейсіз?

Сіз екілікке ауысасыз, мен дәл осында жасадым.

Бұл сағат оның үшінші нұсқасы. Жобаның идеясы маған тигеннен кейін мен адамдардың бұл туралы не ойлайтынын білу үшін оны Ганновердегі Жасаушы жәрмеңкеге апарғаннан кейін мен өте қарапайым прототип жасадым. Мен сол жерде болған кезде маған көптеген оң және қызықты пікірлер, сондай -ақ жақсарту идеялары келді.

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

Youtube -те, егер сіз бәрін оқығыңыз келмесе, өте егжей -тегжейлі бейне бар.

1 -қадам: заттарыңызды алыңыз

Заттарыңызды алыңыз
Заттарыңызды алыңыз
Заттарыңызды алыңыз
Заттарыңызды алыңыз
Заттарыңызды алыңыз
Заттарыңызды алыңыз

Міне, сіз өзіңіздің екілік сағатты құруға қажет барлық компоненттер мен құралдардың шағын тізімі.

Электроника:

  • 18 адрестік Ws2811 жарық диоды (мысалы, неопиксельдер) м / сағ 60 светодиодты жолақта (ebay)
  • Arduino Nano (ATMega328 процессорымен) (ebay)
  • 1307 RTC модулі (ebay)
  • 4X сыйымдылықты сенсорлық түймелер (ebay)
  • bs18b20 цифрлық температура сенсоры (ebay)
  • LDR (ebay)
  • ноутбук/смартфон динамигі немесе пьезо дыбысы
  • 2222A NPN транзисторы (немесе ұқсас)
  • ерлер тақырыптары
  • бұрышты әйел тақырыптары (ebay)
  • 1 кОм резистор
  • 4, 7 кОм резистор
  • 10 кОм резистор
  • Сымдар
  • 7х5 см прототипі ПХД 24х18 тесік (ebay)
  • күміс сым (зергерлік сым) (ebay)
  • 90 ° шағын USB адаптері (ebay)

Басқа материалдар

  • Винил қаптама
  • 4X 45мм м4 фланецті бұрандалар (ebay)
  • 32X м4 металл шайбалар
  • 4X м4 құлыптау гайкасы
  • 28X м4 гайка
  • 4X 10мм м3 жезден жасалған ПХД тұруы (ebay)
  • 8X 8 мм м3 бұранда (ebay)
  • алюминий парағы
  • 2 мм сүтті акрил парағы
  • 2 мм мөлдір акрил парағы
  • 3 мм MDF парағы
  • екі жақты таспа

Құралдар

  • шағын USB кабелі
  • Arduino IDE жұмыс істейтін компьютер
  • 3,5 мм бұрғылау ұшы
  • 4, 5 мм бұрғылау ұшы
  • күш бұрғы
  • пышақ
  • аралау
  • дәнекерлеу ионы
  • металл кесетін қайшы
  • файл
  • құм қағаз

Үлгілер (енді өлшемдері бар)

  • PDF
  • Libre Office Draw

Код

  • Эскиздер
  • Батырмалы кітапхана
  • Таймер кітапханасы
  • Jukebox кітапханасы
  • RTClib өзгертілді
  • Adafruit Neopixel кітапханасы
  • Arduino-Температура-бақылау-кітапханасы

2 -қадам: алдыңғы және артқы панельді кесіңіз

Алдыңғы және артқы панельді кесіңіз
Алдыңғы және артқы панельді кесіңіз
Алдыңғы және артқы панельді кесіңіз
Алдыңғы және артқы панельді кесіңіз
Алдыңғы және артқы панельді кесіңіз
Алдыңғы және артқы панельді кесіңіз
Алдыңғы және артқы панельді кесіңіз
Алдыңғы және артқы панельді кесіңіз

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

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

Енді біз екі панельді сэндвичке салып, әр жағын тегістейміз.

Бұл аяқталғаннан кейін біз бірінші үлгіні кесіп алып, оны таспа арқылы екі тақтаға бекітеміз және белгіленген тесіктерді бұрғылай бастаймыз.

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

3 -қадам: Артқы панельді аяқтаңыз

Артқы панельді аяқтаңыз
Артқы панельді аяқтаңыз
Артқы панельді аяқтаңыз
Артқы панельді аяқтаңыз
Артқы панельді аяқтаңыз
Артқы панельді аяқтаңыз
Артқы панельді аяқтаңыз
Артқы панельді аяқтаңыз

Әзірге біз алдыңғы панельді шетке қойып, екінші үлгіні артқы панельге жабыстыра аламыз, мұнда біз 4 дана стерженьдер үшін тесіктерді бұрғылау үшін 3, 5 мм бұрғылау ұшын, сондай -ақ шеттерін белгілейтін 4 тесікті пайдалануымыз керек. кішкентай артқы терезе үшін.

Содан кейін біз терезені кесіп, жиектерін тегістеу үшін өзіміздің араны қолданамыз. Сіз сондай -ақ шағын USB кабелі үшін тесік бұрғылауды ұмытқыңыз келмейді (мен осындай нәрселерді жасауға бейім бір өндіруші туралы естідім: D).

Артқы панельді кесуді аяқтаған соң, біз оны винил қаптамаға орауға кірісе аламыз. Біз жай ғана екі бөлікті дұрыс мөлшерде кесіп, біріншісін бір жағына жағамыз. Содан кейін біз жиектерді кесіп, терезені босатамыз. Шаш кептіргіш барлық тесіктерді қайтадан көрінуге көмектеседі, сондықтан біз оларды кесіп тастай аламыз. Дәл сол әрекетті екінші жақ үшін жасағаннан кейін біз келесі шаблонды қолдана отырып, біздің артқы панельге арналған кішкене акрил терезесін жасау үшін сызып тастау техникасын қолданамыз.

4 -қадам: жарықдиодты панель жасаңыз

Жарықдиодты панель жасаңыз
Жарықдиодты панель жасаңыз
Жарықдиодты панель жасаңыз
Жарықдиодты панель жасаңыз
Жарықдиодты панель жасаңыз
Жарықдиодты панель жасаңыз

Енді біз бұл жобаның ең маңызды сәтіне келдік, тура мағынада. Жарықдиодты панель.

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

Нақты жарықдиодты шамдарды дайындау уақыты.

Алдымен біз оларды әрқайсысы 6 жарықдиодты үш жолаққа бөлдік. Жарықдиодты жолақтардың кейбірі өте жұқа жабысқақ қабатпен келеді немесе мүлде жабысқақ емес, сондықтан біз жолақтарымызды екі жақты таспаның бір бөлігіне жабыстырып, оны пышақпен кесеміз. Бұл оны металл табаққа жабыстырады және бұл кәсіби шешім болмаса да, астындағы металл бетінен мыс төсеніштерді оқшаулайды.

Жолақтарды панельге жапсырмас бұрын, біз оны спиртпен тазалаймыз. Светодиодты қосқанда, біз оларды дұрыс жерге де, дұрыс бағытта да қоюымыз керек. Жарық диодты жолақтағы кішкене көрсеткілер деректер жолақ арқылы өтетін бағытты көрсетеді.

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

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

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

Осыдан кейін біз ПХД -ге өтетін сымдарға бірнеше тақырып түйреуіштерін қосамыз. Бұл сымдардың ұзындығы шамамен 16 см болуы керек. Металл панель ештеңені қысқартпайтынына сенімді болу үшін біз барлық түйреуіштер арасындағы қарсылықты өлшеу үшін мультиметрді қолданамыз. Егер ол 1kOhm -ден жоғары нәрсені көрсетсе, онда бәрі жақсы.

Енді біз оны Arduino -ға қосамыз, стандтест өткіземіз және түстерден ләззат аламыз.

5 -қадам: Жарық нұсқаулығын жасаңыз

Жарық нұсқаулығын жасаңыз
Жарық нұсқаулығын жасаңыз
Жарық нұсқаулығын жасаңыз
Жарық нұсқаулығын жасаңыз
Жарық нұсқаулығын жасаңыз
Жарық нұсқаулығын жасаңыз
Жарық нұсқаулығын жасаңыз
Жарық нұсқаулығын жасаңыз

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

Бұл мәселені шешу үшін біз өзімізді кішкене жеңіл нұсқаулыққа айналдырамыз. Ол үшін біз алдыңғы панельмен бірдей өлшемдегі МДФ -ның басқа бөлігін кесіп тастадық. Содан кейін біз оған тағы бір үлгіні қосамыз және светодиоды үшін 3,5 мм диаметрлі он сегіз тесік, сонымен қатар бұрандалар үшін 4, 5 мм төрт тесік бұрғылаймыз. Содан кейін біз оны алдыңғы панельге бекітіп, екеуін туралау үшін зығыр қағазды қолдана аламыз.

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

6 -қадам: Түймешік жақтауын жасаңыз

Түйме жақтауын жасаңыз
Түйме жақтауын жасаңыз
Түйме жақтауын жасаңыз
Түйме жақтауын жасаңыз
Түйме жақтауын жасаңыз
Түйме жақтауын жасаңыз

Біз жасайтын соңғы қоршау компоненті - бұл түйменің жақтауы.

Біз тағы да МДФ бөлігін қажетті мөлшерде кесіп, оған шаблон қосамыз, содан кейін біз барлық қажетті тесіктерді бұрғылап, араны пайдаланып, ортаңғы бөлікті кесеміз.

Біздің рамкада 4 сенсорлық түймелер, жарық сенсоры және кішкентай динамик болуы керек. Оларды жақтауға бекітпес бұрын, біз MDF -ден бірнеше кішкене қақпақ бөліктерін кесеміз. Содан кейін біз компоненттерді сол қақпақтарға ыстық желіммен жабыстырамыз және оларға сым қосамыз.

Сенсорлық түйменің қуат жастықшалары параллель қосылады, ал әрбір шығыс желіге жеке сым беріледі. Бұл олардың барлығы жұмыс істейтінін тексеру үшін жақсы сәт. Жарық сенсорына бір жағынан 5 вольт қажет болғандықтан, біз оны VCC дабыл түймесіне қосып, екінші аяққа сым дәнекерлей аламыз.

Панельдер дайын болғаннан кейін біз оларға және олардың сымдарына орын беру үшін жақтаудың екі жағын кесеміз.

Содан кейін біз барлық шаңсорғышпен ағаш шаңын алып тастап, оларды винил қаптамамен жабамыз.

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

Біз жақтауда пышақпен аздап МДФ босатамыз, бұл бізге ыстық желім үшін қатты бетті береді. Содан кейін біз компоненттерді жақтауымыздың бүйіріне жабыстыра аламыз.

7 -қадам: Негізгі ПХД дәнекерлеу

Негізгі ПХД дәнекерлеу
Негізгі ПХД дәнекерлеу
Негізгі ПХД дәнекерлеу
Негізгі ПХД дәнекерлеу
Негізгі ПХД дәнекерлеу
Негізгі ПХД дәнекерлеу

Жақтауды дәл сол күйінде қалдырып, ПХД -ге көшейік. Сіз бірінші суретте ПХД орналасуын көре аласыз.

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

Келесіде бізде әйел басына арналған түйреуіштер бар. Біршама орынды үнемдеу және электрониканы бүйірден қосу үшін біз оларды 90 градус бұрышта орнатамыз.

Транзисторлар біздің ПХД 2, 54мм саңылау аралықтарына сәйкес келмейді, сондықтан біз қысқыштарды пайдаланып, аяғымызды екінші суретте көрсетілген пішінге мұқият бүгеміз. Біз алдымен олардың бір аяғын дәнекерлеп, ПХД -ны айналдырамыз. Содан кейін біз дәнекерлеу қосылысын қайта қыздырамыз және компонентті дұрыс орналастыру үшін саусағымызды немесе қысқышымызды қолданамыз. Енді біз қалған екі аяқты орнына дәнекерлей аламыз.

Барлық кішкене компоненттерден кейін біз Arduino мен нақты уақыттағы модульді дәнекерлейміз. RTC модулі тесіктердің аралықтарына сәйкес келмейді, сондықтан біз тек 7 түйіспелі түйреуіштері бар жағын жабдықтайтын боламыз. Қысқа тұйықталуды болдырмау үшін біз оның астына таспа қоямыз.

Біздің барлық компоненттер өз орнында дәнекерленгендіктен, енді тақтаның екінші жағына қосылу уақыты келді. Ол үшін біз оқшауланбаған сымды шығарамыз. Оны түзету үшін бір қысқышты қолдануға болады. Содан кейін біз сымды кішкене бөліктерге бөліп, ПХД -ге дәнекерлейміз.

Қосылу үшін біз дәнекерлеу қосылысын қыздырамыз және сымды енгіземіз. Содан кейін біз дәнекерлеу ионын дұрыс температураға жеткенше ұстаймыз, ал дәнекер оны қоршап, біз суреттегідей түйіскен жерді аламыз. Егер біз сымды қыздырмайтын болсақ, онда біз басқа мысалға ұқсас және өте жақсы өткізбейтін суық түйісуіміз мүмкін. Біз сым кескішті пайдаланып, дәнекерлеу кезінде сымды төмен қарай итеріп, оның ПХД -ге тегіс жатқанына көз жеткізе аламыз. Ұзынырақ қосылу жолдарында біз оны бұрышқа немесе келесі компонентке жеткенше әр 5-6 тесікке бір табаққа дәнекерлейміз.

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

Бос сымды қосылымдарды жасау өте қиын және белгілі бір дағдыларды қажет етеді, сондықтан егер сіз мұны бірінші рет жасасаңыз, оны шынымен орнатуға тырыспас бұрын оны ПХД -да сынақтан өткізу жаман емес.

Дәнекерлеуді аяқтағаннан кейін біз қосылыстарды қайтадан тексереміз және қысқа тұйықталу болмағанымызға көз жеткіземіз. Содан кейін біз ПХД -ны түйме жақтауының ішіне салып, раманың сымының қажетті ұзындығына сілтеме ретінде пайдалана аламыз. Содан кейін біз сол сымдарды қажетті ұзындыққа кесіп, оларға ерлердің бастық түйреуіштерін қосамыз.

Сенсорлық түймелердің барлық 5В және жерге қосылымдары 2 істікшелі қосқышқа қосылады, 4 шығыс сымдары 4 істікшелі қосқышты және жарық сенсорлық желісін алады, сондай -ақ үш динамикті сым үш істікшелі қосқышқа біріктірілген. Әр розетка мен коннектордың бір жағын өткір немесе таспамен белгілеуді ұмытпаңыз, сондықтан оларды кездейсоқ қоспайсыз.

8 -қадам: сағатты жинаңыз

Сағатты жинаңыз
Сағатты жинаңыз
Сағатты жинаңыз
Сағатты жинаңыз
Сағатты жинаңыз
Сағатты жинаңыз
Сағатты жинаңыз
Сағатты жинаңыз

Осыдан кейін мен алдыңғы панельге оралдым және түпкілікті әсер ету үшін мөлдір лазерлік принтер фольгадан жасалған жапсырманы мұқият жаптым.

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

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

Енді бізде барлық компоненттер бар және сағатты жинай аламыз.

Біз жарық бағыттағыш пен алдыңғы панельді біріктіруден бастаймыз. Барлық 4 болт бекітілгеннен кейін біз екі панельді туралап, содан кейін оларды қатайтамыз. Бірнеше жаңғақ кейінірек жарық панелін шығарады, онда біз бағытты қарауымыз керек. Кабель жоғарғы жағында болуы керек.

Үшінші бөлік - бұл түйменің жақтауы. Есіңізде болсын, алдыңғы жағынан қараған кезде динамик сағаттың оң жағында болуы керек. Орнатпас бұрын, жетекші панельдің кабелін жақтаудың ортасынан тартыңыз.

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

Кішкене терезені бекіту үшін біз M3 бұрандалары мен ПХД аралық бөліктерін аламыз. Бұрандаларды мұқият бұрау маңызды, өйткені біз акрилді бүлдіргіміз келмейді. Содан кейін біз ПХД -ны аламыз, адаптерді қосамыз және аралықтарға бекітеміз. Компонент жағы терезеге қарауы керек, ал Arduino USB порты сағаттың төменгі жағына қарайды.

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

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

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

9 -қадам: кодты жүктеңіз және жарық сенсорын калибрлеңіз

Кодты жүктеңіз және жарық сенсорын калибрлеңіз
Кодты жүктеңіз және жарық сенсорын калибрлеңіз
Кодты жүктеңіз және жарық сенсорын калибрлеңіз
Кодты жүктеңіз және жарық сенсорын калибрлеңіз
Кодты жүктеңіз және жарық сенсорын калибрлеңіз
Кодты жүктеңіз және жарық сенсорын калибрлеңіз

Біздің кодты жүктеу уақыты келді.

Алдымен біз барлық қажетті файлдарды жүктеп алып, оларды ашамыз. Содан кейін біз Arduino кітапханалары қалтасын ашып, оған барлық жаңа кітапханаларды тастаймыз.

Енді біз жарық сенсорының калибрлеу эскизін ашамыз, ол бізге сағаттардың автоматты диммер функциясының жарқын және қараңғы мәндерін береді. Біз оны жүктейміз, сериялық мониторды ашамыз және экрандағы нұсқауларды орындаймыз.

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

Біз барлық басқа терезелерді жабамыз, кодты сағатымызға жүктейміз және біз аяқтадық.

Біздің жаңа гаджетпен ойнауға уақыт келді.

10 -қадам: Екілік жүйеге жылдам кіріспе

Екілік жүйеге жылдам кіріспе
Екілік жүйеге жылдам кіріспе
Екілік жүйеге жылдам кіріспе
Екілік жүйеге жылдам кіріспе
Екілік жүйеге жылдам кіріспе
Екілік жүйеге жылдам кіріспе
Екілік жүйеге жылдам кіріспе
Екілік жүйеге жылдам кіріспе

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

«Сіз бұл сағатты әлемде қалай оқисыз?»

Ол үшін мен сізге екілік жүйеге қысқаша кіріспе бергім келеді.

Біз бәріміз ондық жүйені жақсы білеміз, онда әр цифр 0 -ден 9 -ға дейінгі 10 түрлі күйден тұруы мүмкін. Екілік жүйеде әр цифрдың тек екі күйі болуы мүмкін: 1 немесе 0, сондықтан сіз қарапайым нәрсені қолдануға болады. екілік санды көрсету.

Ондық бөлшекте 9 -дан үлкен сандарды көрсету үшін біз қосымша цифрларды қосамыз. Әр цифр белгілі бір көбейткішпен келеді. Оң жақтағы бірінші цифр 1 -ге көбейткішпен келеді, келесі сан 10 -ға, келесі 100 -ге тең. Әр жаңа цифрмен көбейткіш алдыңғы цифрдың он есе үлкен болады. Біз білеміз, екі саны бір цифрды солға орналастырды, 20 санын білдіреді, сол жақта екі цифр 200 -ге тең.

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

Суреттің төменгі жағындағы сәл күрделі мысал туралы не айтуға болады? Үшінші және бірінші биттер қосылады. Мұнда ұсынылған ондық санды алу үшін біз екі биттің мәндерін қосамыз. Сонымен 4 * 1 + 1 * 1 немесе 4 + 1 бізге 5 санын береді.

8 бит байт деп аталады, сондықтан бір байтты бірлікпен толтырсақ, қандай сан алатынымызды білейік.1+2+4+8+16+32+64+128 - бұл 255, бұл бір байттың ең жоғары мәні.

Айтпақшы, ондық санау жүйесінде ең жоғары көбейткіші бар сан әрқашан бірінші орында тұрса, сізде санды екілік санға жазудың екі әдісі бар. Бұл екі әдіс ең аз байт бірінші (LSB) және ең маңызды байт бірінші (MSB) деп аталады. Егер сіз екілік санды оқығыңыз келсе, екі форматтың қайсысы қолданылатынын білуіңіз керек. Ондық санау жүйесіне жақын болғандықтан, біздің екілік сағат MSB нұсқасын қолданады.

Біздің нақты әлемдегі мысалға оралайық. Алтыншы суретте көрсетілгендей, біздің сағатта сағатты көрсету үшін 4 бит бар. Бізде минутына 6 бит, ал секундына 6 бит бар. Бұдан басқа, бізде таңертеңгі/кешкі бір бит бар.

Жарайды, соңғы суретке өтпестен, 6 -суретте сағат неше екенін айтыңыз.. ….

Сағат бөлімінде бізде 2+1 бар, ол 3 -ке тең, ал кешкі уақыт қосулы, сондықтан кеш. Келесі минут 32+8, яғни 40. Секундтарда бізде 8+4+2 болады, яғни 14. Демек, 15:40:14 немесе 15:40:14.

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

Бұл екілік жүйеге қатысты дерексіз нәрсені нақты әлемге енгізу және оны жақсырақ білу үшін бұл жобаның бір бөлігі.

11 -қадам: екілік дабылды қолдану

Екілік дабыл сағатын қолдану
Екілік дабыл сағатын қолдану
Екілік дабыл сағатын қолдану
Екілік дабыл сағатын қолдану
Екілік дабылды қолдану
Екілік дабылды қолдану

Енді біз ақырында сағатпен ойнағымыз келеді, сондықтан басқару элементтерін жылдам қарастырайық.

Бағдарламалық жасақтама бір рет басу, екі рет түрту және ұзақ түртуді ажырата алады. Сонымен, әр түймені бірнеше әрекеттер үшін қолдануға болады.

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

Диммер режимін орнату үшін, OK түймесін екі рет басыңыз. Жарықдиодты панель бірнеше рет жыпылықтау арқылы орнатылған режимді көрсетеді.

  • Бір уақыт күңгірт емес дегенді білдіреді.
  • Екі рет жарықтылық жарық сенсорымен басқарылатынын білдіреді.
  • Үш рет және жарық диодты 10 секунд әрекетсіздіктен кейін автоматты түрде өшеді.
  • Төрт рет және екі диммер режимі біріктірілген.

Ok түймесін ұзақ басу уақытты реттеу режиміне әкеледі, онда сіз нөмірді өзгерту үшін жоғары және төмен көрсеткілерді қолдана аласыз. OK түймесін бір рет басу арқылы сағаттан минутқа дейін жетуге болады, тағы бір рет түрту арқылы сіз секундтарды орната аласыз. Осыдан кейін, соңғы бір рет түрту жаңа уақытты үнемдейді. Егер сіз акценциалды түрде уақытты орнату режиміне кірсеңіз, сіз жай 10 секунд күте аласыз және сағат автоматты түрде кетеді.

OK түймесіндегідей, дабыл түймесін ұзақ басып тұру дабылды орнатуға мүмкіндік береді. Дабыл түймесін екі рет түрту дабылды қосады немесе өшіреді.

Егер сағат шырылдап жатса, сіз оны 5 минут ұйықтауға жіберу немесе ұстап тұру үшін, дабылды өшіру үшін дабыл түймесін бір рет басасыз.

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

12 -қадам: Кодексті түсіну (міндетті емес)

Кодексті түсіну (міндетті емес)
Кодексті түсіну (міндетті емес)

Көптеген адамдар бағдарламалауды онша ұнатпайтынын білемін. Бақытымызға орай, бұл екілік сағатты құру және пайдалану үшін ешқандай бағдарламалау білімі қажет емес. Егер сіз бағдарламалау жағына мән бермесеңіз, бұл қадамды өткізіп жіберуге болады.

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

Сағат кодының әрбір ұсақ -түйегін түсіндіру жеке нұсқаулық болар еді, сондықтан мен бағдарламаны объектіге бағытталған түрде түсіндіре отырып, қарапайым боламын.

Егер сіз бұл нені білдіретінін білмесеңіз, объектіге бағытталған бағдарламалау (OOP) - бұл қазіргі заманғы бағдарламалау тілдерінің көпшілігі, мысалы C ++. Бұл әр түрлі функциялар мен айнымалыларды сыныптарға бөлуге мүмкіндік береді. Класс - бұл бір немесе бірнеше объектілерді құруға болатын үлгі. Бұл объектілердің әрқайсысы атау алады және оның айнымалылар жиынтығы.

Мысалы, сағат коды alarmButton сияқты бірнеше MultiTouchButton нысандарын пайдаланады. Бұл менің Button кітапханамның бөлігі болып табылатын MultiTouchButton класының объектілері. Бұл объектілердің керемет жағы - олармен нақты әлем объектілеріне ұқсас интерфейс жасай аласыз. Мысалы, дабыл түймесі екі рет басылғанын alarmButton.wasDoubleTapped () шақыру арқылы тексере аламыз. Сонымен қатар, бұл функцияның орындалуы басқа файлда жақсы жасырылған және біздің кодтағы басқа нәрсені өзгерту арқылы оны бұзу туралы алаңдамаймыз. Adafruit веб -сайтында объектіге бағытталған бағдарламалау әлеміне тез кіруді табуға болады.

Жоғарыдағы графиктен көріп тұрғаныңыздай, сағаттар бағдарламасында әр түрлі объектілер бар.

Біз жай ғана кіріс сигналдарын түрту, екі рет түрту немесе ұзақ басу ретінде түсіндіре алатын түйме объектілері туралы айттық.

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

BinaryClock объектісі уақыт пен дабыл параметрін, сондай -ақ дабылды бақылауды басқарады. Ол rtc модулінен уақыт алады және оны ledPanel үшін екілік ақпарат буферіне айналдырады.

ColorController түс әсерінің барлық функцияларын қамтиды және ledPanel үшін colorBuffer қамтамасыз етеді. Бұл сонымен қатар Arduinos EEProm күйін сақтайды.

Диммер сағаттардың жарықтығына қамқорлық жасайды. Оның пайдаланушы айнала алатын әр түрлі режимдері бар. Ағымдағы режим EEProm -да сақталады.

LEDPanel әр жарық диодының түсі, жарықтық мәні мен екілік күйі үшін әр түрлі буферлерді басқарады. PushToStrip () функциясы шақырылған сайын, ол оларды қабаттастырады және оларды жолақ жолағына жібереді.

Барлық нысандар негізгі (байланыс және цикл функциялары бар файл) арқылы «қосылады», ол тек 3 маңызды тапсырманы орындау үшін бірнеше функцияларды қамтиды.

  1. Пайдаланушы кірісін интерпретациялау - бұл 4 батырмалы объектілердің кірісі және оларды логика арқылы береді. Бұл логика сағаттың ағымдағы күйін тексереді, егер сағат қалыпты болса, уақытты орнату немесе қоңырау режимінде болса, сәйкесінше басқа объектілерден әр түрлі функцияларды шақырады.
  2. Объектілер арасындағы байланысты басқару - ол үнемі жаңа binaryClock объектісінен сұрайды, егер олда жаңа ақпарат болса немесе дабыл шырқалып тұрса (). Егер оның жаңа ақпараты болса, ол binaryClock ішінен informationBuffer алады және оны ledPanel нысанына жібереді. Егер сағат шырылдап тұрса, ол джукбоксты бастайды.
  3. Объектілерді жаңарту - Бағдарлама объектілерінің әрқайсысында кірістерді тексеру немесе жарықдиодты түстерді өзгерту сияқты қолданылатын жаңарту процедурасы бар. Сағат дұрыс жұмыс істеуі үшін оларды цикл функциясында бірнеше рет шақыру қажет.

Бұл сізге кодтың жеке бөліктері қалай жұмыс істейтіні туралы жалпы түсінік беруі керек. Егер сізде нақты сұрақтар болса, мені жай ғана сұрай аласыз.

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

13 -қадам: Қорытынды сөздер

Қорытынды сөздер
Қорытынды сөздер

Сіз осы уақытқа дейін оқуды жалғастырғаныңызға қуаныштымын. Бұл менің жобам тым скучно емес екенін білдіреді:).

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

Төмендегі түсініктемелерде сағат туралы сіздің ойыңызды білгім келеді:).

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

Әдеттегідей, оқығаныңызға және бақытты болғаныңызға көп рахмет.

LED жарыстары 2017
LED жарыстары 2017
LED жарыстары 2017
LED жарыстары 2017

Жарықдиодты жарыста 2017 ж

Ұсынылған: