Satura rādītājs:

DIY Arduino binārais modinātājs: 14 soļi (ar attēliem)
DIY Arduino binārais modinātājs: 14 soļi (ar attēliem)

Video: DIY Arduino binārais modinātājs: 14 soļi (ar attēliem)

Video: DIY Arduino binārais modinātājs: 14 soļi (ar attēliem)
Video: How to use W1209 Temperature relay controller and program the thermostat 2024, Jūlijs
Anonim
DIY Arduino binārais modinātājs
DIY Arduino binārais modinātājs
DIY Arduino binārais modinātājs
DIY Arduino binārais modinātājs
DIY Arduino binārais modinātājs
DIY Arduino binārais modinātājs

Tas atkal ir klasiskais binārais pulkstenis! Bet šoreiz ar vēl vairākām papildu funkcijām! Šajā pamācībā es jums parādīšu, kā izveidot bināru modinātāju ar Arduino, kas var parādīt ne tikai laiku, bet arī datumu, mēnesi, pat izmantojot taimeri un modinātāja funkcijas, kuras var izmantot arī kā lampu pie gultas! Bez liekas pieķeršanās sāksim!

Piezīme. Šajā projektā netiek izmantots RTC modulis, tāpēc precizitāte ir atkarīga no izmantotās plates. Esmu iekļāvis koriģējošu mehānismu, kas noteiktā laika periodā koriģēs laika svārstības, taču jums būs jāeksperimentē, lai atrastu pareizo laika perioda vērtību (vairāk par to zemāk), un pat ar koriģējošu mehānismu tas joprojām mainīsies ilgu laiku (salīdzinot ar bez tā). Ja kāds ir ieinteresēts, lūdzu, īstenojiet RTC moduļa izmantošanu šajā projektā

Piegādes

5 mm LED (jebkuras krāsas, es izmantoju 13 baltas gaismas diodes ar vienu RGB LED kā indikatoru) --- 14 gab

Arduino Nano (citi var darboties) --- 1 gab

Mikro slēdzis --- 1 gab

Neliels alumīnija folijas gabals

Montāžas dēlis (iežogojumam, bet jūtieties brīvi izveidot savu)

Baltā papīra gabals (vai jebkura cita krāsa)

Kāda plastmasas plēve (tā, ko izmanto kā grāmatas vāku)

Vadu ķekars

Signāls --- 1 gab

NPN tranzistors --- 1 gab

Rezistori 6k8 --- 14 gab., 500R --- 1 gab., 20R (10Rx2) --- 1 gab., 4k7 --- 1gab.

Projekta barošanas avots (es izmantoju litija akumulatoru)

5050 LED sloksne un slīdnis (pēc izvēles)

Solis: pievienojiet ķēdi

Pievienojiet ķēdi!
Pievienojiet ķēdi!

Es sadalīšu šo soli:

1) skaņas signāla daļa

2) LED panelis

3) Slēdzis (spiedpoga)

4) LED sloksne

5) Kapacitātes sensors

6) Barošanas avots

7) Savienojiet tos visus ar Arduino

Lielākoties tas ir tikai "sekojiet shematiskajam" solim. Tāpēc pārbaudiet iepriekš minēto shēmu vai pat lejupielādējiet un izdrukājiet to!

2. darbība: skaņas signāla daļas sagatavošana

Signāla daļas sagatavošana
Signāla daļas sagatavošana
Signāla daļas sagatavošana
Signāla daļas sagatavošana
Signāla daļas sagatavošana
Signāla daļas sagatavošana

Ja esat iepriekš izmantojis skaņas signālu ar Arduino, jūs zināt, ka, ja mēs to pievienosim tieši Arduino, tas nebūs pietiekami skaļš. Tātad mums ir nepieciešams pastiprinātājs. Lai izveidotu pastiprinātāju, mums ir nepieciešams NPN tranzistors (būtībā darbosies jebkurš NPN, es izmantoju S9013, jo es to ieguvu no vecā projekta) un kāds rezistors, lai ierobežotu strāvu. Lai sāktu, vispirms identificējiet tranzistora kolektoru, emitētāju un pamatni. Šim nolūkam noderēs neliela googlēšana datu lapā. Pēc tam pielodējiet tranzistora kolektoru pie skaņas signāla negatīvās spailes. Signāla pozitīvajā spailē mēs vienkārši pielodējam pie tā stieples gabalu, lai vēlāk varētu pielodēt to pie mūsu Arduino. Pēc tam pielodējiet 500R (vai jebkuru līdzīgu rezistora vērtību) rezistoru pie tranzistora pamatnes un no rezistora, pielodējiet vēl vienu stieples gabalu turpmākai lietošanai. Visbeidzot, pielodējiet divus 10R rezistorus virknē tranzistora emitētāja un pievienojiet citu vadu no rezistoriem.

