Агуулгын хүснэгт:

Өдрийн цагаар амар хялбар цаг: 7 алхам
Өдрийн цагаар амар хялбар цаг: 7 алхам

Видео: Өдрийн цагаар амар хялбар цаг: 7 алхам

Видео: Өдрийн цагаар амар хялбар цаг: 7 алхам
Видео: Сүнс гэж үнэхээр байдаг уу? 2024, Долдугаар сарын
Anonim
Өдрийн цагаар амар хялбар цаг
Өдрийн цагаар амар хялбар цаг
Өдрийн цагаар амар хялбар цаг
Өдрийн цагаар амар хялбар цаг

Түүх

Энэхүү төсөл нь Arduino Uno болон ганц 1602A LCD дэлгэц ашиглан програмчлал (кодчилол) сурахад надад тулгарч байсан тул би эхлээд Arduino -г нарийвчлалтайгаар хязгаарлахыг хүссэн юм. Энэ бол RTC модулийг ашиглахгүйгээр цаг бүтээх төсөл юм. хойшлуулах (); тушаал нь кодыг тодорхой хугацаанд зогсооно. Би кодоо хадгалах үндсэн цагийг боловсруулж байхдаа энэ нь жаахан энгийн зүйл байж магадгүй гэж бодож байсан тул зуны цагийн хэмнэлтийг шинэ зүйл болгон нэмж, энэ төслийг сонирхох сонирхлыг нэмэгдүүлэхээр шийдлээ. Эхэндээ энэ санаа нь шинэлэг зүйл байсан боловч би түүнтэй хамт ажиллаж, ширээн дээрээ гүйж буй физик цагийг харах тусам санаа нь илүү бодит болох болно. RTC модулийг нэмж, кодыг тохируулснаар энэ цаг нь олон жилийн турш үнэн зөв байх болно, ийм цаг худалдаж авдаг үйлдвэрлэгчид болон олон нийтэд маш бага зардлаар.

Зуны цагийн хуваарь буюу (DST) нь 100+ жилийн турш оршин тогтнож ирсэн (Google -ийн хувьд энэ нь нэлээд өнгөлөг түүхтэй). Би улс төрд орохыг хүсэхгүй байна, гэхдээ энэ бол энгийн хүмүүсийн (чи бид хоёрын) амьдралыг хөнгөвчилдөггүй бүдүүлэг, зовлонтой дасгал юм. Ихэнх тохиолдолд бид өдрийн цагаар илүү их цагийг өнгөрөөх дуртай байдаг, гэхдээ үүнийг хэрэглэх арга нь хэрцгий байдаг. Хуучны санаагаа шинэчлэх томоохон цаг болжээ.

Энэхүү жишээг дижитал эринтэй хамт амьдрахад хялбар бөгөөд технологийн дэвшил нь бүх төрлийн дижитал цагуудад хялбархан хэрэглэгддэг боловч аналог цагийг устгахад туслах болно. Стандарт хугацаанаас DST цаг руу 1 цаг үсрэхийн оронд DST цагаас стандарт цаг руу шилжихийн оронд энэ цаг нь өвлийн туйлаас зуны туйл хүртэл аажмаар аажмаар урагшилж, дараа жилээс дараагийн өвлийн туйлын туйлд стандарт цаг руу шилжихэд суурилдаг. Энэхүү шилжилт нь 6 сар тутамд 180 хоногийн хугацаанд хийгддэг бөгөөд тохируулга нь 360 хоногийн турш өдөрт 20 секунд, үлдсэн 5 эсвэл 6 хоног нь туйлын туйлын уртад нэмэгддэг. Миний жишээ энд 180 хоногийн мөчлөгийн хүрээнд гурван өдөр тутамд 1 минут 1 минут нэмэгддэг. Жил бүрийн 6 -р сарын 21 -ний өдөр цаг нь бүтэн 1 цаг урагшилдаг бөгөөд жил бүрийн 12 -р сарын 21 -ний өдөр цаг ердийн цаг руу буцдаг. Ялангуяа RTC ашигладаг бол үсрэх жилийг хялбархан тооцдог. Өмнөд хагас бөмбөрцөг нь энэ цагийг хялбархан дасан зохицдог бөгөөд слайд масштаб нь дэлхийн бөмбөрцгийн хойд хагасаас 6 сарын дараа л үе шатандаа ороогүй болно.

