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

Жижиг LED матрицын дэлгэцийн цаг: 8 алхам
Жижиг LED матрицын дэлгэцийн цаг: 8 алхам

Видео: Жижиг LED матрицын дэлгэцийн цаг: 8 алхам

Видео: Жижиг LED матрицын дэлгэцийн цаг: 8 алхам
Видео: 5 СТРАШНЫХ видео, которые оставили пользователей безмолвными 2024, Долдугаар сарын
Anonim
Image
Image
Жижиг LED матрицын дэлгэцийн цаг
Жижиг LED матрицын дэлгэцийн цаг
Жижиг LED матрицын дэлгэцийн цаг
Жижиг LED матрицын дэлгэцийн цаг
Жижиг LED матрицын дэлгэцийн цаг
Жижиг LED матрицын дэлгэцийн цаг

Би 90-ээд оны үеийн киноноос гаралтай, яг даруухан ажиллагаатай, бодит цагийн цаг, огноо, арын гэрлийг өөрчлөх, дуугарах дохиолол, сэрүүлгийн сонголттой төстэй хуучин цагийн ширээний цагтай болохыг үргэлж хүсдэг байсан. Тиймээс би нэг санаа бүтээх гэж ирсэн юм: Дээр дурдсан бүх боломжуудыг агуулсан микроконтроллер дээр суурилсан дижитал төхөөрөмж, USB эсвэл компьютер эсвэл гар утасны USB цэнэглэгч. Би үүнийг цэс, тохиргоог тохируулж програмчлахыг хүсч байсан тул энэ төсөлд MCU байрлуулах нь зайлшгүй байсан. ATMEGA328P IC (Arduino Uno -ийн самбар бүрээс бүрддэг) нь хэлхээний "тархи" байхаар сонгогдсон (Үүнийг хэлэхэд надад хангалттай олон зүйл байсан). Зарим электрон эд ангиудыг RGB LED, хураамжийг хэмжих чип, товчлуур зэрэг хослуулан бүхэлд нь төслийг эхлүүлсэн-Програмчлагдах жижиг хэмжээтэй LED дэлгэцтэй ширээний цаг.

Тиймээс, төслийн мөн чанарыг судалж үзсэний дараа үүнийг бүтээцгээе

Алхам 1: Санаа

Санаа
Санаа

Өмнө дурьдсанчлан, манай төхөөрөмж нь LED матрицын дэлгэц, өнгө өөрчлөгдөж буй RGB LED арын гэрэлтүүлэг, цэнэглэх цагийг хэмжих чип, USB тэжээлийн тохиромжтой хэсэг, жижиг хэмжээтэй хаалттай.

Төхөөрөмжийн үйл ажиллагааны блок диаграмыг хэсэгчлэн тайлбарлая.

1. Цахилгаан хангамжийн нэгж:

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

  • Микро USB оролт - Цэнэглэгч / PC -ийн шууд тэжээлийн хангамжид зориулагдсан.
  • LM7805 IC дээр суурилсан 5V шугаман хүчдэлийн зохицуулагч хэлхээ.

LM7805 IC хэлхээ нь сонголттой бөгөөд хэрэв та өөр өөр тэжээлийн оролтын хүртээмжийг ашиглахыг хүсэхгүй бол. Манай төхөөрөмжид Micro-USB PSU ашигладаг.

2. Микроконтроллерийн нэгж:

ATMEGA328P микроконтроллер нь бүхэл бүтэн төхөөрөмжийн "тархи" болж ажилладаг. Үүний зорилго нь бүх захын хэлхээтэй харилцах, шаардлагатай өгөгдлийг өгөх, төхөөрөмжийн хэрэглэгчийн интерфейсийг хянах явдал юм. Сонгосон микроконтроллер нь ATMEGA328P тул бидэнд Atmel Studio болон C хэлний анхан шатны мэдлэг хэрэгтэй болно (схем, програмчлалын дарааллыг дараагийн алхамуудад тайлбарласан болно).

3. Бодит цагийн цагны хэлхээ:

Төхөөрөмжийн хоёр дахь хамгийн чухал хэлхээ. Үүний зорилго нь оролтын тэжээлийн холболтоос хамааралгүй, хадгалалтын шаардлагаар огноо, цагийн мэдээллийг өгөх, өөрөөр хэлбэл цагийн мэдээллийг бодит цагийн горимд шинэчлэх явдал юм. RTC бүрэлдэхүүн хэсгийг цаг, огнооны өгөгдлийг үргэлжлүүлэн өөрчлөх чадвартай болгохын тулд 3V зоосны батерейг хэлхээнд нэмж оруулсан болно. IC нь DS1302 бөгөөд түүний ажиллагааг цаашдын алхамуудад тайлбарласан болно.

4. Оролтын интерфэйс - түлхэх товчлуурын унтраалга:

Оролтын PB унтраалга нь хэрэглэгчийн оролтын интерфейсийг хангадаг. Эдгээр унтраалга нь MCU болон хяналтын төхөөрөмжийг тодорхойлсон програмд боловсруулагддаг.

5. LED матрицын дэлгэц

Төхөөрөмжийн дэлгэц нь IC ороосон HCMS-2902 үсэг, тоон LED матрицаас бүрдэх бөгөөд IC тус бүр 5x7 хэмжээтэй жижиг LED матрицын 4 тэмдэгтээс бүрдэнэ. Эдгээр дэлгэцийг ашиглахад хялбар, 3 утастай холболтыг дэмждэг, жижиг хэмжээтэй-энэ төсөлд хэрэгтэй бүх зүйл.

6. RGB арын гэрэл:

Өнгөний арын гэрэлтүүлэг нь MCU -аас ирдэг ХОУХД -ийн дохиогоор удирддаг гадаад RGB LED дээр суурилдаг. Энэхүү төсөлд RGB LED нь R, G, B ба нийтлэг 4 зүүтэй бөгөөд R, G, B өнгөний палитрыг MCU ашиглан PWM -ээр хянадаг.

7. Дуу чимээ:

Дуу чимээний хэлхээг дуут гаралт болгон ашигладаг бөгөөд ихэвчлэн дохиоллын зориулалтаар ашигладаг. BJT унтраалга нь дуугаралтын бүрэлдэхүүнд хангалттай хэмжээний гүйдэл өгөхөд ашиглагддаг тул эзлэхүүн нь амьд хүнийг сэрээх хангалттай чанга байх болно.

Алхам 2: Эд анги, багаж хэрэгсэл

Эд анги, багаж хэрэгсэл
Эд анги, багаж хэрэгсэл

I. Электроникс:

A. Нэгдсэн ба идэвхтэй бүрэлдэхүүн хэсгүүд:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - AVAGO дэлгэц
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

B. Идэвхгүй бүрэлдэхүүн хэсгүүд:

  • Эсэргүүцэл:

    • 5х10К
    • 1 x 180R
    • 2 x 100R
  • Конденсатор:

    • 3 x 0.1uF
    • 1 x 0.47uF
    • 1 x 100uF
    • 2 x 22pF
  • 1 x 4 зүү RGB LED
  • 1 х дуут дохио
  • 1 x 32.768 кГц болор

C. Холбогч:

  • 1 x Micro-USB холбогч
  • 2 х 6 зүү бүхий стандарт давирхай (100 миль) холбогч.
  • 2 x 4 зүү стандарт давирхай (100 миль) холбогч.
  • 1 x Зоос-эсийн батерейны хайрцаг.

D. Төрөл бүрийн:

  • 3 x SPST түлхэх товчлуур
  • 1 х 3В зоосны зай.

E. Нэмэлт PSU:

  • 1 x LM7805 - Шугаман зохицуулагч
  • 2 x 0.1uF багтаамжтай
  • 2 x 100uF багтаамжтай

II. Механик:

  • 1 x Хуванцар хашлага
  • 4 x Резинэн бэхэлгээ
  • 1 x прототип гагнуурын самбар
  • 1 x MCU толгой (Микроконтроллер эвдэрсэн тохиолдолд)
  • 2 х 8 мм хэмжээтэй жижиг боолт
  • 2х8 мм хэмжээтэй угаагч

III. Хэрэгсэл ба материал:

  • Гагнуурын утас
  • Хумих хоолойнууд
  • Гагнуурын цагаан тугалга
  • Гагнуурын төмөр
  • Таслагч
  • Хавчуурга
  • Хясаа
  • Өрмийн битүүд
  • Жижиг хэмжээтэй файл
  • Төрөл бүрийн халив
  • Диаметр хэмжигч
  • Мультиметр
  • Breadboard (заавал биш)
  • Микро USB кабель
  • Дунд зэргийн хэмжээтэй файл
  • Халуун цавуу буу
  • AVR ISP програмист

IV. Програмчлал:

  • Atmel Studio 6.3 эсвэл 7.0.
  • ProgISP эсвэл AVRDude
  • Microsoft Excel (дэлгэцийн тэмдэгт үүсгэх зориулалттай)

Алхам 3: Схемийн тайлбар

Схемийн тодорхойлолт
Схемийн тодорхойлолт

Хэлхээний ажиллагааг ойлгоход хялбар болгохын тулд схемийн алхамыг долоон дэд бүлэгт хуваадаг. Сүлжээний нэрийг схем хуудсан дээр тодорхойлсон бөгөөд төхөөрөмжийн тусдаа дэд хэлхээ хоорондын холболтыг тодорхойлдог болохыг та анзаарах ёстой.

A. Үндсэн бүрэлдэхүүн хэсгүүдийн самбар:

Өмнө дурьдсанчлан, бидний "дотор" байхыг хүсч буй бүх тохирох дэд схемүүдийг нэг зүсэгдсэн загвар самбар дээр байрлуулсан болно. Үндсэн самбар дээр байрлуулсан хэлхээний ажиллагааны тайлбарыг үргэлжлүүлье.

1. Микроконтроллерийн хэлхээ:

Энэхүү төсөлд ашигладаг MCU нь ATMEGA328P юм. Энэ нь гадаад 5V цахилгаан хангамжаар тэжээгддэг бөгөөд энэ тохиолдолд микро USB холбогч юм. Бүх зохих I/O тээглүүрийг дизайны шаардлагын дагуу холбосон болно. Портын I/O -ийн зураглалыг ойлгоход хялбар байдаг, учир нь бүх сүлжээний нэрийг програмчлалын үе шатанд ашиглах байдлаар тодорхойлдог. MCU нь RC -ийг дахин тохируулах энгийн хэлхээтэй бөгөөд үүнийг програмчлалын дараалал болон хүчийг эхлүүлэхэд ашигладаг.

MCU -ийн чухал хэсэг бол програмчлалын хэлхээ юм. 6 -зүү програмчлалын холбогч байдаг - J5, VCC, GND ба RESET сүлжээ нь гадаад ISP програмист болон үндсэн бүрэлдэхүүн хэсгүүдийн самбар дээр нийтлэг байдаг эсэхийг шалгаарай.

2. Бодит цагийн цагны хэлхээ:

Дараагийн хэлхээ нь төслийн гол захын хэсэг юм. DS1302 бол цэнэглэх цаг хэмжигч IC бөгөөд бидний боловсруулсан нэгжид боловсруулсан цаг, огнооны утгыг өгдөг. DS1302 нь MCU-тай 3 утастай SPI холболттой төстэй 3 утастай интерфейсээр дараах шугамаар холбогддог.

  • RTC_SCK (Гаралт): SDO шугам дээр дамжуулж буй өгөгдлийг жолоодох, түүвэрлэх ажлыг гүйцэтгэдэг.
  • RTC_SDO (I/O): Өгөгдөл дамжуулах шугам. Цаг/огнооны өгөгдлийг хүлээн авах үед MCU -ийн оролт, өгөгдлийг дамжуулах үед гаралтын үүрэг гүйцэтгэдэг (Дэлгэрэнгүй тайлбарыг програмчлалын үндсэн алхамыг үзнэ үү).
  • RTC_CE: (Гаралт): Өгөгдөл дамжуулах идэвхжүүлэх шугам. MCU -аар HIGH гэж тохируулсан тохиолдолд өгөгдлийг дамжуулахад/хүлээн авахад бэлэн болно.

DS1302 нь хэлхээний зохих горимыг хангахын тулд гаднах 32.768 кГц болор осциллятор шаарддаг. Хэлхээ тоолох системд их хэмжээний хазайлт гарахаас зайлсхийхийн тулд (эдгээр төрлийн нэгдсэн хэлхээнд дрифтийн үзэгдэл зайлшгүй байх болно) болор зүү тус бүрт хоёр тохируулгын конденсаторыг байрлуулах шаардлагатай байна (Схемд X1, C8, C9 хэсгийг үзнэ үү). 22pF нь энэ төсөлд цаг хугацаа хэмжих олон туршилт хийсний дараа хамгийн оновчтой утга байсан тул та хэлхээг бүхэлд нь гагнах гэж байгаа бол эдгээр конденсаторыг өөр утгатай орлуулах сонголт байгаа эсэхийг шалгаарай. Гэхдээ жижиг хэмжээтэй хавтангийн 22pF нь маш бага дрифтэд маш сайн ажилладаг байсан (сард 7 секунд).

Энэ хэлхээний хамгийн сүүлчийн боловч хамгийн бага бүрэлдэхүүн хэсэг болох 3V зоосны батерейг DS1302 IC-ийг хангалттай эрчим хүчээр хангахын тулд самбар дээр байрлуулах ёстой бөгөөд ингэснээр цаг тоолох үйл ажиллагаагаа үргэлжлүүлнэ.

4. 8 тэмдэгт LED матриц:

Төхөөрөмжийн дэлгэц нь RTC хэлхээний DS1302-тэй төстэй 3 утастай интерфэйсээр програмчлагдсан 2 х 4 тэмдэгт бүхий LED матрицын дэлгэц IC дээр суурилсан бөгөөд өгөгдөл дамжуулах шугамыг (SDI) MCU-ийн гаралт гэж тодорхойлдог. таны дэлгэцийн хэлхээний байдлыг шалгах чадвар). Дэлгэцийг 3 утастай цуврал өргөтгөл хэлбэрээр нэгтгэсэн тул бүх IC нь нэг дэлгэцийн төхөөрөмж болж ажилладаг бөгөөд үүнийг дэлгэцийн тэмдэгтүүдийн бүх тодорхойлолтод програмчлах боломжтой байдаг (SPI цувралын хослолыг үзнэ үү). Бүх хэлхээний сүлжээний нэр нь MCU тохирох холболттой таарч байгаа бөгөөд дэлгэцийн хооронд холбоо тогтоодог нийтлэг сүлжээ байдаг бөгөөд дэлгэцийн харилцааны интерфейсийг хоёуланг нь MCU -тай холбох шаардлагагүй гэдгийг анхаарна уу. Програмчлал ба дүр бүтээх дарааллыг цаашдын алхамаар тодорхойлно.5. Хэрэглэгчийн интерфейсийн хэлхээ:

Хэрэглэгчийн интерфэйсийг хоёр дэд бүлэгт хуваадаг-Оролт ба гаралтын систем: Оролтын систем: Төхөөрөмж нь өөрөө логикийг өндөр эсвэл доогуур байлгахын тулд нэмэлт татах эсэргүүцэл бүхий гурван SPST товчлуурын унтраалгаар тодорхойлогдсон хэрэглэгчийн өгсөн оролттой байдаг. MCU. Эдгээр унтраалга нь програмчлагдсан алгоритмыг бүхэлд нь хянах системийг хангадаг, учир нь цаг/огнооны утга, цэсийн хяналт гэх мэтийг тохируулах шаардлагатай байдаг.

6. Гаралтын систем:

A. Buzzer хэлхээ нь хоёуланд нь дууны гаралтыг өгдөг, цэсийг солих нь дуу болон дохиоллын алгоритмыг хүлээн зөвшөөрдөг. NPN транзисторыг унтраалга болгон ашигладаг бөгөөд дуут дохиог хангалттай гүйдэлээр хангаж, зохих нягтралтай болгодог. Buzzer -ийг MCU -ийн програм хангамж шууд хянадаг. RGB LED нь төхөөрөмжийн арын гэрэлтүүлэг болгон ашигладаг. Үүнийг MCU шууд удирддаг бөгөөд арын гэрэлтүүлгийг сонгох дөрвөн сонголттой: RED, GREEN, BLUE, PWM эсвэл OFF горимууд. Өнгө бүр тогтмол гүйдэл дээр өөр өөр эрчимтэй байдаг тул LED R, G, B зүү рүү цувралаар холбогдсон резисторууд өөр өөр утгатай болохыг анхаарна уу. Ногоон, цэнхэр өнгийн LED -ийн хувьд улаан нь арай илүү хүчтэй байх үед ижил шинж чанартай байдаг. Улаан LED нь илүү их эсэргүүцлийн утгатай холбогддог - энэ тохиолдолд: 180 Ом (RGB LED тайлбарыг үзнэ үү).7. Холбогч:

Дэлгэц, RGB LED, Цахилгаан оролт, товчлуурын унтраалга, үндсэн самбар гэх мэт гадаад интерфэйсийн бүрэлдэхүүн хэсгүүдийн хоорондын холболтыг идэвхжүүлэхийн тулд холбогчийг үндсэн самбар дээр байрлуулсан болно. Холбогч бүр өөр өөр хэлхээнд зориулагдсан тул төхөөрөмжийн угсралтын нарийн төвөгтэй байдал эрс буурдаг. Схемд харж байгаа шиг, холбогч тор бүрийн захиалга нь сонголттой бөгөөд хэрэв утас дамжуулах процессыг илүү хялбар болгодог бол сольж болно. Схемийн талаархи бүх ойлголтыг авч үзсэний дараа дараагийн алхам руу орцгооё.

Алхам 4: Гагнах

Гагнах
Гагнах
Гагнах
Гагнах
Гагнах
Гагнах

Бидний зарим хүмүүсийн хувьд энэ нь бүхэл бүтэн төслийн хамгийн хэцүү алхам юм. Төхөөрөмжийг аль болох хурдан ажиллуулахын тулд гагнуурын ажлыг дараах дарааллаар гүйцэтгэх ёстой.

1. MCU ба програмчлалын холбогч: Алдаа гарсан тохиолдолд MCU IC -ийг орлуулахын тулд MCU -ийн оронд 28 зүү толгойг гагнахыг зөвлөж байна. Төхөөрөмжийг програмчилж, асаах боломжтой эсэхийг шалгаарай. Зүү тайлбарын наалтыг програмчлалын холбогч дээр байрлуулахыг зөвлөж байна (Гурав дахь зургийг үзнэ үү).

2. RTC хэлхээ: шаардлагатай бүх эд ангиудыг гагнаж дууссаны дараа тохируулах конденсаторыг орлуулахад хялбар эсэхийг шалгаарай. Хэрэв та 3V зоосны батерейны хайрцгийг ашиглахыг хүсвэл энэ нь төхөөрөмжийн хаалтны хэмжээтэй тохирч байгаа эсэхийг шалгаарай.

3. Дэлгэц: Тусдаа жижиг хэмжээтэй самбар дээр хоёр дэлгэцийн IC гагнах ёстой (Зураг 1). Шаардлагатай бүх сүлжээг гагнаж дууссаны дараа самбараас гадуур утас бэлтгэх шаардлагатай (Зураг 4): эдгээр утсыг дэлгэцийн хажуу талд гагнаж, дамжуулах ёстой бөгөөд утаснуудад хүчдэл, механик хүчдэл үүсэхгүй гэдгийг анхаарна уу. дэлгэцийн самбар дээрх гагнуурын үеүүдэд нөлөөлдөг.

4. Өмнөх алхамаас авсан утаснууд дээр шошгоны наалт байрлуулсан байх ёстой бөгөөд энэ нь дараагийн шатанд угсрах үйл явцыг ихээхэн хөнгөвчлөх болно. Нэмэлт алхам: утас бүрт эрэгтэй ганц зүү холбогчийг нэмнэ (Arduino загвар).

5. Үндсэн самбар дээрх үлдсэн холбогчийг гагнах, үүнд захын эд анги орно. Дахин хэлэхэд холбогч бүрийн хувьд зүү тайлбар бүхий наалт байрлуулахыг зөвлөж байна.

6. Дуугаралтын хэлхээ: дуугаралт нь төхөөрөмжийн дотор байрладаг тул үндсэн самбар дээр гагнах ёстой бөгөөд хоорондоо холбох холбогч шаардлагагүй болно.

7. RGB LED: ТУЗ -ийн үндсэн зайг хэмнэхийн тулд би резистор бүрийг LED тээглүүр дээр гагнасан бөгөөд резистор бүр өөрийн гэсэн өнгө, тохирох MCU зүүтэй тохирч байна (Зураг 5).

Алхам 5: угсрах

Угсарч байна
Угсарч байна
Угсарч байна
Угсарч байна
Угсарч байна
Угсарч байна

Энэ алхам нь төслийн гадаад төрхийг тодорхойлдог - цахилгаан ба механик. Хэрэв санал болгосон бүх тэмдэглэлийг анхаарч үзсэн бол угсрах процессыг гүйцэтгэхэд маш хялбар болно. Дараах алхам алхмаар дараалал нь үйл явцын талаархи бүрэн мэдээллийг өгдөг.

А хэсэг: Хавсралт

1. Товчлуурын товчлуурын диаметр (энэ тохиолдолд 3мм) дагуу гурван цооног өрөмдөнө.2. Хашааны хажуу талд дуугаралтын зориулалттай нэг нүх өрөмдөнө. Хүссэн өрмийн диаметрийг ашиглаж болно.3. Таны ашиглах ёстой USB холбогчийн дагуу нунтаглах үндэс болгон жижиг нүх өрөмдөнө (энэ тохиолдолд Micro USB). Үүний дараа холбогчийн хэмжээсийг тааруулахын тулд жижиг хэмжээтэй файлыг нунтаглана. Нунтаглах үндэс болгон харьцангуй том нүх өрөмдөх. Дэлгэцийн хэмжээсийн дагуу дунд зэргийн хэмжээтэй файл ашиглан нунтаглах ажлыг гүйцэтгэнэ. Хашааны гадна талд дэлгэцийн IC -ууд байгаа эсэхийг шалгаарай. RGB LED диаметрийн дагуу төхөөрөмжийн доод хэсэгт дунд зэргийн нүх өрөмдөнө. Б хэсэг - Хавсралтууд:

1. Гурван товчлуур (GND ба дохио) тус бүрт хоёр утсыг гагнана. Утас дээрх шошгоны наалт, нэг зүү холбогчийг ашиглахыг зөвлөж байна. Бэлтгэсэн дөрвөн утсыг RGB LED тээглүүрт холбоно уу. Гагнуурын холбоос дээр шошгоны наалт болон агшилтын хоолой байрлуулна.3. Төхөөрөмжийн ёроолд дөрвөн резин хөл бэхлээрэй. С хэсэг - эд ангиудыг холбох:

1. RGB LED -ийг хашлагын доод талд байрлуулж, үндсэн самбар дээрх тусгай холбогчтой холбоно уу. Халуун цавуугаар бэхлэнэ.2. Гурван товчлуурын унтраалга байрлуулж, тэдгээрийг үндсэн самбар дээр тусгай холбогчтой холбож, халуун цавуугаар бэхлээрэй. USB холбогчийг байрлуулж, програмчлалын холбогч цахилгаан тэжээлийн зүү (VCC ба GND) руу холбоно уу. Цахилгаан хангамжийн шугамын туйлшрал нь гагнасан эд ангиудтай таарч байгаа эсэхийг шалгаарай. Халуун цавуугаар бэхлэнэ.4. Дэлгэцийн самбарыг байрлуулж, тусгай холбогчтой холбоно уу. Үүнийг халуун цавуугаар бэхлээрэй.

1. Гол самбар-хаалт ба дээд таганд боолт самар хос оруулахыг зөвлөж байна (Энэ тохиолдолд үзүүлсэн шиг).2. Хагарсан утаснуудын эвдрэлээс урьдчилан сэргийлэхийн тулд тэдгээрийг гадаад төрхөөр нь бэхэлгээний дотор байрлуулна.

Алхам 6: Програмчлалын товч танилцуулга

Програмчлалын товч танилцуулга
Програмчлалын товч танилцуулга
Програмчлалын товч танилцуулга
Програмчлалын товч танилцуулга
Програмчлалын товч танилцуулга
Програмчлалын товч танилцуулга

Бүх эд ангиудыг гагнаж дууссаны дараа угсрах эцсийн шат руу орохын өмнө төхөөрөмжийн анхны туршилтыг хийхийг зөвлөж байна. MCU кодыг C дээр бичсэн бөгөөд ATMEGA328P нь ISP програмистаар програмчлагдсан (Atmel програмчлалын төрөл бүрийн төхөөрөмжүүд байдаг: AVR MKII), AVR DRAGON гэх мэт. Би ProgISP эсвэл AVRDude програмаар хянадаг eBay -аас хямд USB ISP Программист ашиглаж байсан). Програмчлалын орчин нь Atmel Studio 4 ба түүнээс дээш байх ёстой (програм хангамжийн хамгийн сүүлийн хувилбарыг зөвлөж байна). Хэрэв гадаад, Atmel Studio -аас өөр програмист ашигладаг бол програмын програм хангамжид.hex файлын замыг өгөх шаардлагатай байдаг (Ихэвчлэн төслийн Debug эсвэл Release хавтсанд байрладаг). Угсрах алхам руу явахаасаа өмнө төхөөрөмжийг програмчилж болох бөгөөд AVR -д зориулагдсан аливаа үндсэн төсөл боловсруулах, хөрвүүлэх процессыг ATMEGA328P микроконтроллер дээр үндэслэсэн эсэхийг шалгаарай (Atmel Studio хичээлийг үзнэ үү).

Алхам 7: Кодын тодорхойлолт

Кодын тодорхойлолт
Кодын тодорхойлолт
Кодын тодорхойлолт
Кодын тодорхойлолт

Шийдвэр гаргах кодын алгоритмыг хагас тусдаа хоёр давхаргад хуваана: 1. Үндсэн давхарга: Захын хэлхээтэй харилцах, төхөөрөмжийн үйл ажиллагааны тодорхойлолт, эхлүүлэх болон бүрэлдэхүүн хэсгүүдийн мэдэгдэл. Интерфейсийн давхарга: Хэрэглэгч-төхөөрөмжийн харилцан үйлчлэл, цэсийн ажиллагаа, цаг/дуугаралт/өнгө/сэрүүлгийн тохируулга. Хөтөлбөрийн дарааллыг Зураг дээр тайлбарласан болно. 1, блок бүр нь MCU -ийн төлөвтэй тохирч байна. Тайлбарласан програм нь техник хангамж болон гадаад ертөнц хоорондын интерфейсийг хангадаг үндсэн "үйлдлийн систем" болж ажилладаг. Дараах тайлбар нь програмын үндсэн үйл ажиллагааг хэсэгчлэн тайлбарласан болно: А хэсэг: Гол давхарга:

1. MCU I/O-ийг эхлүүлэх: Юуны өмнө техник хангамжийн бүрэлдэхүүн хэсгүүдийг эхлүүлэх шаардлагатай:- Код ашигласан тогтмолууд.- I/O портууд- Интерфэйсүүд.- Захын холбооны мэдэгдэл.

2. Үндсэн ерөнхий функцууд: Зарим функцуудыг тусдаа кодын блок ашигладаг бөгөөд програм хангамжаар хянагддаг голуудын үйлдлийг тодорхойлдог:- RTC болон дэлгэцийн самбарын холболтыг идэвхжүүлэх/идэвхгүй болгох.- Дуу чимээ гаргах/унтраах up/Clock down functions.- Тэмдэгт үүсгэх функцүүдийг харуулна.3. Захын эхлэл: Оролтын/оролтын портуудыг тохируулсны дараа хэлхээний функцын тодорхойлолт хоорондоо холбоо тогтоно. Дууссаны дараа - MCU дээр тодорхойлсон функцуудыг ашиглан RTC болон дэлгэцийн хэлхээг эхлүүлж эхэлдэг.

4. Үндсэн функцүүдийн тодорхойлолт: Энэ үе шатанд төхөөрөмжийг тохируулж, зарим захын хэлхээтэй холбоо барихад бэлэн болсон байна. Эдгээр функцууд нь дараахь зүйлийг тодорхойлдог

5. Дэлгэцийн функцууд: Би интернэтээс ашигласан HSMS IC -ийн талаар тийм ч их зүйл олж чадаагүй тул номын сангаа өөрөө бичсэн. Дэлгэцийн функцууд нь ASCII тэмдэгтүүд болон бүхэл тоонуудыг харуулах зэрэг тэмдэгтүүдийг харуулах бүрэн боломжийг олгодог. Функцуудыг ерөнхий байдлаар бичдэг тул кодын аль ч хэсгээс дэлгэцийн функцийг дуудах шаардлагатай бол тэдгээрийг үйлдлээр нь ерөнхийд нь харуулдаг тул ашиглахад хялбар байдаг (Жишээ нь: String дэлгэц, ганц тэмдэгт дэлгэц гэх мэт).

6. RTC үйлдлийн функцууд: Бүх RTC функцуудыг DS1302 IC үйлдлийн дагуу ерөнхий байдлаар (Дэлгэцийн функцүүдийн адил) бичсэн болно. Код нь бичигдсэн номын санд суурилсан бөгөөд gitHub дээр олон хувилбартай байдаг. Төгсгөлийн код дээр харах болно. Дэлгэц болон RTC функцуудыг тус тусад нь.c ба.h файлд оруулсан болно. Б хэсэг - Интерфейсийн давхарга:

1. Үндсэн функц: void main () хэсэгт бүх үндсэн эхлүүлэх функцийг тунхагласан болно. Бүх бүрэлдэхүүн хэсгүүдийг эхлүүлсний дараа MCU нь хязгааргүй хүрд рүү ордог бөгөөд төхөөрөмжийн ажиллагааг хэрэглэгч хянадаг.

2. Бодит цагийн унтраалга, арын гэрэл ба дэлгэцийн хяналт: Хязгааргүй гогцоонд ажиллаж байх үед MCU нь төхөөрөмжийн хэсэг бүрт шинэчлэлт хийдэг. Энэ нь ямар өгөгдөл харуулах, аль товчлуур дарагдсан, арын гэрэлтүүлгийн горимыг сонгосон болно.

3. Хэрэглэгчийн цэсийн функцууд: Эдгээр функцууд нь мод шиг хэлбэртэй (Зураг X-ийг үзнэ үү) цэсийн систем ба шатлалыг төлөв байдлын машин гэж тодорхойлдог. Хэрэглэгчийн оролтоор хянагддаг төлөвт машин бүр товчлуурыг сольдог тул тохирох товчлуурыг дарахад төлөвийн машин үнэ цэнээ өөрчлөх болно. Энэ нь цэсэнд хийгдсэн төхөөрөмжийн аливаа өөрчлөлтийг тэр дор нь өөрчлөх байдлаар хийгдсэн болно.

4. Хэрэглэгчийн цэсийг солих: хэрэглэгчийн оролтыг өгөх үед цэсийн төлөв байдал өөрчлөгдөх ёстой. Тиймээс эдгээр функцууд нь төрийн машиныг хэрэглэгчээс хамааралтай хянах боломжийг олгодог. Энэ тохиолдолд: дараагийн, өмнөх ба OK.

Алхам 8: Эцсийн код ба ашигтай файлууд

Тэгээд л боллоо! Энэ алхамд та хэрэгтэй байж болох бүх файлуудыг олох боломжтой:- Цахилгааны бүдүүвч- Бүрэн эх код- Дэлгэцийн тэмдэгт бүтээгч Нэмэлт онцлог: Дэлгэцийн IC номын санд харуулах боломжтой янз бүрийн тэмдэгтүүд байдаг боловч заримыг нь оруулаагүй болно.. Хэрэв та тэмдэгтүүдийг бие даан бүтээхийг хүсвэл Print_Character ('') функц дээр ASCII лавлагаа бүхий том төлөвийг нэмнэ үү (display.c функцуудыг үзнэ үү). Энэхүү зааварчилгаа танд хэрэгтэй болно гэж найдаж байна:) Уншсанд баярлалаа!

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