Patiešām, skatiet shēmu.

p/s: Es joprojām īsti nezinu, kā izvēlēties rezistoru tranzistoram, to rakstot. Izmantotā vērtība tiek izvēlēta empīriski.

3. darbība: LED paneļa sagatavošana

LED paneļa sagatavošana
LED paneļa sagatavošana
LED paneļa sagatavošana
LED paneļa sagatavošana
LED paneļa sagatavošana
LED paneļa sagatavošana

Pievienojiet gaismas diodes un rezistoru attiecīgi prototipēšanas plāksnei un lodējiet. Tieši tā. Sekojiet shēmai. Ja jūs interesē atstarpe, ko izmantoju, 3 caurumi viens no otra katrai kolonnai un divi caurumi katrā rindā (skatiet attēlu). Un indikatora gaismas diode? Es to nejauši pievienoju.

Pēc gaismas diodes un rezistora pielodēšanas pie paneļa savienojiet kopā visas gaismas diodes pozitīvās spailes. Pēc tam lodējiet vadus pa vienam pie katra rezistora gaismas diodes negatīvajos spailēs, lai vēlāk varētu tos pielodēt pie Arduino.

PIEZĪME. Šo soli var sajaukt. Atcerieties, ka tā vietā, lai savienotu visu zemi kopā, mēs savienojam visu pozitīvo spaili kopā un negatīvo spaili ar atsevišķo Arduino tapu. Tādējādi mēs kā zemi izmantojam Arduino GPIO tapu, nevis Vcc. Ja nejauši pievienojat to atpakaļ, neuztraucieties. Jūs varat mainīt visus HIGH uz LOW un LOW to HIGH ledcontrol funkcijā.

4. solis: slēdža sagatavošana (faktiski poga)

Slēdža sagatavošana (faktiski poga)
Slēdža sagatavošana (faktiski poga)
Slēdža sagatavošana (faktiski poga)
Slēdža sagatavošana (faktiski poga)
Slēdža sagatavošana (faktiski poga)
Slēdža sagatavošana (faktiski poga)

Slēdzim (es to saucu par slēdzi, jo es izmantoju mikro slēdzi, bet jūs zināt, ka tā ir spiedpoga), mums ir nepieciešams 4k7 nolaižamais rezistors un, protams, pats slēdzis. Ak, neaizmirstiet sagatavot dažus vadus. Sāciet, pielodējot rezistoru un stieples gabalu pie mikro-slēdža kopējās zemes (COM). Pēc tam pielieciet citu stieples gabalu pie mikro-slēdža parasti atvērtā (NO). Visbeidzot, pievienojiet rezistoram citu vadu. Nostipriniet to ar kādu karstu līmi.

Zināšanu stūris: Kāpēc mums ir nepieciešams nolaižamais rezistors?

"Ja jūs no visa atvienosit digitālo I/O tapu, gaismas diode var mirgot kļūdaini. Tas ir tāpēc, ka ieeja ir" peldoša " - tas ir, tā nejauši atgriezīsies vai nu HIGH, vai LOW. Tāpēc jums ir nepieciešama pievilkšanās vai nolaižamais rezistors ķēdē. " - Avots: Arduino tīmekļa vietne

5. darbība: LED sloksnes sagatavošana

LED sloksnes sagatavošana
LED sloksnes sagatavošana
LED sloksnes sagatavošana
LED sloksnes sagatavošana

LED sloksne ir paredzēta gultas sānu lampai, kas nav obligāta. Vienkārši savienojiet LED sloksni un bīdāmo slēdzi virknē, nekas īpašs.

6. darbība. Kapacitātes sensora sagatavošana

Kapacitātes sensora sagatavošana
Kapacitātes sensora sagatavošana
Kapacitātes sensora sagatavošana
Kapacitātes sensora sagatavošana
Kapacitātes sensora sagatavošana
Kapacitātes sensora sagatavošana
Kapacitātes sensora sagatavošana
Kapacitātes sensora sagatavošana