Дэлхий дээр экваторын бүс ба туйл байхгүй бол DST нь бараг л байх болно гэсэн гурван газар байдаг. Өдрийн гэрэл экваторын хувьд тийм ч их өөрчлөгддөггүй гэж би бодож байна, халуун орны аль ч газар DST ашигладаг бөгөөд шонгууд өөр түүх болж хувирдаг эсэхийг би мэдэхгүй байна, ямар ч байсан туйл дээр 'ЯГ' цаг хэд болж байна вэ?

Алхам 1: Цагны тухай

Цагийн тухай
Цагийн тухай
Цагийн тухай
Цагийн тухай

Миний бүтээсэн цаг нь олон улсад хүлээн зөвшөөрөгдсөн дэлхийн цагнаас огт өөр байдаггүй стандарт цаг дээр үндэслэсэн бөгөөд үүнийг 1602 LCD дэлгэцийн эхний мөрөнд харуулав. Хоёрдахь мөр нь ижил цагийн хуваарь боловч нэг туйлын туйлаас нөгөөд шилжих минутуудыг харуулдаг. Өвлийн туйлаас зуны туйл хүртэл унтраах багц гурван өдөр тутамд нэг минут, дээд тал нь жаран минут хүртэл нэмэгддэг. Зуны туйлаас өвлийн туйл хүртэл өвлийн туйл хүртэл тогтоосон хугацаа гурван өдөр тутамд нэг минут буурч, стандарт цаг болон DST цаг ижил болно.

Энэ жишээнд би цэргийн цаг (24 цаг), стандарт цаг (12 цаг) AM ба PM -ийг ашиглан 24 цагийн цагийн хуваарийг мэдэхгүй хүмүүст туслахын тулд DST -ийн өдрийн дугаарыг харуулах боломжийг өгсөн. -аас тохируулах. Кодыг 12 цагийн цагийг харуулахын тулд өөрчилж болно. Би цагийг тохируулахын тулд дижитал тээглүүр 2, 3, 4 -т холбогдсон гурван товчлуурыг нэмсэн. Эдгээр товчлуурууд зөвхөн секунд, минут, цагийг нэмэгдүүлэх болно. Товчлуурууд нь заавал байх ёстой, хэрэв та товчлуурыг залгахгүй бол кодыг өөрчлөх шаардлагагүй бол цаг сайн ажиллах болно. Би секундыг тохируулахын тулд дор хаяж товчлуур ашиглахыг зөвлөж байна, хэрэв нарийвчлалд хүрэх боломжгүй бол цагийг удаан талд байлгавал товчлуур нь секундэд 1 секунд урагшлах болно.

Хэрэв та цагийг Arduino IDE -ээс эхлүүлэх юм бол ноорог ачаалагдах ба ачаалахад 5.5-6 секунд шаардагдах бөгөөд хэрэв та ноорогоо Arduino -д ачаалж өгвөл хананд суулгаж өгөх буюу тэжээлийн хангамжид 2.5 -аас 2.5 минут зарцуулна. Ачаалж, ажиллуулахад 3 секунд байна.

Цагийг ажиллуулахад бэлэн болгоход гараар тохируулах шаардлагатай болно.

Энэ цаг нь RTC модулийг ашигладаггүй бөгөөд тунг "delay ();" тушаалууд.

Хэрэв та RTC -ийг Arduino -тэй ашиглах дуртай бол энэ ойлголтыг ашиглах боломжтой хэвээр байна. RTC нь EDSC -ийн хугацааг нэмэх шаардлагатай бүх мэдээллийг танд өгөх болно. Код нь RTC модулийн хувьд огт өөр байж магадгүй, би үүнийг хараагүй байна. Хэрэв та ингэвэл та бие дааж чадна, гэхдээ энэ бол тархиа дасгалжуулах гайхалтай арга юм.

