
Агуулгын хүснэгт:
- Алхам 1: Цахилгаан хэлхээг бий болгох
- Алхам 2: Осциллографыг тохируулах
- Алхам 3: Програмыг татаж аваад ажиллуулна уу
- Алхам 4: Өөрийн захиалгат зургийг бүтээх
- Алхам 5: SVG файлаас координатыг Arduino IDE руу оруулна уу
- Алхам 6: ХБХ яагаад маш удаан байгааг ойлгоорой
- Алхам 7: а -аас Б хүртэл, арай хурдан
- Алхам 8: Турбо цэнэглэгчээр а -аас В хүртэл аваарай
- Алхам 9: Дүрмийг ойлгох
- Алхам 10: Их хурдтайгаар маш их хариуцлага хүлээнэ
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00


Энэхүү зааварчилгаа нь Arduino болон энгийн резистор ба конденсатор хосоос хэт хурдан аналог хүчдэлийн өөрчлөлтийг хэрхэн яаж бий болгохыг харуулж байна. Ашигтай нэг програм бол осциллограф дээр график үүсгэх явдал юм. Үүнийг хийсэн өөр хэд хэдэн төсөл бий. Johngineer нь импульсийн өргөн модуляц (PWM) ашиглан энгийн зул сарын гацуур модыг харуулж байна. Бусад нь резистор шат эсвэл дижитал-аналог хөрвүүлэгч чип ашиглан энэ төслийг сайжруулсан.
ХБХ-ийг ашиглах нь маш их анивчдаг, харин резистор шат эсвэл дижитал-аналог хөрвүүлэгч ашиглахад илүү их гаралтын тээглүүр, бүрэлдэхүүн хэсгүүдийг ашиглах боломжгүй байдаг. Миний ашигладаг хэлхээ нь зул сарын гацуур модны демо хувилбартай адилхан үхсэн энгийн резистор ба конденсатор хос боловч хамаагүй бага анивчдаг.
Нэгдүгээрт, би хэлхээг бий болгох үйл явцыг удирдан чиглүүлэх болно. Дараа нь би танд өөрийн дүр төрхийг хэрхэн яаж оруулахыг зааж өгөх болно. Эцэст нь би үүнийг илүү хурдан болгодог онолыг танилцуулах болно.
Хэрэв танд энэ заавар таалагдсан бол саналаа өгөөрэй!:)
Алхам 1: Цахилгаан хэлхээг бий болгох

Цахилгаан хэлхээг бий болгохын тулд танд дараахь зүйлс хэрэгтэй болно.
a) Armelino Uno эсвэл Arduino Nano гэх мэт Atmel 16MHz ATmega328P дээр суурилсан Arduino.
b) Хамгийн багадаа 150Ω байх R утга бүхий хоёр резистор.
c) C утгатай хоёр конденсатор, C = 0.0015 / R, жишээ:
- R = 150Ω ба C = 10µ
- R = 1.5kΩ ба C = 1µ
- R = 15kΩ ба C = 100nF
- R = 150kΩ ба C = 10nF
Эдгээр утгыг сонгох хоёр шалтгаан бий. Нэгдүгээрт, бид Arduino -ийн зүү дээрх гүйдлийг хамгийн ихдээ 40 мА -аас бага байлгахыг хүсч байна. 150Ω утгыг ашиглах нь Arduino -ийн 5V хүчдэлтэй ажиллах үед гүйдлийг 30 мА хүртэл хязгаарладаг. R -ийн том утга нь гүйдлийг бууруулдаг тул хүлээн зөвшөөрөгдөх болно.
Хоёрдахь хязгаарлалт бол бид R ба C -ийн бүтээгдэхүүн болох 1.5ms -тэй тэнцүү цагийг тогтмол байлгахыг хүсч байна. Програм хангамжийг энэ хугацаанд тогтмол тохируулсан болно. Програм хангамж дээр R ба C -ийн утгыг тохируулах боломжтой боловч түүний эргэн тойронд ажиллах нарийн хүрээ байдаг тул бүрэлдэхүүн хэсгүүдийг санал болгож буй харьцаатай аль болох ойрхон сонгох хэрэгтэй.
Үзүүлэлтийн хэлхээг хэрхэн яаж угсрахыг би танд үзүүлсний дараа RC тогтмол яагаад чухал болохыг илүү нарийвчилсан тайлбарыг онолын хэсэгт өгөх болно.
Алхам 2: Осциллографыг тохируулах

Энэхүү жагсаалд X/Y горимд тохируулсан осциллограф шаардлагатай. Туршилтын утаснуудыг схемд үзүүлсэн шиг холбох ёстой. Таны осциллограф нь минийхээс өөр байх боловч би төхөөрөмж дээрээ X/Y горимыг тохируулахын тулд шаардлагатай алхмуудыг хийх болно.
a) B суваг (X тэнхлэг) -ээр хянагдах хэвтээ шүүрийг тохируулна уу.
б) Осциллографыг хоёр сувгийн горимд тохируулна уу.
в) 0В -ээс 5В хүртэлх хүчдэлийг харуулахын тулд хоёр суваг дээрх вольт/дивийг тохируулна уу. Би өөрийн хүчийг 0.5V/div гэж тохируулсан.
d) Холболтын горимыг хоёр суваг дээр DC болгож тохируулна уу.
e) X ба Y байрлалыг Arduino -г унтраасан үед дэлгэцийн зүүн доод буланд байхаар тохируулна уу.
Алхам 3: Програмыг татаж аваад ажиллуулна уу


Програмыг Arduino -д зориулсан Fast Vector Display програмаас татаж аваарай. Програм хангамж нь GNU Affero Public License v3 -ийн дагуу лицензлэгдсэн бөгөөд энэхүү лицензийн нөхцлийн дагуу чөлөөтэй ашиглаж, өөрчлөх боломжтой.
Arduino IDE дээрх "fast-vector-display-arduino.ino" файлыг нээгээд Arduino дээрээ байршуулна уу. Хэсэг хугацааны дараа та осциллографын дэлгэц дээр "Шинэ жилийн мэнд хүргэе" анимацийг харах болно.
Би энэ төслийг Христийн Мэндэлсний Баярын өмнөх долоо хоногуудад хувийн хакатон хэлбэрээр боловсруулсан тул кодын PATTERN хувьсагчийг өөрчлөх замаар Христийн Мэндэлсний Баярын болон Шинэ жилийн сэдэвтэй мессежийг үзэх боломжтой.
Алхам 4: Өөрийн захиалгат зургийг бүтээх

Хэрэв та өөрийн гараар зураг зурахыг хүсч байвал USER_PATTERN -ийг тодорхойлсон шугам дээрх цэгийн координатыг Arduino ноорог дээр буулгаж болно.
Inkscape бол захиалгат зураг зурах маш сайн хэрэгсэл болохыг олж мэдсэн.
- Impact гэх мэт том, тод фонт ашиглан текст үүсгэх.
- Текстийн объектыг сонгоод "Path" цэснээс "Object to Path" -ийг сонгоно уу.
- Бие даасан үсгүүдийг сонгож, хооронд нь холбож хэлбэр дүрс үүсгэнэ
- Тэдгээрийг нэг муруй болгон нэгтгэхийн тулд "Path" цэснээс "Union" -г сонгоно уу.
- Хэрэв ямар ч үсэг дээр нүх байгаа бол тэгш өнцөгт багажаар тэгш өнцөгт зурж жижиг ховилыг хайчилж, "Ялгаа" багаж ашиглан контураас нь хас.
- Зангуудыг харуулахын тулд замыг хоёр товшино уу.
- Тэгш өнцөгт нь бүх зангилааг сонгоод "Сонгосон зангилааны булан болгох" хэрэгслийг дарна уу.
- SVG файлыг хадгална уу.
Хамгийн гол нь таны зурсан зураг ганц хаалттай, нүхгүй байх ёстой. Таны загвар 130 -аас бага оноотой эсэхийг шалгаарай.
Алхам 5: SVG файлаас координатыг Arduino IDE руу оруулна уу
- SVG файлыг нээж координатыг хуулж ав. Эдгээрийг "зам" элементэд оруулах болно. Эхний хос координатыг үл тоомсорлож болно; тэдгээрийг 0, 0 -ээр солих.
- Координатыг "USER_PATTERN -ийг тодорхойлох" -ны дараа хаалт доторх Arduino ноорог дээр буулгана уу.
- Бүх хоосон зайг таслалаар солино уу, эс тэгвээс хөрвүүлэх алдаа гарах болно. "Орлуулах ба хайх" хэрэгсэл нь тустай байж магадгүй юм.
- Эмхэтгэж, ажиллуулна уу!
- Хэрэв танд асуудал байгаа бол алдаа гарсан тохиолдолд цуваа консолыг үзээрэй. Ялангуяа таны хэв маягт дотоод буферт хэт олон оноо байвал та мессежийг харах болно. Ийм тохиолдолд зураг хэт их анивчих болно.
Алхам 6: ХБХ яагаад маш удаан байгааг ойлгоорой
Эхлэхийн тулд конденсатор цэнэглэж байх үеийн зан төлөвийг авч үзье.
Vcc хүчдэлийн эх үүсвэрт холбогдсон конденсатор нь экспоненциал муруйн дагуу хүчдэлээ нэмэгдүүлнэ. Энэ муруй нь шинж тэмдэггүй байдаг тул зорилтот хүчдэлд ойртох тусам удаашрах болно гэсэн үг юм. Бүх практик зорилгоор хүчдэл нь 5 RC секундын дараа "хангалттай ойрхон" байна. RC -ийг "цагийн тогтмол" гэж нэрлэдэг. Өмнө нь харсанчлан энэ нь таны хэлхээний эсэргүүцэл ба конденсаторын утгуудын бүтээгдэхүүн юм. Асуудал нь 5 RC нь график дэлгэц дээрх цэг бүрийг шинэчлэхэд нэлээд урт хугацаа юм. Энэ нь маш их анивчихад хүргэдэг!
Конденсаторыг цэнэглэхийн тулд импульсийн өргөн модуляцийг (PWM) ашиглавал бидний амьдрал тийм ч сайн биш байна. ХОУХ -ийн тусламжтайгаар хүчдэл 0В -аас 5В хооронд хурдан шилждэг. Практик дээр энэ нь бид цэнэгийг конденсатор руу түлхэж, бага зэрэг татаж авах хоёрын хооронд хурдан ээлжилдэг гэсэн үг юм. Энэ түлхэлт ба татах нь том алхам урагш, дараа нь бага зэрэг ухрах замаар марафон гүйх гэж оролдохтой адил юм. дахин дахин.
Хэрэв та бүгдийг дунджаар тооцвол ХОУХ ашиглан конденсаторыг цэнэглэх нь конденсаторыг цэнэглэхдээ Vpwm -ийн тогтмол хүчдэлийг ашигласантай яг адилхан болно. Бид хүссэн хүчдэлд "хангалттай ойртох" хүртэл ойролцоогоор 5 RC секунд шаардагдана.
Алхам 7: а -аас Б хүртэл, арай хурдан

Бидэнд Va хүртэл цэнэглэгдсэн конденсатор байна гэж бодъё. B -ийн шинэ утгыг бичихийн тулд analogWrite () ашигладаг гэж бодъё. Vb хүчдэлд хүрэх хүртэл хүлээх хамгийн бага хугацаа хэд вэ?
Хэрэв та 5 RC секундийг таасан бол энэ нь гайхалтай юм! 5 RC секунд хүлээхэд конденсатор бараг Vb хүртэл цэнэглэгдэх болно. Гэхдээ хэрэв бид хүсвэл арай бага хугацаа хүлээж болно.
Цэнэглэх муруйг хараарай. Бидний ажиллаж эхлэхэд конденсатор аль хэдийн Va дээр байсан. Энэ нь t_a цагийг хүлээх шаардлагагүй гэсэн үг юм. Хэрэв бид конденсаторыг тэгээс цэнэглэж байсан бол л хийх ёстой.
Тиймээс тэр цагийг хүлээхгүйгээр сайжирч байгааг бид харж байна. T_ab хугацаа нь үнэндээ 5 RC -ээс арай богино байна.
Гэхдээ түр хүлээгээрэй, бид илүү сайн зүйлийг хийж чадна! V_b дээрх бүх зайг хараарай. Энэ бол бидний ашиглах боломжтой хамгийн их хүчдэл болох Vcc ба бидний хүрэхийг хүсч буй Vb -ийн ялгаа юм. Нэмэлт хүчдэл нь хүссэн газраа хурдан очиход бидэнд хэрхэн тусалж байгааг та харж байна уу?
Алхам 8: Турбо цэнэглэгчээр а -аас В хүртэл аваарай

Яг зөв. Хяналтын хүчийг V_b зорилтот хүчдэлд ашиглахын оронд бид үүнийг маш богино хугацаанд тогтвортой Vcc дээр байлгадаг. Би үүнийг Turbo Charger арга гэж нэрлэдэг бөгөөд энэ нь биднийг үнэхээр хүссэн газартаа хүрэхэд хүргэдэг. Хугацаа хоцорсны дараа (үүнийг тооцоолох ёстой) бид V_b дээр ХОУХ -нд шилжиж тоормосоо дардаг. Энэ нь хүчдэлийг зорилтот хэмжээнээс хэтрүүлэхээс хамгаална.
Энэ аргын тусламжтайгаар конденсатор дахь хүчдэлийг зөвхөн ХОУХ -ийг ашиглахаас богино хугацаанд V_a -аас V_b болгон өөрчлөх боломжтой. Ингэж л газраа авна даа, хонгор минь!
Алхам 9: Дүрмийг ойлгох

Зураг нь мянган үгийн үнэтэй тул диаграммд өгөгдөл болон кодонд хийгддэг үйлдлүүдийг харуулав. Зүүнээс баруун тийш:
- График өгөгдлийг PROGMEM (өөрөөр хэлбэл флаш санах ой) цэгүүдийн жагсаалт болгон хадгалдаг.
- Орчуулах, масштаблах, эргүүлэх үйл ажиллагааны аливаа хослолыг аффин хувиргах матриц болгон нэгтгэдэг. Үүнийг анимацийн хүрээ бүрийн эхэнд нэг удаа хийдэг.
- Оноо нь график өгөгдлөөс нэг нэгээр нь уншиж, хадгалагдсан хувиргах матрицаар үржигддэг.
- Өөрчлөгдсөн цэгүүд нь харагдах талбайн гадна байгаа бүх цэгүүдийг хайчилж алгоритмаар тэжээгддэг.
- RC хоцролт хайх хүснэгтийг ашиглан оноог жолоодох хүчдэл ба хугацааны хоцрогдол болгон хувиргадаг. RC хойшлуулах хайлтын хүснэгтийг EEPROM-д хадгалдаг бөгөөд кодыг олон удаа ажиллуулахад дахин ашиглах боломжтой. Эхлэх үед RC хайх хүснэгтийн нарийвчлалыг шалгаж, буруу утгыг шинэчилдэг. EEPROM ашиглах нь үнэ цэнэтэй RAM санах ойг хэмнэдэг.
- Жолоодлогын хүчдэл ба хоцролтыг хүрээний буфер дахь идэвхгүй хүрээ рүү бичнэ. Хүрээний буфер нь идэвхтэй хүрээ ба идэвхгүй хүрээний орон зайг агуулдаг. Бүрэн хүрээ бичсэний дараа идэвхгүй хүрээ идэвхтэй болно.
- Тасалдлын үйлчилгээний горим нь хүчдэлийн утгыг уншиж, идэвхтэй хүрээний буферээс саатал гаргах замаар зургийг байнга дахин зурдаг. Эдгээр утгууд дээр үндэслэн гаралтын тээглүүрүүдийн ажиллах мөчлөгийг тохируулдаг. Таймер 1 нь цаг хугацааны хоцролтыг хэд хэдэн наносекунд хүртэл нарийвчлалтай хэмжихэд ашигладаг бол таймер 2 нь тээглүүрүүдийн ажиллах мөчлөгийг хянахад ашиглагддаг.
- Хүчдэлийн хамгийн их өөрчлөлттэй тээглүүр нь үргэлж "турбо цэнэглэгдсэн" үүргийн мөчлөгтэй тэг буюу 100%бөгөөд хамгийн хурдан цэнэглэх эсвэл цэнэглэх хугацааг өгдөг. Хүчдэл бага өөрчлөгддөг зүү нь эхний зүүний шилжилтийн хугацаатай тохирч ажиллах циклээр удирддаг бөгөөд энэ удаад тохирох нь осциллограф дээр шулуун зураас гаргахад чухал ач холбогдолтой юм.
Алхам 10: Их хурдтайгаар маш их хариуцлага хүлээнэ
Энэ арга нь ХОУХ -ээс хамаагүй хурдан байдаг тул яагаад analogWrite () үүнийг ашигладаггүй вэ? Яагаад гэвэл зүгээр л ХБХ ашиглах нь ихэнх програмд хангалттай сайн байдаг бөгөөд үүнээс хамаагүй илүү өршөөлтэй байдаг. "Турбо цэнэглэгч" арга нь болгоомжтой кодчилол шаарддаг бөгөөд зөвхөн тодорхой тохиолдолд тохиромжтой байдаг.
- Энэ нь цаг хугацааны хувьд маш мэдрэмтгий байдаг. Зорилтот хүчдэлийн түвшинд хүрмэгц зорилтот хүчдэлийг хэтрүүлэхгүйн тулд жолооны зүүг тогтмол ХОУХ -ны горимд шилжүүлэх ёстой.
- Энэ нь RC тогтмол байдлын талаархи мэдлэг шаарддаг тул эдгээр утгыг урьдчилан оруулах ёстой. Буруу утгатай бол цаг буруу, хүчдэл буруу байх болно. Тогтмол ХБХ -ийн тусламжтайгаар RC тогтмол нь мэдэгдэхгүй байсан ч гэсэн тодорхой хугацааны дараа зөв хүчдэлд шилжих баталгаа бий.
- Конденсаторыг цэнэглэх тодорхой хугацааны интервалыг тооцоолохын тулд Arduino дээр бодит цаг хугацаанд тооцоолоход хэт удаан логарифмын тэгшитгэл шаардлагатай болно. Эдгээрийг анимацийн хүрээ бүрийн өмнө урьдчилан тооцоолж, хаа нэгтээ санах ойд хадгалах ёстой.
- Энэ аргыг ашиглах програмууд нь хоцролт нь шугаман бус (үнэндээ экспоненциал) байдагтай маргах ёстой. Vcc эсвэл GND -ийн ойролцоох зорилтот хүчдэл нь дунд цэгийн ойролцоох хүчдэлээс илүү их хэмжээний захиалга авахад илүү урт хугацаа шаардагдах болно.
Эдгээр хязгаарлалтыг даван туулахын тулд миний вектор график код дараахь зүйлийг хийдэг.
- Энэ нь 16 кГц давтамжтай Timer 1 -ийг ашигладаг бөгөөд гаралтыг зөв зохицуулах, цагийг нь тасалдуулах үйлчилгээний горимыг ашигладаг.
- Энэ нь конденсатор ба резисторын утгыг хязгаарлахын тулд RC цагийн тогтмол утгыг ашиглах шаардлагатай болно.
- Энэ нь бүх цэгүүдийн хоцролтыг санах ойн буферт хөдөлгөөнт дүрс дотор хадгалдаг. Энэ нь цаг хугацааны хоцролтыг тооцоолох горим нь гаралтын тээглүүрийг шинэчлэх тасалдлын үйлчилгээний горимоос хамаагүй удаан ажилладаг гэсэн үг юм. Дараагийн жаазыг хойшлуулах шинэ багцыг ашиглахад бэлэн болохоос өмнө өгөгдсөн хүрээ бүрийг хэдэн арван удаа будаж болно.
- Санах ойн буфер ашиглах нь нэг фреймд зурж болох цэгүүдийн тоог хязгаарладаг. Би байгаа RAM -ийг хамгийн их ашиглахын тулд орон зайг хэмнэх кодчилол ашигладаг боловч 150 орчим оноогоор хязгаарлагддаг. Хэдэн зуун онооноос цааш дэлгэц ямар ч байсан анивчих болно, тиймээс энэ бол маргаантай асуудал юм!
Зөвлөмж болгож буй:
50 доллараас доош хурдан шилжүүлэх! Kazeshifter Arduino тохируулж болох хурдан шилжүүлэгч: 7 алхам

50 доллараас доош хурдан шилжүүлэх! Kazeshifter Arduino тохируулж болох хурдан шилжүүлэгч: Сайн байна уу, супербикэл эсвэл мотоцикл сонирхогчид! Энэ заавар дээр би өөрийн гараар хурдан шилжүүлэгчийг хэрхэн хямд үнээр хийх талаар хуваалцах болно. Энэхүү зааварчилгааг уншихаас залхуу хүмүүс миний видеог үзээрэй. Жич: Зарим дугуйнд зориулагдсан. аль хэдийн түлш шахах системийг ашиглаж байсан, зарим үед
Нэг аналог зүү ашиглан олон аналог утгыг хэрхэн унших вэ: 6 алхам (зурагтай)

Нэг аналог зүү ашиглан олон тооны аналог утгыг хэрхэн унших вэ: Энэхүү гарын авлагад би зөвхөн нэг аналог оролтын зүү ашиглан олон аналог утгыг хэрхэн уншихыг танд үзүүлэх болно
Raspberry Pi GPIO хэлхээ: ADC -гүй LDR аналог мэдрэгчийг ашиглах (дижитал хөрвүүлэгчийн аналог): 4 алхам

Raspberry Pi GPIO хэлхээ: ADC -гүй LDR аналог мэдрэгчийг ашиглах (Дижитал хөрвүүлэгчийн аналог): Бидний өмнөх зааварчилгаанд бид Raspberry Pi -ийн GPIO тээглүүрийг LED, унтраалга руу хэрхэн холбох, GPIO зүү хэрхэн өндөр болохыг харуулж байна. эсвэл Бага. Гэхдээ хэрэв та Raspberry Pi -г аналог мэдрэгчтэй ашиглахыг хүсвэл яах вэ? Хэрэв бид
МИНЕКРАФТЫН ӨӨРИЙН ҮЙЛЧИЛГЭЭГ БҮТЭЭ! Супер хялбар, хурдан, үнэгүй! (БИЧЛЭГ ДАРАХГҮЙ): 11 алхам (зурагтай)

МИНЕКРАФТЫН ӨӨРИЙН ҮЙЛЧИЛГЭЭГ БҮТЭЭ! Супер хялбар, хурдан, үнэгүй! (CLICK BAIT байхгүй): Minecraft бол хүссэн зүйлээ хийх боломжтой маш хөгжилтэй тоглоом юм! Гэхдээ интернэтээр найзуудтайгаа тоглох нь заримдаа хэцүү байдаг. Харамсалтай нь ихэнх тоглогчдын ихэнх нь троллоор дүүрсэн байдаг
Хурдан, хурдан, хямд, сайхан харагддаг LED өрөөний гэрэлтүүлэг (хүн бүрт зориулсан): 5 алхам (зурагтай)

Хурдан, хурдан, хямд, сайхан харагддаг LED өрөөний гэрэлтүүлэг (хүн бүрт зориулсан): Бүгдийг тавтай морилно уу :-) Энэ бол миний анхны зааварчилгаа тул сэтгэгдлээ хүлээн авна уу :-) Миний танд үзүүлэх гэж байгаа зүйл бол хурдан LED гэрэлтүүлгийг хэрхэн яаж хийх вэ. TINY buget.Танд хэрэгтэй зүйл бол: CableLEDsResistors (5VOhms for 12V) StapelsGehmer ironCutters and other basi