Labi, skatiet attēlu. Būtībā mēs vienkārši piestiprināsim vadu pie neliela alumīnija folijas gabala (jo alumīnija foliju nevar pielodēt), tad pielīmējiet to pie neliela montāžas dēļa gabala. Labs atgādinājums, pārliecinieties, ka neesat pilnībā pielīmējis alumīnija foliju. Atstājiet daļu no tā tiešai saskarei.

7. solis: barošanas avota sagatavošana

Barošanas avota sagatavošana
Barošanas avota sagatavošana
Barošanas avota sagatavošana
Barošanas avota sagatavošana
Barošanas avota sagatavošana
Barošanas avota sagatavošana

Tā kā kā barošanas avotu es izmantoju litija akumulatoru, man ir nepieciešams TP4056 modulis uzlādēšanai un aizsardzībai, kā arī pastiprinātāja pārveidotājs, lai pārveidotu spriegumu uz 9 V. Ja esat nolēmis izmantot 9V sienas adapteri, jums, iespējams, būs nepieciešama līdzstrāvas ligzda vai vienkārši pievienojiet to. Ņemiet vērā, ka pastiprinātāja rezistora vērtība ir paredzēta 9 V jaudai, un, ja vēlaties izmantot citu spriegumu, iespējams, būs jāmaina rezistors.

8. solis: savienojiet tos ar Arduino

To savienošana ar Arduino
To savienošana ar Arduino
To savienošana ar Arduino
To savienošana ar Arduino
To savienošana ar Arduino
To savienošana ar Arduino

Sekojiet shēmai! Sekojiet shēmai! Sekojiet shēmai!

Nepievienojiet nepareizu tapu, pretējā gadījumā viss kļūs dīvaini.

9. solis: iežogojums

Korpuss
Korpuss
Korpuss
Korpuss
Korpuss
Korpuss
Korpuss
Korpuss

Mana dizaina izmērs ir 6,5 cm*6,5 cm*8 cm, tāpēc tas ir nedaudz apjomīgs. Tas sastāv no priekšējā loga LED displejam un augšējā loga gultas lampai. Par manu dizainu skatiet attēlus.

10. solis: laika programmēšana

Image
Image
Programmēšanas laiks!
Programmēšanas laiks!

Lejupielādējiet manu skici zemāk un augšupielādējiet savā Arduino. Ja jūs nezināt, kā to izdarīt, neuztraucieties veikt šo projektu! Vienkārši joko, šeit ir laba apmācība par to: augšupielādējiet skici arduino

Pēc tam atveriet seriālo monitoru, un jums vajadzētu redzēt, ka tas izvada pašreizējo laiku. Lai iestatītu laiku, lūk, kā to izdarīt.

Lai iestatītu stundu: h, XX - kur xx ir pašreizējā stunda

Lai iestatītu minūti: min, XX - xx ir pašreizējā minūte

Lai iestatītu otro: s, XX

Lai iestatītu datumu: d, XX

Lai iestatītu mēnesi: pirmdiena, XX

Kad tiek izpildīts iepriekš minētais komentārs, tam jāatgriež tikko iestatītā vērtība. (Piemēram, iestatot stundu ar h, 15, sērijveida monitorā jāatgriež stunda: 15.

Kapacitātes sensoram, iespējams, tas būs jākalibrē, pirms tas darbosies. Lai to izdarītu, divreiz nospiediet mikro slēdzi un paskatieties uz seriālo monitoru. Tam vajadzētu izvadīt virkni skaitļu. Tagad uzvelciet pirkstu uz kapacitātes sensoru un skatiet, ņemiet vērā skaitļa diapazonu. Pēc tam mainiet mainīgo "captrigger". Pieņemsim, ka, nospiežot, jūs saņemat 20-30, pēc tam iestatiet captrigger uz 20.

Skice izmanto ADCTouch bibliotēku, pārliecinieties, vai tā ir instalēta.

11. solis: Korekcijas mehānisms

Korekcijas mehānisma laika periods manā kodā ir iestatīts uz to, kas man ir precīzs. Ja laiks joprojām nav precīzs, jums jāmaina mainīgā "corrdur" vērtība

Corrdur tagad pēc noklusējuma ir 0 jaunākajā atjauninājumā.

Corrdur vērtība nozīmē, cik milisekundes nepieciešamas, lai palēninātu vienu sekundi

Lai uzzinātu corrdur vērtību, izmantojiet formulu:

2000/(y-x)/x)