Алхам 2: Танд хэрэгтэй зүйл

Танд хэрэгтэй зүйл
Танд хэрэгтэй зүйл
Танд хэрэгтэй зүйл
Танд хэрэгтэй зүйл
Танд хэрэгтэй зүйл
Танд хэрэгтэй зүйл

ХУДАЛДАН АВАХ БҮТЭЭГДЭХҮҮНИЙ ЖАГСААЛТ

1 Arduino Uno эсвэл Mega2569 (I2C тээглүүр нь UNO дээр A4 ба A5, 2560 мега дээр 20 ба 21 байна)

Бараг бусад Arduino ажиллах ёстой, ашигласан тээглүүрүүд өөр байж болно. Үүний тулд аливаа хяналтын самбар ажиллах болно. Та тухайн самбар эсвэл үйлдвэрлэгчийн кодыг дахин бичих шаардлагатай болно.

1 1602 LCD дэлгэц (таны сонгосон өнгө)

Би LCD дэлгэцтэй I2C арын хайрцгийг ашигладаг бөгөөд үүнийг тохируулах нь илүү хялбар бөгөөд хурдан байдаг.

Холбогч утас

ОНЦГОЙ ХАНГАМЖ

1 дунд хэмжээтэй талхны хавтан

1-3 түр зуурын холбоо барих товчлуур

1-3 10 к ом эсэргүүцэл

Энэхүү зааварчилгаа нь маш урт тул би цагийг харуулдаг байсан бэхэлгээ эсвэл шүүгээнд орохгүй. Хэрэв та энэ төсөлд дуртай бөгөөд байнгын хувилбар хийхийг хүсч байвал үүнийг өөрийн хүссэн загвараар хий. Энэ загвар надад төгс төгөлдөр юм, учир нь надад хэрэгтэй бүх зүйл хогны хайрцганд байсан бөгөөд надад гадаад төрх нь таалагддаг.

ТАЙЛБАР:

Цахилгаан тасрахаас урьдчилан сэргийлэхийн тулд миний эцсийн цагийг гадаа байгаа нарны хавтангаар тэжээдэг. Нарны хавтан нь хэт цэнэглэхээс урьдчилан сэргийлэхийн тулд зохицуулагчаар цэнэглэгдсэн 12 вольтын батерейг хадгалдаг. Энэхүү батерей нь USB портын хажууд байрлах цахилгаан залгуураар Arduino -тэй холбогддог. Зайны цэнэгийг бууруулахын тулд би USB портийг сүлжээнд холбосон хэвээр байлгадаг. Цахилгааны хоёр эх үүсвэрийг Arduino -д гэмтэл учруулахгүйгээр нэгэн зэрэг ашиглах боломжтой. 12 вольтын батерейг хамгийн ихдээ 14.5 вольт хүртэл цэнэглэх боломжтой бөгөөд энэ нь Arduino -ийн хувьд хэт өндөр үзүүлэлт юм. Миний цэнэглэдэг 12 вольт батерей нь өдрүүд бүрхэг байвал 3, 4 хоног ажиллах болно. Миний ашигладаг зохицуулагч нь батерейны хүчдэл 11 вольт хүртэл буурвал Arduino -ийн хүчийг бууруулна. Надад байгаа батерей нь жижиг автомашины батерейны дөрөвний нэг орчим хэмжээтэй, худалдааны зориулалттай байшингийн яаралтай гэрлийн системээс ирдэг. Хэрэв та машины батерейг ашиглахаар төлөвлөж байгаа бол агааржуулалт сайтай газар (гадна талд) байлгахаа мартуузай, машины батерей нь цэнэглэх, цэнэглэх явцад устөрөгч, хүчилтөрөгчийн хий ялгаруулдаг.

АНХААРУУЛГА

ЗАЙГАА ХАМГААЛААРАЙ

Агааржуулалттай талбай, ГАДААД

Алхам 3: Цахилгааны утас

Цахилгаан утас
Цахилгаан утас

Би энэ төслийн бүх холболтын схемийг өгсөн болно, хэрэв та талхны самбар ашиглавал танд дунд оврын самбар хэрэгтэй болно.

1602 LCD дэлгэц нь энгийн байдлаар I2C арын хайрцагтай бөгөөд хэрэв та SPI холболтыг ашигладаг бол үүнийг хэрхэн ашиглахаа хайж, ноорогны эхэнд кодоо өөрчлөх шаардлагатай болно. Би SPI холболтыг хэзээ ч ашиглаж байгаагүй тул 3 товчлуур дээр 2, 3, 4 -р зүү байхгүй байж магадгүй юм.

Гурван товчлуур нь цагны цагийг тохируулахад хэрэглэгддэг. Тэд зөвхөн цагийг урагшлуулдаг (AHEAD). Төгсгөлийн тохиргоонд цагийг удаан тал дахь код дээр хадгална (өдөрт 1-2 секунд эсвэл хэдэн өдөр), ингэснээр шаардлагатай бол хугацааг уртасгаж болно. Товчлуур бүрийг нэг секундэд, доод товчлуурыг секундэд 2 секунд, дунд товчлуурыг секундэд 1 минут, дээд товчлуурыг 1 цаг тутамд урагшлуулна. Нэлээд өндөр нарийвчлалтай байх боломжтой тул та үүнийг дахин дахин тохируулах шаардлагагүй болно.

Хэрэв та секунд, минут, цагийг тохируулж байгаа бол (жишээ нь минут 58, 59, 00 -ийг ахисан бол) дараагийн цаг руу шилжих болно.

Эдгээр гурван товчлуур нь цагны сүүлийн минутын нэмэлт бөгөөд сайн ажилладаг боловч илүү сайн арга байж болох юм. Хэрэв та кодын энэ хэсгийг замбараагүй болговол "delay ();" гэдгийг санаарай. тушаалыг ашиглах боломжгүй. Цаг хугацаа өнгөрөхөд сэлгэн залгах, хачин үсрэлт хийх талаар санаа зовох хэрэггүй тул би энэ аргыг хэрэглэсэн.

Алхам 4: Дэлгэц юу харуулдаг вэ

Дэлгэц юу харуулж байна
Дэлгэц юу харуулж байна

Би 1602 LCD дэлгэц дээр маш их мэдээлэл оруулсан бөгөөд үүнд тайлбар хэрэгтэй байна.

1 -р мөр эсвэл кодоор ярихдаа тэг '0' мөр нь стандарт хугацааг харуулдаг. Зүүн талд 'STD' байгаа бөгөөд энэ нь 'STandarD' цагийг илэрхийлнэ.

Дараагийн эхний мөрөнд таны орон нутгийн стандарт цаг байна. Өдрийн цагаар эхэлж болохгүй, цаг нь үүнийг хоёр дахь мөрөнд харуулна.

Энэ цагийн хуваарь нь 12 цагийн цаг тул баруун талд нь 'AM эсвэл' PM 'байх нь өглөө эсвэл үдээс хойш байгааг илтгэнэ.

2 -р мөр эсвэл кодоор ярихдаа 1 '1' мөрөнд тухайн жилийн өдрөөс хамаарч өөр өөр байдаг зуны цагийн хэмнэлийг харуулдаг. Зүүн талд байгаа "DST" нь "Зуны цагийн хуваарь" гэсэн утгатай.

Хоёрдахь шугамын дунд таны орон нутгийн цэргийн цаг 24 цагийн цаг байна. Жишээлбэл, үүнийг "өө зургаан зуун цаг" гэж нэрлэхийг та сонсох болно.

Баруун талд нь өвлийн туйлын туйлын дагуу тэмдэглэдэг жилийн өдөр, Хойд хагас бөмбөрцөгт 12 -р сарын 21 (ойролцоогоор) нь 0 -ний өдөр, хагас бөмбөрцгийн өмнөд хэсэгт 6 -р сарын 21 (ойролцоогоор) нь 0 -ний өдөр юм.

Би цагийг анх тохируулахдаа хоёр.pdf файлыг лавлах зорилгоор өгсөн. Таны амьдарч буй хагас бөмбөрцөгт хамаарах файлыг сонгоно уу.

Баруун талын гурван товчлуурыг доороос дээш секунд, минут, цаг болгон нэмнэ.

Алхам 5: Sketch тохиргоо

Эскизийн тохиргоо
Эскизийн тохиргоо

Анх эхлүүлэхийн тулд хэд хэдэн мөр оруулах шаардлагатай байдаг. Эдгээр зургуудын заримыг цагийг салгаж, ноорог дээрх хувьсагчдын утгыг өөрчлөх бүрт өөрчлөлт оруулах шаардлагатай болдог. Хэрэв та IDE -ийн цагийг эхлүүлбэл ачаалах ба эхлүүлэхэд 6 секунд орчим хугацаа шаардагдана. Хэрэв та IDE -ээс ноорог ачаалж байвал цагийг салгаад хананы хорхой эсвэл тэжээлийн эх үүсвэрээс дахин эхлүүлснээр ноорог ойролцоогоор 2.5 секундын дотор асах болно.

11 -р мөр LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

Энэ мөр нь LCD дэлгэц рүү хандаж, I2C арын багцын зөв хаягийг тохируулна. 0x27 бол миний худалдаж авсан арын багцын хаяг юм. Хэрэв та цагийг асааж байгаа боловч өгөгдөл харагдахгүй байгаа ч хаягийг асааж байгаа бол LCD дэлгэц дээр өөр байж магадгүй юм. Би LCD арын хайрцгийнхаа хаягийг хэрхэн өөрчлөх эсвэл хаягийг хэрхэн олох тухай тайлбарыг доорх линкээр оруулах болно.

Мөр 24 int минутSt = 35;

Стандарт цагны эхлэх минутыг тохируулах цагийг тохируулахын тулд ихэвчлэн цаг эхлэхээс 5 минутын өмнө тохируулна.

Мөр 25 int hourSt = 18;

Цагийг БЗХӨ -ний цагт тохируулна уу (24 цагийн цаг) эхэлж байна. 18.00 нь 18.00 байх болно.

26 -р мөр DSTdays = 339;

Оршин суугаа "Хойд ба Өмнөд хагас бөмбөрцөг" pdf файлыг (Easy DST Clock Time Scale) татаж аваад лавлаж, огноог хайж олоод # өдөр энэ мөрөнд оруулна уу. (Зүүн багана). Жишээ (11 -р сарын 24 бол Хойд хагас бөмбөрцгийн 339 дэх өдөр, Өмнөд хагас бөмбөрцгийн 156 дахь өдөр)

Шугам 27 int DSTyear = 2019;

Энэ оныг оруулна уу.

92 -р мөр бол ((masterTime - previousMasterTimeSt> = 1000) && (microTime - previousMicroTimeSt> = 500)) {

"ӨмнөхMasterTimeSt" -ийг миллисекундын тоотой харьцуулах шаардлагатай бөгөөд ингэснээр "1000" нь Arduino самбарын дотоод цагнаас хамаарч 999 болж өөрчлөгдөж, цагийг нарийн тааруулахын тулд өмнөхMicroTime -ийг тохируулах шаардлагатай болж магадгүй юм. Дотоод цаг нь 16MH боловч нэг самбараас нөгөөд шилжих боломжтой.

"ӨмнөхMicroTimeSt" нь дотоод цагийг нарийн тааруулж, 1 секундийг зөв тоолоход тусалдаг. Хэрэв цаг хэт хурдан байвал микросекундыг нэмэгдүүлж, хэт удаан байвал микросекундийг бууруулж, шаардлагатай бол миллисекундыг 999 болгон бууруулж, 999, 990 орчимд микро секундийг эхлүүлээрэй эсвэл хурдыг нэмэгдүүлнэ үү.

Arduino самбар бүр арай өөр хурдтай тул эдгээр самбарууд таны ашиглаж буй самбар бүрт өөрчлөгдөх болно. Кодын нэг хэсгийг хараахан туршиж амжаагүй байгаа бөгөөд энэ нь үсрэх жил бүрийг харгалзах 248 мөр юм. Дараагийн хэдэн долоо хоногт би үүнийг туршиж, шаардлагатай бол өөрчлөлт оруулах болно.

Алхам 6: Эцсийн тэмдэглэл

Эцсийн тэмдэглэл
Эцсийн тэмдэглэл

Энэ төслийг бүтээхэд хялбар боловч кодын үзэл баримтлал, шаардлагатай тохируулга нь даалгавар байж магадгүй, цаг заваа гаргаж, сайн бодож үзээрэй, цаг 2037 оныг дуустал дуусахгүй. Би анхааралтай ажиглах болно. Зарим хүмүүс байх болно гэдэгт итгэлтэй байгаа тул асуултуудад имэйл бичээрэй, би утга зохиолын суут ухаантан биш тул миний зарим тодорхойлолт бага зэрэг шавартай байж магадгүй юм.

Үүнд.pdf гэсэн хоёр файл багтсан бөгөөд таны амьдарч буй хагас бөмбөрцгийн файлыг татаж аваарай, энэ файл нь цагийг зөв эхлүүлэхэд шаардлагатай мэдээллийг өгөх болно.

Мэдээллийг ноорог дээр ашигласнаар 2004A LCD дэлгэц дээр зөвхөн стандарт цаг, DST цаг төдийгүй өдөр, огноог харуулахад хялбар болно. Хэрэв танд энэ төслийн санал болгож буй бэрхшээлүүд таалагдаж байвал 2004A LCD дэлгэцийг холбож үзээрэй, дараа нь нэмэлт мэдээллийг харуулахын тулд кодыг нэмж оруулаарай.

Би энэ төсөлд бүх талаараа хамрагдахыг хичээсэн боловч дэлхийн гурван хэсгийг олж мэдсэн. Хойд туйл, Өмнөд туйл ба Экватор.

Хойд эсвэл Өмнөд туйлд DST шаардлагатай эсвэл бүр боломжтой юу?

Хойд эсвэл Өмнөд туйлд хэдэн цаг болж байна вэ?

Хойд туйл эсвэл Өмнөд туйлаас гарахын тулд та ямар чиглэлд явах вэ?

Өмнөд туйлаас Австрали, Хойд Америк, Европ эсвэл Азид хүрэхийн тулд ямар чиглэлд явах вэ?

Санта Клаус ямар цагийн бүсэд амьдардаг вэ?

Түүнд DST хэрэгтэй юу?

Хойд туйлд хэдэн цаг болж байна вэ?

Санта бүх бэлгээ хүргэхийн тулд ямар чиглэлд явдаг вэ?

DST нь ямар өргөрөгт үр дүнтэй байдаг вэ?

Одоо Экваторын хувьд;

Энэ цагийг экваторт ашиглах боломжтой юу?

Тэд Хойд эсвэл Өмнөд хагас бөмбөрцгийн масштабыг ашиглах уу?

Өвлийн туйл, зуны туйлын цаг хэд вэ?

DST нь ямар өргөрөгт үр дүнтэй байдаг вэ?

Оцон шувуунд DST хэрэгтэй юу?

Эдгээр асуултын талаар бодоход намайг хачин санагдаж байна уу?

Бүгдэд нь барилга барихад баяртай байна!

филмут

Алхам 7: Бусад холбоосууд

Энэ бол I2C арын багцын хаягийг тодорхойлох эсвэл өөрчлөх холбоос юм.

www.instructables.com/id/1602-2004-LCD-Adapter-Addressing/

PiotrS нь I2C техник хангамжийн хаягийн талаар маш сайн зааварчилгаа бичсэн

playground.arduino.cc/Main/I2cScanner

Энэ линк нь таны I2C төхөөрөмжийг сканнердаж, хаягийг буцаана

Зөвлөмж болгож буй: