Агуулгын хүснэгт:
- Алхам 1: Ажлын зарчим
- Алхам 2: Ажлын зарчим
- Алхам 3: Практик дизассембл хийх 1
- Алхам 4: Практик дизассембл хийх 2
- Алхам 5: Практик дизассембл хийх 3
- Алхам 6: Практик дизассембл хийх 4
- Алхам 7: Практик дизассембл хийх 5
- Алхам 8: Практик дизассембл хийх 6
- Алхам 9: Ханын цаг ашиглах жишээ
- Алхам 10: Ханын цаг ашиглах жишээ PIC
- Алхам 11: Ханын цаг ашиглах жишээ Arduino
- Алхам 12: Төмөр замчдын загвар хангамжийн хурдан цаг
- Алхам 13: Програм хангамж
- Алхам 14: Сонирхол
Видео: Гар ханын цагаар тоглох: 14 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Цахим гар ханын цаг (худалдааны тэмдэглэгээний кварц) нь өнөө үед онцгой зүйл биш юм. Үүнийг олон дэлгүүрээс худалдаж авч болно. Тэдний заримд нь маш хямд байдаг; ойролцоогоор 2 евро (50 крон) үнэтэй. Энэ хямд үнэ нь тэднийг илүү сайн судлах сэдэл болно. Дараа нь эдгээр нь тийм ч их нөөцгүй, ихэвчлэн програмчлах сонирхолтой электроникийн хувьд сонирхолтой тоглоом байж болохыг би ойлгосон. Гэхдээ өөрийнхөө хөгжлийг бусдад танилцуулахыг хүсч байна. Хямдхан ханын цаг нь туршилт, анхан шатны туршилтыг тэсвэрлэдэг тул би энэ нийтлэлийг бичихээр шийдсэн бөгөөд энд би үндсэн санаануудаа танилцуулахыг хүсч байна.
Алхам 1: Ажлын зарчим
Хөдөлгөөн хийхэд ямар нэгэн шатлалт мотор ашигладаг цагийг танихад хялбар байдаг. Зарим цагийг аль хэдийн задалсан хүн ердийн stepper моторт хоёр биш харин зөвхөн нэг ороомог болохыг хүлээн зөвшөөрсөн. Энэ тохиолдолд бид "нэг фазын" эсвэл "нэг туйлтай" stepper моторын тухай ярьж байна. (Энэ нэрийг тийм ч их ашигладаггүй, энэ нь ихэвчлэн бусад бүрэн овоолсон моторт ашигладаг тэмдэглэгээний аналоги юм). Ажлын зарчмын талаар аль хэдийн бодож эхэлсэн хүн мотор нь үргэлж зөв чиглэлд эргэлддэг, энэ нь яаж боломжтой вэ гэж асуух ёстой. Ажлын зарчмын хувьд хуучин төрлийн моторыг харуулсан дараах зургийн тайлбарыг ашиглах нь зүйтэй.
Эхний зураг дээр A ба B терминал, саарал статор, улаан цэнхэр ротортой нэг ороомог харагдаж байна. Роторыг байнгын соронзоор хийдэг бөгөөд энэ нь яагаад өнгөөр тэмдэглэгдсэн, харагдахуйц, ямар чиглэлд соронзждог (энэ нь тийм ч чухал биш, хойд туйл, өмнөд хэсэг) юм. Статор дээр роторын ойролцоо хоёр "ховил" байгааг харж болно. Тэд ажиллах зарчмын хувьд маш чухал юм. Мотор дөрвөн үе шаттайгаар ажилладаг. Бид алхам бүрийг дөрвөн зураг ашиглан тайлбарлах болно.
Эхний алхамд (хоёр дахь зураг) хөдөлгүүрийг асаахад А терминал нь эерэг туйлтай, В терминал нь сөрөг туйлтай холбогддог. Энэ нь соронзон урсгалыг бий болгодог, жишээлбэл сумны чиглэлд. Ротор байрлал дээр зогсох бөгөөд энэ байрлал нь соронзон урсгалтай тохирч байх болно.
Хоёр дахь алхам нь цахилгаан тасарсны дараа хийгддэг. Дараа нь статор дахь соронзон урсгалыг зогсоож, соронз нь байрлал руу эргэх хандлагатай байдаг тул туйлшрал нь хамгийн их эзэлхүүнтэй статорын соронзон зөөлөн материалын чиглэлд байдаг. Мөн эдгээр хоёр ховил нь маш чухал юм. Тэд хамгийн их эзлэхүүний жижиг хазайлтыг зааж байна. Дараа нь роторыг цагийн зүүний дагуу бага зэрэг эргүүлнэ. Зураг 3 дээр үзүүлсэн шиг.
Дараагийн алхам (дөрөв дэх зураг) нь хүчдэлтэй холбогдсон урвуу туйлтай (А терминалаас сөрөг туйл руу, В терминалаас эерэг туйл руу). Энэ нь ротор дахь соронз нь соронзон орны чиглэлд ороомогоор эргэлддэг гэсэн үг юм. Ротор нь хамгийн богино чиглэлийг ашигладаг бөгөөд энэ нь дахиад цагийн зүүний дагуу юм.
Сүүлчийн (дөрөв дэх) алхам (тав дахь зураг) нь хоёрдахьтай ижил байна. Мотор дахин хүчдэлгүй байна. Ганц ялгаа нь соронзны эхлэх байрлал эсрэг байрлалтай боловч ротор дахин материалын хамгийн их эзлэхүүн рүү шилжих болно. Энэ нь дахиад цагийн зүүний дагуу бага зэрэг байрлана.
Энэ бол бүх мөчлөг бөгөөд эхний алхам дахин давтагдана. Хөдөлгүүрийн хөдөлгөөний хувьд хоёр ба дөрөв дэх алхамууд нь тогтвортой гэж ойлгогддог. Дараа нь механикаар 1:30 хурдны хайрцгаар цагны хоёр дахь гарны байрлал руу шилждэг.
Алхам 2: Ажлын зарчим
Зураг нь моторын терминал дээрх хүчдэлийн долгионы хэлбэрийг харуулж байна. Тоонууд нь бүх секундийг хэлнэ. Бодит байдал дээр импульс нь орон зайтай харьцуулахад хамаагүй бага байдаг. Эдгээр нь миллисекундуудын нэг юм.
Алхам 3: Практик дизассембл хийх 1
Би практик дизассембл хийх зорилгоор зах зээл дээрх хамгийн хямд ханын цагийг ашигласан. Тэдэнд цөөн тооны давуу тал бий. Нэг нь, энэ үнэ нь маш бага тул бид туршилтанд зориулж цөөн хэдэн зүйлийг худалдаж авч болно. Үйлдвэрлэл нь үнэд чиглэсэн байдаг тул нарийн төвөгтэй ухаалаг шийдэл, нарийн төвөгтэй эрэг агуулаагүй болно. Бодит байдал дээр тэдгээр нь ямар ч эрэг агуулаагүй бөгөөд зөвхөн хуванцар товчлуураар дардаг. Бидэнд зөвхөн хамгийн бага хэрэгсэл хэрэгтэй. Жишээлбэл, бидэнд эдгээр түгжээг тайлахад халив хэрэгтэй болно.
Ханын цагийг задлахын тулд бидэнд хавтгай халив (эсвэл бусад цоолох саваа), хувцасны хавчаар, ирмэгийг нь дээш өргөх ажлын дэвсгэр хэрэгтэй (энэ нь заавал байх албагүй, гэхдээ дугуй болон бусад жижиг хэсгүүдийг хайх ажлыг илүү хялбар болгодог).
Алхам 4: Практик дизассембл хийх 2
Ханын цагны ар талд гурван түгжээ байдаг. 2 ба 10 тоонуудын байрлал дахь хоёр дээд хаалгыг онгойлгож, тагны шилийг онгойлгож болно Шил нээлттэй байхад цагийн зүүг татах боломжтой. Тэдний байр суурийг тэмдэглэх шаардлагагүй. Бид тэднийг үргэлж байрлал руу нь буцаах болно 12:00:00 Цагийн зүү унтраасан үед бид цагийн хөдөлгөөнийг салгаж чадна. Энэ нь хоёр түгжээтэй (6 ба 12 -р байрлалд). Хөдөлгөөнийг аль болох шулуун татахыг зөвлөж байна, эс тэгвээс хөдөлгөөн гацах болно.
Алхам 5: Практик дизассембл хийх 3
Дараа нь хөдөлгөөнийг нээх боломжтой. Энэ нь гурван түгжээтэй. 3 ба 9 цагийн байрлалд хоёр, дараа нь 6 цагт гуравдугаарт. Нээх үед мотор ба хурдны хайрцгийн хоорондох тунгалаг хүрд, дараа нь хөдөлгүүрийн ротортой холбогдсон бүлүүрийг салгахад хангалттай.
Алхам 6: Практик дизассембл хийх 4
Мотор ороомог ба статорыг зөвхөн нэг түгжээнд барьдаг (12 цагт). Энэ нь ямар ч цахилгаан төмөр замд хамаарахгүй, цахилгаан даруулгад зөвхөн даралтаар ашиглагддаг тул зайлуулах нь тийм ч төвөгтэй биш юм. Ороомог нь статор дээр ямар ч эзэмшигчгүйгээр урсгалтай байдаг. Үүнийг амархан хөөргөж болно.
Алхам 7: Практик дизассембл хийх 5
Ороомогны доод талд зургаан гаралттай нэг CoB (Chip on Board) агуулсан жижиг хэвлэмэл хэлхээний самбар наасан байна. Хоёр нь цахилгаан эрчим хүчний зориулалттай бөгөөд цахилгаан төмөр замыг ашиглахын тулд илүү том дөрвөлжин дэвсгэр дээр тавьдаг. хоёр гаралт болортой холбогдсон байна. Дашрамд дурдахад болор нь 32768 Гц давтамжтай бөгөөд ирээдүйд ашиглахын тулд гагнуур хийх боломжтой. Сүүлийн хоёр гаралт нь ороомогтой холбогдсон байна. Усан онгоцны ул мөрийг таслах, одоо байгаа дэвсгэрт байгаа утсыг гагнах нь надад илүү аюулгүй санагдсан. Би ороомогыг задлахгүй, утсыг шууд ороомогтой холбохыг оролдохдоо би үргэлж ороомгийн утсыг таслах эсвэл ороомог гэмтээж байв. Шинэ утсыг самбар дээр гагнах нь боломжийн нэг юм. Илүү энгийн гэж хэлье. Илүү бүтээлч арга бол ороомогыг цахилгаан дэвсгэрт холбох, батерейны хайрцагт холбох төмөр замыг үргэлжлүүлэн хийх явдал юм. Дараа нь цахилгаан хэрэгслийг батерейны хайрцагт хийж болно.
Алхам 8: Практик дизассембл хийх 6
Гагнуурын чанарыг омметр ашиглан шалгаж болно. Ороомог нь ойролцоогоор 200Ω эсэргүүцэлтэй байдаг. Бүх зүйл хэвийн болсны дараа бид хананы цагийг буцааж угсардаг. Би ихэвчлэн цахилгаан төмөр замыг хаядаг, дараа нь надад шинэ утаснуудаа байрлуулах газар илүү их байдаг. Цахилгаан хашлага шидэхээс өмнө зураг авдаг. Тэднийг хасах үед би дараагийн зургийг авахаа мартдаг.
Хөдөлгөөнийг хийж дуусаад би үүнийг хоёр дахь цагийн гараар туршиж байна. Би гараа тэнхлэг дээрээ тавиад хүчээ холбоно уу (би CR2032 зоосны батерей ашигласан, гэхдээ АА 1, 5В -ийг бас ашиглаж болно). Зүгээр л хүчийг нэг туйлт утсаар холбож, дараа нь эсрэг туйлтай холбоно уу. Цаг товшиж, гар нэг секундын турш хөдөлнө. Хөдөлгөөнийг дуусгахад асуудал гарсны дараа утаснууд илүү их байр эзэлдэг тул зүгээр л эргүүлээд ороомог шоргоолжийг эсрэг талд нь тавь. Цахилгаан төмөр зам ашиглаагүй бол цагны хөдөлгөөнд ямар ч нөлөө үзүүлэхгүй. Өмнө дурьдсанчлан, гараа буцааж тавихдаа 12:00:00 цаг хүртэл зааж өгөх ёстой. Энэ бол цагийн зүүний хоорондох зайг зөв тогтоох явдал юм.
Алхам 9: Ханын цаг ашиглах жишээ
Ихэнх энгийн жишээнүүд нь цагийг харуулдаг, гэхдээ янз бүрийн өөрчлөлттэй байдаг. Өөрчлөлтийг "Vetinari Clock" гэж нэрлэдэг. Ноён Ветинаригийн хүлээлгийн өрөөнд хананы цаг байдаг Терри Пратчетт номыг зааж өгөхөд энэ нь тогтмол биш юм. Энэ жигд бус байдал нь хүлээж буй хүмүүсийг бухимдуулдаг. Хоёр дахь алдартай програм бол "синусын цаг" юм. Энэ нь синусын муруй дээр үндэслэн хурдасгаж, удаашруулдаг цаг гэсэн үг бөгөөд дараа нь хүмүүс долгион дээр хөвж байгааг мэдэрдэг. Миний хамгийн дуртай зүйл бол "үдийн цайны цаг" юм. Энэхүү өөрчлөлт нь өдрийн цагаар эрт хооллохын тулд цаг нь 11-12 цаг (0.8 сек) хооронд бага зэрэг хурдан явдаг гэсэн үг юм. үдийн хоолны үеэр 12-13 цаг (1, 2 сек) хооронд бага зэрэг удааширч, үдийн хоолонд илүү их цаг зарцуулж, алдсан цагаа нөхөх.
Ихэнх өөрчлөлтүүдийн хувьд 32768 Гц давтамжтай хамгийн энгийн процессорыг ашиглахад хангалттай. Энэхүү давтамж нь цаг үйлдвэрлэгчдийн дунд маш их алдартай байдаг, учир нь ийм давтамжаар болор хийхэд хялбар байдаг бөгөөд үүнийг хоёр секундын дотор хуваахад хялбар байдаг. Энэ давтамжийг процессорт ашиглах нь хоёр давуу талтай: бид болорыг цагнаас хялбархан эргүүлэх боломжтой; болон процессорууд ихэвчлэн энэ давтамжийг хамгийн бага зарцуулдаг. Хэрэглээ гэдэг бол ханын цагаар тоглохдоо бидний байнга шийддэг зүйл юм. Ялангуяа хамгийн жижиг батерейгаас цагийг аль болох урт хугацаанд ашиглах боломжтой байх. Өмнө дурьдсанчлан ороомог нь 200Ω эсэргүүцэлтэй бөгөөд cca 1, 5V (нэг АА батерей) зориулагдсан. Хамгийн хямд процессорууд нь ихэвчлэн бага хүчдэлтэй ажилладаг, гэхдээ бүгдээрээ ажилладаг 3 батерейтай (3V). Манай зах зээл дээрх хамгийн хямд процессорын нэг бол Microchip PIC12F629 буюу маш алдартай Arduino модулиуд юм. Дараа нь бид хоёр платформыг хэрхэн ашиглахыг харуулах болно.
Алхам 10: Ханын цаг ашиглах жишээ PIC
PIC12F629 процессор нь 2.0V - 5.5V хүчдэлтэй. Хоёр "миньон батерей" = AA эсүүд (cca 3V) эсвэл хоёр АА цэнэглэдэг АА аккумлятор (cca 2, 4V) ашиглахад хангалттай. Гэхдээ цагны ороомгийн хувьд энэ нь төлөвлөснөөс хоёр дахин их юм. Энэ нь хамгийн багадаа хүсээгүй хэрэглээ нэмэгдэхэд хүргэдэг. Дараа нь хүчдэл хуваагчийг бий болгох хамгийн бага цуврал эсэргүүцэгчийг нэмэх нь зүйтэй юм. Резисторын утга нь аккумляторын чадлын хувьд ойролцоогоор 120Ω, батерейны чадлын хувьд 200Ω байх ёстой. Практикт утга нь ойролцоогоор 100Ω байж болно. Онолын хувьд ороомогтой цуврал нэг резистор хангалттай. Надад ямар нэгэн шалтгаанаар моторыг тэгш хэмтэй төхөөрөмж гэж үзэх хандлага байсаар байгаад ороомгийн терминал бүрийн хажууд хагас эсэргүүцэлтэй (47Ω эсвэл 51Ω) эсэргүүцэл тавьдаг. Ороомог салгагдсан үед процессор дахь сөрөг хүчдэлээс зайлсхийхийн тулд хамгаалалтын диод нэмдэг зарим барилга байгууламжууд. Нөгөө талаас процессорын гаралтын хүч нь ороомог ямар ч өсгөгчгүйгээр шууд процессортой холбоход хангалттай юм. PIC12F629 процессорын бүрэн схем нь 15 -р зурагт үзүүлсэн шиг харагдах болно. Энэхүү схем нь нэмэлт хяналтын элементгүй цагны хувьд хүчинтэй байна. Бидэнд GP0 оролт/гаралтын нэг зүү, зөвхөн GP3 оролттой хэвээр байна.
Алхам 11: Ханын цаг ашиглах жишээ Arduino
Arduino -ийг ашиглахыг хүсч байвал ATmega328 процессорын өгөгдлийн хүснэгтийг үзэх боломжтой. Энэхүү процессор нь 4 МГц хүртэлх давтамжийн хувьд 1.8 В - 5.5 В, 10 МГц хүртэлх давтамжийн хувьд 2.7 - 5, 5 В гэж тодорхойлогдсон ажлын хүчдэлтэй. Arduino самбаруудын нэг дутагдалтай тал дээр болгоомжтой хандах хэрэгтэй. Үүний дутагдал нь самбар дээр хүчдэлийн зохицуулагч байгаа явдал юм. Их хэмжээний хүчдэл зохицуулагч нь урвуу хүчдэлтэй холбоотой асуудалтай байдаг. Энэ асуудлыг 7805 -р зохицуулагчийн хувьд хамгийн сайн тайлбарласан болно. Бидний хэрэгцээнд зориулж 3V3 (3.3V хүчдэлд зориулагдсан) гэж тэмдэглэгдсэн хавтанг ашиглах ёстой, учир нь энэ самбар нь болор 8 МГц агуулдаг бөгөөд 2, 7 В -оос эхлэн асаах боломжтой (энэ нь хоёр АА гэсэн үг юм) батерей). Дараа нь тогтворжуулагч нь 7805 биш харин 3.3V эквивалент байх болно. Тогтворжуулагч ашиглахгүйгээр самбарыг асаахыг хүсч байвал бидэнд хоёр сонголт байна. Эхний сонголт бол хүчдэлийг "RAW" (эсвэл "Vin") ба +3V3 (эсвэл Vcc) зүүгээр холбож, таны самбар дээр ашигладаг тогтворжуулагч нь хүчдэлийн хамгаалалтгүй гэдэгт итгээрэй. Хоёр дахь сонголт бол тогтворжуулагчийг арилгах явдал юм. Үүний тулд лавлах схемийн дагуу Arduino Pro Mini -ийг ашиглах нь зүйтэй. Энэхүү схемд дотоод тогтворжуулагчийг салгах зориулалттай холбогч SJ1 (улаан тойрог дээрх 16 -р зураг) багтсан болно. Харамсалтай нь ихэнх клонуудад ийм холбогч байдаггүй.
Arduino Pro Mini -ийн өөр нэг давуу тал нь нэмэлт хөрвүүлэгч агуулаагүй бөгөөд хэвийн ажиллаж байх үед цахилгаан зарцуулдаг (энэ нь програмчлалын явцад бага зэрэг хүндрэл учруулдаг) юм. Arduino хавтангууд нь нэг гаралтын хувьд хангалттай хүч чадалгүй, илүү тохь тухтай процессоруудаар тоноглогдсон байдаг. Дараа нь хос транзистор ашиглан хамгийн багадаа жижиг гаралтын өсгөгч нэмэх нь зүйтэй юм. Батерейны үндсэн схем нь зураг дээр үзүүлсэн шиг харагдах болно.
Arduino орчин ("утас" хэл) нь орчин үеийн үйлдлийн системийн шинж чанартай байдаг тул цагийг зөв тодорхойлоход асуудал гардаг тул Timer0 эсвэл Timer1 -ийн гадаад цагийн эх үүсвэрийг ашиглах талаар бодох нь зүйтэй юм. Энэ нь T0 ба T1 оролт гэсэн үг бөгөөд тэдгээрийг 4 (T0) ба 4 (T1) гэж тэмдэглэнэ. Ханын цагнаас болор ашигладаг энгийн осцилляторыг эдгээр оролтуудын аль нэгэнд холбож болно. Энэ нь хэр зөв цаг гаргахыг хүсч байгаагаас хамаарна. Зураг 18 -д гурван үндсэн боломжийг харуулав. Эхний схем нь ашигласан бүрэлдэхүүн хэсгүүдийн хувьд маш хэмнэлттэй байдаг. Энэ нь гурвалжин гаралт багатай боловч бүрэн хүчдэлийн хүрээнд CMOS оролтыг тэжээхэд тохиромжтой. Инвертер ашигладаг хоёр дахь схем нь CMOS 4096 эсвэл TTL 74HC04 байж болно. Схемүүд нь хоорондоо илүү төстэй боловч үндсэн хэлбэртэй байдаг. Болорыг шууд холбох боломжийг олгодог CMOS 4060 чипийг ашигладаг гуравдахь схем (ижил схемийг ашиглан 74HC4060 -тай тэнцүү боловч өөр өөр резистор утгатай). Энэхүү хэлхээний давуу тал нь 14 битийн хуваагчийг агуулдаг тул ямар давтамжийг таймер оролт болгон ашиглахаа шийдэх боломжтой юм.
Энэ хэлхээний гаралтыг T0 оролтод ашиглаж болно (Arduino тэмдэглэгээтэй 4 -р зүү), дараа нь Timer0 -ийг гадаад оролтоор ашиглана. Timer0 нь delay (), milis () эсвэл micros () гэх мэт функцүүдэд ашиглагддаг тул энэ нь тийм ч практик биш юм. Хоёрдахь сонголт бол T1 оролтод (Arduino тэмдэг бүхий 5 -р зүү) холбож, нэмэлт оролттой Timer1 -ийг ашиглах явдал юм. Дараагийн сонголт бол үүнийг INT0 (Arduino тэмдэглэгээний 2 -р зүү) эсвэл INT1 (зүү 3) оролттой холбож, үе үе дуудагдах attachInterrupt () функцийг ашиглаж бүртгүүлэх явдал юм. 4060 чипсээс санал болгож буй ашигтай хуваагдал энд байна.
Алхам 12: Төмөр замчдын загвар хангамжийн хурдан цаг
Сонирхолтой байхын тулд би нэг ашигтай схемийг танилцуулах болно. Би нийтлэг хяналтанд илүү олон ханын цаг холбох хэрэгтэй байна. Ханын цаг нь бие биенээсээ хол байдаг бөгөөд дээд талд нь цахилгаан соронзон дуу чимээ ихтэй байдаг. Дараа нь би харилцаа холбооны хувьд илүү өндөр хүчдэл ашигладаг хуучин автобусны систем рүү буцаж ирэв. Мэдээжийн хэрэг би батерейгаар ажиллахаа шийдээгүй, гэхдээ тогтворжуулсан 12V цахилгаан хангамжийг ашигласан. Би TC4427 драйвер ашиглан процессорын дохиог олшруулсан (хүртээмж сайтай, боломжийн үнэтэй). Дараа нь би 0.5А хүртэлх ачаалалтай 12V дохиог авч явж байна. Би боолчлох цагуудад энгийн резистор хуваагчдыг нэмж оруулав (18 -р зураг дээр R101 ба R102 гэж тэмдэглэсэн; Дахин хэлэхэд би моторыг тэгш хэмтэй гэж ойлгодог, энэ шаардлагагүй). Би илүү их гүйдэл дамжуулж дуу чимээг бууруулахыг хүсч байна, дараа нь 100Ω гэсэн хоёр резистор ашигласан. Мотор ороомгийн хүчдэлийг хязгаарлахын тулд B101 гүүрний шулуутгагчийг ороомогтой зэрэгцүүлэн холбоно. Гүүр нь DC талыг богиносгосон бөгөөд хоёр параллель эсрэг диодыг төлөөлдөг. Хоёр диод гэдэг нь 1.4 В орчим хүчдэл буурдаг гэсэн үг бөгөөд энэ нь моторын хэвийн ажиллах хүчдэлтэй ойролцоо байна. Цахилгаан тэжээл нь нэг ба эсрэг туйлт ээлжлэн солигддог тул бидэнд эсрэг параллель хэрэгтэй. Нэг боолын хананы цагны нийт гүйдэл нь (12V - 1.5V) / (100Ω + 100Ω) = 53mA байна. Энэ нь чимээ шуугианаас зайлсхийхийн тулд хүлээн зөвшөөрөгдөх үнэ юм.
Энд схемийн хоёр унтраалга байгаа бөгөөд тэдгээр нь хананы цагны нэмэлт функцуудыг хянахад зориулагдсан болно (загвар төмөр замын хувьд хурдны үржүүлэгч). Охидын цаг нь бас нэг сонирхолтой онцлогтой. Тэд 4 мм хэмжээтэй гадил жимсний хоёр холбогч ашиглан холбогдсон байна. Тэд ханан дээр хананы цаг барьжээ. Ялангуяа ашиглахаасаа өмнө тодорхой хугацааг тохируулахыг хүсч байвал зүгээр л салгаад дараа нь буцааж залгаарай (модон блокыг хананд бэхэлсэн). Хэрэв та "Биг Бен" бүтээхийг хүсч байвал танд дөрвөн хос углуургатай модон хайрцаг хэрэгтэй болно. Тэр хайрцгийг цаг ашиглаагүй үед хадгалах зориулалтаар ашиглаж болно.
Алхам 13: Програм хангамж
Програм хангамжийн үүднээс авч үзвэл нөхцөл байдал харьцангуй энгийн. PIC12F629 чип дээрх болор 32768 Гц (анхны цагнаас дахин боловсруулсан) ашиглан хэрэгжүүлэх талаар тайлбарлая. Процессор нь нэг зааварчилгааны циклтэй, дөрвөн осцилляторын циклтэй. Дотоод цагны эх үүсвэрийг ямар ч таймерд ашиглахад энэ нь зааварчилгааны мөчлөгийг хэлнэ (fosc/4 гэж нэрлэдэг). Бидэнд жишээ нь Timer0 байна. Таймерын оролтын давтамж нь 32768/4 = 8192Hz болно. Таймер нь найман бит (256 алхам) бөгөөд бид үүнийг ямар ч саад бэрхшээлгүйгээр халдаг. Бид зөвхөн таймер халих үйл явдалд анхаарлаа хандуулах болно. Үйл явдал 8192 /256 = 32 Гц давтамжтайгаар явагдах болно. Дараа нь бид нэг секундын импульс авахыг хүсч байгаа бол Timer0 -ийн 32 халих бүрт импульс үүсгэх ёстой. Бид цагийг жишээлбэл 4 дахин хурдан ажиллуулахыг хүсч байгаа бол импульсийн хувьд 32/4 = 8 халих хэрэгтэй. Зарим тохиолдолд бид цагийг жигд бус боловч нарийвчлалтай зохион бүтээх сонирхолтой байдаг бол цөөн тооны импульсийн хэмжээ нь 32 × импульсийн тоотой ижил байх ёстой. Дараа нь бид жигд бус цагийн матрицыг дараах байдлаар оруулж болно: [20, 40, 30, 38]. Дараа нь нийлбэр нь 128, энэ нь 32х4 хэмжээтэй тэнцүү байна. Синусын цагны хувьд [37, 42, 47, 51, 55, 58, 60, 61, 62, 61, 60, 58, 55, 51, 47, 42, 37, 32, 27, 22, 17, 13, 9, 6, 4, 3, 2, 3, 4, 6, 9, 13, 17, 22, 27, 32] = 1152 = 36*32). Манай цагийн хувьд бид хоёр үнэгүй оролтыг хурдан ажиллуулахын тулд хуваагчийн тодорхойлолт болгон ашиглах болно. Хүснэгт хуваах хүснэгтийг EEPROM санах ойд хадгалдаг. Програмын үндсэн хэсэг дараах байдлаар харагдаж болно.
MainLoop:
btfss INTCON, T0IF goto MainLoop; Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP -ийг хүлээнэ үү; хэрэв STOP унтраалга идэвхтэй байвал CLKCNT clrf; btfsc SW_FAST болгонд тоолуур цэвэрлэх; хэрэв хурдан товчлуур дарагдаагүй бол goto NormalTime; зөвхөн ердийн цагийг movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; хэрэв FCLK ба CLKCNT нь ижил goto SendPulse NormalTime бол: movf CLKCNT, w andlw 0xE0; бит 7, 6, 5 btfsc STATUS, Z; хэрэв CLKCNT> = 32 goto MainLoop goto SendPulse
SendPulse функцийг ашигладаг програм нь моторын импульсийг өөрөө бий болгодог. Сондгой/тэгш импульсийн функцийг тоолж, үүн дээр үндэслэн нэг эсвэл хоёр дахь гаралт дээр импульс үүсгэдэг. ENERGISE_TIME тогтмол ашигладаг функц. Энэ тогтмол цаг нь хөдөлгүүрийн ороомогоор тэжээгддэг. Тиймээс энэ нь хэрэглээнд ихээхэн нөлөөлдөг. Жижигхэн болсны дараа мотор алхамаа дуусгаж чаддаггүй, заримдаа энэ нь алдагддаг (ихэвчлэн хоёр дахь гар нь 9 -р тоогоор тойроход "дээшээ" гарах үед) тохиолддог.
SendPulse:
incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: bsf OUT_A goto SendPulseE SendPulseB: bsf OUT_B; goto SendPulseE SendPulseE: movlw 0x50 movwf ECNT SendPulFoLPPP
Бүрэн эх кодыг www.fucik.name хуудасны төгсгөлд татаж авах боломжтой. Arduino -ийн нөхцөл байдал тийм ч төвөгтэй биш, учир нь Arduino нь илүү өндөр програмчлалын хэл ашиглаж, өөрийн 8MHz болор ашигладаг тул бид ямар функц ашиглаж байгаагаа анхаарах хэрэгтэй. Сонгодог хоцролт () ашиглах нь тийм ч эрсдэл багатай (энэ нь функцийг эхлүүлэхээс эхлээд цагийг тооцдог). Илүү сайн үр дүн нь Timer1 гэх мэт номын санг ашиглах болно. Arduino -ийн олон төслүүд PCF8563, DS1302 гэх мэт гадаад RTC төхөөрөмжүүдэд тооцогддог.
Алхам 14: Сонирхол
Ханын цагны моторыг ашиглах энэ системийг маш энгийн гэж ойлгодог. Энэ нь маш олон сайжруулалтууд байдаг. Жишээлбэл, буцах EMF хэмжигдэхүүн дээр үндэслэсэн (роторын соронзны хөдөлгөөнөөр үйлдвэрлэсэн цахилгаан энерги). Дараа нь электрон төхөөрөмж нь гараа хөдөлгөж, танихгүй бол импульсээ хурдан давтаж эсвэл "ENERGISE_TIME" -ийн утгыг шинэчилж болно. Илүү хэрэгтэй сониуч зан бол "урвуу алхам" юм. Тодорхойлолт дээр үндэслэн мотор нь зөвхөн нэг чиглэлд зориулагдсан бөгөөд үүнийг өөрчлөх боломжгүй юм. Гэхдээ хавсаргасан видеон дээр үзүүлсэн шиг чиглэлээ өөрчлөх боломжтой. Зарчим нь энгийн. Моторын зарчим руу буцъя. Энэ мотор хоёр дахь шатны тогтвортой байдалд байна гэж төсөөлөөд үз дээ (Зураг 3). Эхний шатанд үзүүлсэн шиг хүчдэлийг холбосны дараа (Зураг 2) хөдөлгүүр логикоороо урвуу чиглэлд эргэж эхэлнэ. Импульс нь богино байх бөгөөд мотор тогтвортой байдлыг дээшлүүлэхээс өмнө бага зэрэг дуусах үед логикоор бага зэрэг анивчих болно. Энэ анивчих үед гуравдахь төлөвт тайлбарласны дагуу хүчдэлийн дараагийн импульс ирэх болно (Зураг 4), дараа нь мотор урагшаа чиглэсэн гэсэн үг. Бага зэргийн асуудал бол эхний импульсийн үргэлжлэх хугацааг хэрхэн тодорхойлох, нэг ба хоёр дахь импульсийн хооронд тодорхой зай бий болгох явдал юм. Хамгийн муу зүйл бол эдгээр тогтмолууд нь цагийн хөдөлгөөн бүрт өөр өөр байдаг бөгөөд зарим тохиолдолд гар нь "доош" (3 -р тоо орчим) эсвэл дээш (9 -р тоо орчим), төвийг сахисан байрлалд (12 ба 6 -р тоо орчим) ордог.. Видео бичлэг дээр үзүүлсэн тохиолдолд би дараах кодонд үзүүлсэн утга ба алгоритмыг ашигласан болно.
#тодорхойлох OUT_A_SET 0x02; тодорхой болгохын тулд тохируулах b тодорхой
#тодорхойлох OUT_B_SET 0x04; b for config нь тодорхой #тодорхойлох ENERGISE_TIME 0x30 #тодорхойлох REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf ECB movlw OTB_ mov импульсээс эхэл B movwf GPIO RevPulseLoopA:; богино хугацаанд хүлээх decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; дараа нь импульс A movwf GPIO goto SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; импульсээр эхлэх A movwf GPIO RevPulseLoopB:; богино хугацаанд хүлээх decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; дараа нь импульс B movwf GPIO; goto SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f goto SendPulseLoop bcf OUT_A bcf OUT_B goto MainLoop
Урвуу алхам ашиглах нь ханын цаг тоглох боломжийг нэмэгдүүлдэг. Заримдаа хоёрдогч гарны жигд хөдөлгөөнтэй ханын цагийг олж болно. Бидэнд тэр цагнаас айх зүйл байхгүй, тэд энгийн мэх ашиглаж байна. Мотор нь өөрөө энд тайлбарласан мотортой адилхан бөгөөд зөвхөн арааны харьцаа том (ихэвчлэн 8: 1 илүү), мотор хурдан эргэлддэг (ихэвчлэн 8 дахин хурдан) бөгөөд энэ нь жигд хөдөлгөөнийг бий болгодог. Эдгээр ханын цагийг өөрчлөх шийдвэр гаргасны дараа хүссэн үржүүлэгчийг тооцоолохоо бүү мартаарай.
Зөвлөмж болгож буй:
NEO-6M модулийг ашиглан орон нутгийн цагаар ажилладаг Arduino GPS цаг: 9 алхам
NEO-6M модулийг ашиглан орон нутгийн цагаар ажилладаг Arduino GPS цаг: Энэхүү гарын авлагад бид хиймэл дагуулаас arduino ашиглан одоогийн цагийг хэрхэн авах талаар сурах болно
Шөнийн цагаар гэрэлтдэг LED одтой мананцар: 4 алхам
Шөнийн цагаар гэрэлтдэг LED одтой мананцар: Энэхүү төсөл нь Auroris галактикийн зургаас санаа авсан болно. Би анх зааварчилгааны дагуу зураг зурахаар төлөвлөж байсан боловч НАСА -гийн вэбсайт дээр Хаббл сансрын дурангийн гайхалтай цуглуулга байдгийг санаж байна
Бяцхан бөмбөг тоглох автомат оноо: 10 алхам (зурагтай)
Бяцхан бөмбөг тоглох автомат оноо: Гэртээ хийсэн Skee-Ball тоглоом нь бүхэл бүтэн гэр бүлд маш их хөгжилтэй байдаг ч тэдний дутагдал нь үргэлж автомат оноо аваагүй явдал юм. Би өмнө нь тоглоомын бөмбөгийг тус тусад нь суваг болгон юүлдэг Skee-Ball машин бүтээсэн
Өдрийн цагаар амар хялбар цаг: 7 алхам
Өдрийн цагаар хялбар хэмнэх цаг: Өгөгдөл Энэхүү төсөл нь Arduino Uno болон ганц 1602A LCD дэлгэц ашиглан програмчлал (кодчилол) сурахад надад тулгарч байсан тул би эхлээд Arduino -г нарийвчлалтайгаар хязгаарлахыг хүссэн юм. Энэ бол ашиглахгүйгээр цаг бүтээх төсөл юм
Хэрхэн ханын цагаар гэрэлтдэг гар, цагийн интервалын тэмдэглэгээг өгөх вэ: 14 алхам (зурагтай)
Хэрхэн ханын цагаар гэрэлтдэг гар, цагийн интервалын тэмдэглэгээг өгөх вэ: Бид унтлагын өрөөний ханын цагийг гэрэлтүүлэгч гартай, таван минут, дөрөвний нэг цагийн интервалтай байлгахыг хүсч байна. Орноос уншихад гэрэл гэгээтэй байх нь шөнийн турш үргэлжлэх ёстой байв. Орчин үеийн цагны гэрэлтдэг будаг нь