kur x = faktiskais pagājušais laiks un y = pulksteņa laiks, abas sekundes

Lai atrastu x un y vērtību, jums jāveic neliels eksperiments.

Iestatiet pulksteņa laiku uz faktisko laiku un ierakstiet sākotnējo laiku (faktiskajam sākotnējam laikam un pulksteņa sākuma laikam jābūt vienādam). Pēc kāda laika (dažas stundas) pierakstiet faktisko beigu laiku un pulksteņa beigu laiku.

x = faktiskais pēdējais laiks-sākuma laiks un y = pulksteņa pēdējais laiks-sākuma laiks

Pēc tam mainiet koda corrdur vērtību un atkārtoti ielādējiet to Arduino.

Pēc tam atkārtojiet testu, un šoreiz formula tika mainīta uz:

2000/((2/z)+(y-x/x))

Kur x un y ir tas pats, kas iepriekš, bet z ir pašreizējā vērtība.

Augšupielādējiet vēlreiz un atkārtojiet pārbaudi, līdz tas ir pietiekami precīzs.

Gadījumā, ja jūsu pulkstenis joprojām paātrina, pat ja Corrdur ir iestatīts uz 0 (tas nozīmē, ka nav koriģējoša mehānisma), otrais ++ jāmaina uz otro- koda koriģējošā mehānisma daļā (es to komentēju), iestatiet corrdur uz 0, tad atrodi nr. sekundes, lai paātrinātu vienu sekundi.

12. solis: kā izmantot visas funkcijas

Image
Image

Režīmu var mainīt, nospiežot mikro slēdzi.

Pirmajā režīmā tas vienkārši parāda laiku. Ja indikators mirgo 1 reizi sekundē, trauksme ir izslēgta. Ja 2 reizes sekundē, modinātājs ir ieslēgts. Modinātāju var atlikt uz 10 minūtēm pirmajā režīmā, nospiežot kapacitātes sensoru.

Otrajā režīmā tas parāda datumu. Kapacitātes sensora nospiešana neko nedara.

Trešajā režīmā varat iestatīt taimeri. Nospiežot kapacitātes sensoru, tiks ieslēgts taimeris, un jums vajadzētu redzēt, kā sāk mirgot indikators. Kapacitātes sensoru izmanto arī, lai iestatītu taimera laiku. Taimera diapazons ir no 1 minūtes līdz 59 minūtēm.

Ceturtajā režīmā varat iestatīt modinātāja stundu, izmantojot kapacitātes sensoru

Piektajā režīmā varat iestatīt modinātāja minūti, izmantojot kapacitātes sensoru.

Sestajā režīmā, nospiežot kapacitātes sensoru, minūte tiks atiestatīta uz 30 un sekunde uz 0, nemainot stundu. Tas nozīmē, ka, kamēr jūsu pulkstenis nepārsniedz 30 minūtes, varat to atkārtoti kalibrēt, izmantojot šo režīmu.

Septītais režīms ir nedarīšanas režīms gadījumā, ja kapacitātes sensors uzlādes laikā izslēdzas.

Ak, lai izslēgtu modinātāju, vienkārši nospiediet mikro slēdzi. (Nesenākais atjauninājums, lai iekļautu trauksmes signālu)

Nu, kā būtu ar pulksteņa lasīšanu? Tas ir viegli! Binārā pulksteņa lasīšana - Wikihow Sākumā jūs varētu justies dīvaini, bet jūs pie tā pieradīsit!

13. darbība. Secinājums

Secinājums
Secinājums
Secinājums
Secinājums

Kāpēc es sāku šo projektu. Sākotnēji tas ir tāpēc, ka man ir vecs digitālais pulkstenis, kas atrodas apkārt, un es vēlos to pārvērst par modinātāju. Diemžēl vecais pulkstenis izrādījās salauzts. Tāpēc es domāju, kāpēc neveidot tādu, izmantojot Arduino? Izmantojot nelielu Google meklēšanu, es atradu šo bināro pulksteņu projektu bez RTC, norādot Cello62. Tomēr tai nav modinātāja funkcijas, kuru es vēlos, tāpēc es paņemu kodu un pats to pārveidoju. Un projekts ir dzimis. Turklāt es nesen redzēju, ka pulksteņu konkurss norisinājās pēc pamācības, kas man deva vēl lielāku motivāciju to darīt. Jebkurā gadījumā šis joprojām ir mans pirmais projekts, kurā izmantoju Arduino, tāpēc virkne iespējamo uzlabojumu.

Turpmākie uzlabojumi:

1) Izmantojiet RTC

2) Iestatiet modinātāju vai laiku vai taimeri bezvadu režīmā!

3) Neatkarīgi no iezīmēm, par kurām es domāju

14. darbība. Atjaunināšana: pēc vienas nedēļas lietošanas

Atjauninājums: pēc vienas nedēļas lietošanas
Atjauninājums: pēc vienas nedēļas lietošanas
Atjauninājums: pēc vienas nedēļas lietošanas
Atjauninājums: pēc vienas nedēļas lietošanas
Atjauninājums: pēc vienas nedēļas lietošanas
Atjauninājums: pēc vienas nedēļas lietošanas

Ja neskaita acīmredzamo problēmu - laika novirzīšanos, nākamā, ko es teiktu, ir enerģijas patēriņš. Vispirms es paaugstinu spriegumu līdz 9v, ko pēc tam pazeminās lineārais regulators Arduino. Lineārais regulators ir ļoti neefektīvs. Pulkstenis ilgst tikai VIENU DIENU. Tas nozīmē, ka man tas ir jāuzlādē katru dienu. Tas nav lielākais darījums, līdz saprotat, ka visa sistēma ir tikai aptuveni 50% efektīva. Ņemot vērā, ka mana akumulatora jauda ir 2000 mAh, es varētu aprēķināt katru dienu izšķērdēto jaudu.

Enerģijas izšķiešana = (7.4Wh*10%)+(7.4Wh*90%*50%) = 4.07Wh dienā

Tas ir 1,486 kWh gadā! To var izmantot, lai uzvārītu 283 g ūdens (no 25 C līdz 100 C)? Bet jebkurā gadījumā es uzlabošu pulksteņa efektivitāti. Veids, kā to izdarīt, ir vispār neizmantot lineāro regulatoru. Tas nozīmē, ka mums ir jāpielāgo pastiprinātāja pārveidotājs, lai izvadītu 5V tieši Arduino 5V tapā. Tālāk, lai vēl vairāk samazinātu izšķērdēto jaudu, man ir jānoņem divi iebūvētie LED (pin13 un jauda), jo tie iztērēs 0,95Wh dienā. Diemžēl es esmu pilnīgi niecīgs pie SMD lodēšanas, tāpēc vienīgais veids, kā to izdarīt, ir nogriezt sliedi uz tāfeles. Pēc tam man ir jānoņem signāla rezistors uz skaņas signāla un gultas lampa (LED sloksne nedarbojas pie 5 V). Bet vai tas nozīmē, ka jums ir jāatsakās no šīs apbrīnojamās iezīmes? Nē! Šeit jums ir divas izvēles: izmantojiet parasto 5 mm LED diode vai 5 V LED sloksni. Bet man jau bija sajūta, ka esmu visu pagājušo nedēļu nodarbojies ar šo projektu, tāpēc nolēmu atteikties no šīs funkcijas. Tomēr es sākotnēji izmantoju slēdzi gaismas funkcijai, lai ieslēgtu vai izslēgtu pulksteņa paneli, lai vēl vairāk ietaupītu enerģiju, bet galu galā LED mirgo, kad to izslēdzu. Kļūda kļūst par iezīmi? Es nezinu (kāds zina, lūdzu, pastāstiet man zemāk).

Modifikācijas beigās pulkstenis tagad ilgst vairāk nekā 2 dienas!

Tālāk man ir mazāk nopietna problēma ar pulksteni. Uzlādes laikā kapacitātes sensors kļūtu traks, tāpēc es pievienoju citu režīmu, kas pilnīgi neko nedara.

Runājot par laika maiņu, tā kā ir ļoti neērti katru dienu pieslēgties datoram, lai to atiestatītu, esmu pievienojis vēl vienu režīmu, kas iestatīs minūti līdz 30 un sekundi līdz 0. Tas nozīmē, ka jūs varētu to atiestatīt pusstundā jebkurā stundā!

Ieteicams: