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

Осу! Гар: 8 алхам (зурагтай)
Осу! Гар: 8 алхам (зурагтай)

Видео: Осу! Гар: 8 алхам (зурагтай)

Видео: Осу! Гар: 8 алхам (зурагтай)
Видео: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, Долдугаар сарын
Anonim
Осу! Гар
Осу! Гар

Саяхан би osu нэртэй хэмнэлтэй тоглоом тоглож эхлэв! мөн арилжааны мини гарны видеог үзсэний дараа өөрөө загвар зохион бүтээх нь хөгжилтэй төсөл гэж бодсон. Төд удалгүй би үүнийг анхны төсөл болгон зааварчилгаа өгөх нь зүйтэй гэж шийдсэн.

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

Тэмдэглэл 1: SMD бүрэлдэхүүн хэсгүүдийг (жижиг электроник) ашигладаг тул хэрэв та энэ төслийг давтвал гагнуурын ур чадвар шаардагдана. магадгүй гагнах хялбар хувилбарыг нэмж болох боловч эдгээр LED нь нүхний багцад ороогүй болно

Тэмдэглэл 2: Би кодыг олон удаа шинэчилсэн бөгөөд одоо 3ish хувилбар хүртэл байна. Би бүх кодыг онлайнаар үлдээх болно, гэхдээ хамгийн сүүлийн хувилбарыг ашиглахыг зөвлөж байна. Энэ нь одоогоор удирдан чиглүүлэх функцгүй боловч хамгийн сайн гүйцэтгэлтэй байх ёстой.

Алхам 1: Материал ба тайлбар

Материал ба тайлбар
Материал ба тайлбар

Төслийг хэрхэн яаж хийхээс хамааран танд өөр өөр бүрэлдэхүүн хэсгүүд хэрэгтэй байж магадгүй, гэхдээ эдгээр бүрэлдэхүүн хэсгүүд нь миний ашигласан хэсгүүд юм. Хэрэв танд цаг хугацаа байгаа бөгөөд мөнгөө хэмнэхийг хүсч байвал aliexpress маягтыг захиалж, ПХБ -ийг бүү захиалаарай.

1 Arduino pro micro + USB кабель

3 Kailh BOX улаан унтраалга

3 10k эсэргүүцэл (0805 SMD)

3 100nF конденсатор (0805 SMD)

4 APA102 rgb LED (5050 SMD)

3 товчлуур

1 Энэхүү төсөлд оруулсан хэвлэмэл хэлхээний самбар (ПХБ)

Энэхүү төсөлд оруулсан 3D хэвлэсэн 1 хайрцаг

Би яагаад Arduino pro micro ашигладаг вэ?

Uno (Atmega328) гэх мэт ихэнх arduino самбарууд нь USB холболтыг дэмждэггүй. Тийм ээ, та тэдгээрийг USB -ээр маш хялбархан програмчилж болно, миний бодлоор тойрч гарах арга зам байдаг, гэхдээ USB холболтын хувьд үүнийг энгийн байлгах дуртай бөгөөд энэ арга нь хариу өгөх чадвартай эсэхийг мэдэхгүй байна. Эдгээр самбарууд нь USB холболтыг боломжтой болгохын тулд гадаад чип ашигладаг бол Arduino pro micro (Atmega32U4) суулгасан болно.

Шилжүүлэгчид

Таны ашиглаж болох олон тооны механик унтраалга байдаг. Kailh эсвэл Cherry MX -ийн шугаман, хүрэлцэх эсвэл даралттай. Аль дуртайгаа сонгоорой. Ailexpress дээр хямд байсан тул би Kailh унтраалгыг ашигласан. Хэрэв та ПХБ ашиглахаар шийдсэн бол танд Kailh BOX унтраалга хэрэгтэй болно. Өнгө нь мэдрэмжийг тодорхойлдог.

Цахим бүрэлдэхүүн хэсгүүд

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

Орон сууц

Би энэ төсөлд орон сууц өгч байгаа боловч одоогоор энэ нь алдаатай байна. Боолтыг тохируулахын тулд өөрчлөлт хийх шаардлагатай, жолоодлогын нүх нь оновчтой биш, ардуино ил гарсан, USB -ийг тааруулахын тулд хэсгийг нь таслах шаардлагатай байна. Ирээдүйд шинэ орон сууц нэмж болно. Хэрэв танд 3D принтер байгаа бол үүнийг хэвлээд үзээрэй, гэхдээ хэрэв та ямар нэгэн төслийн хайрцгийг ашиглаагүй бол энэ алдаатай хэргийг хэвлэх гэж бүү яараарай.

Алхам 2: Схем

Схем
Схем

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

Arduino руу холболтоо солино уу

Шилжүүлэгчид нь Arduino 0, 2, 3 -р зүүтэй холбогдсон байдаг, учир нь тэдгээр зүүг гадны тасалдал болгон ашиглаж болно. Үүнийг кодын хэсэгт дэлгэрэнгүй тайлбарласан болно.

Татгалзах хэлхээ

Схемийн зүүн талд 3 удаа хуулагдсан хэлхээ байна. Энэ хэлхээг унтраалгыг задлахад ашигладаг. Татгалзах гэж юу болохыг мэдэхийн тулд та үсрэх үсрэлтийг ойлгох хэрэгтэй бөгөөд үүнийг ойлгоход хэцүү биш юм.

Эхний зургийг зурахын тулд эхлээд энэ симуляцийг хараарай (унтраалгыг хурдан дараад доорх дохиог харна уу)

Та товчлуурыг дарах эсвэл суллахад энэ нь огцом унаж, таны дохио хэдэн миллисекундээр хоёр удаа солигддог. An Arduino үнэхээр хурдан бөгөөд энэ богино хугацаанд өндөр намыг уншдаг. Хөтөлбөр нь дээд эсвэл доод түвшинг унших бүрт товчлуур дарах эсвэл суллах тул таны компьютер олон товчлуур дарах болно. Ритм тоглоомд тохиромжгүй.

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

Дэвшилтэт:

Atmaga32U4 нь 0.2Vcc - 0.1V = 0.9 вольтын дижитал бага уншдаг. Конденсаторыг цэнэглэх үед түүний хүчдэл Vcc * e^(-t/RC) байна. Хэрэв та унтраалгаараа унах хугацааг өөрөөр хэмжвэл резистор ба конденсаторын утгыг тооцоолж болно.

томъёо маягт

LED нь

Rgb LED нь APA102 LED бөгөөд тэдгээрийг цаг, өгөгдлийн шугам ашиглан дангаар нь шийдвэрлэх боломжтой. Тэдгээрийг ажиллуулахын тулд гадны бүрэлдэхүүн хэсгүүд шаардлагагүй болно. Олон LED -ийн хувьд та 5 вольт ба газардуулгатай параллель конденсатор ашиглах ёстой, гэхдээ ердөө 4 LED -тэй бол танд хэрэггүй.

Алхам 3: Самбарын дизайн

Удирдах зөвлөлийн дизайн
Удирдах зөвлөлийн дизайн

ПХБ -ийг JLCPCB дээр бүтээсэн. Би тэднийг ивээн тэтгэдэггүй, гэхдээ хямд прототипийн хувьд тэд маш сайн ПХБ хийдэг. 2 долларын хувьд та ижил самбараас 10 ширхэг авах болно, гэхдээ тээвэрлэлт миний хувьд ойролцоогоор 11 доллар байв. Хэрэв та rgb гэрэлтүүлгийг хүсэхгүй байгаа бөгөөд зөвхөн нэгийг хийхээр төлөвлөж байгаа бол гараа ПХБ -гүйгээр хийх талаар бодож үзэх хэрэгтэй.

Удирдах зөвлөлийн дизайн нэлээд шулуун байв. Надад зөвхөн унтраалгын бүрэлдэхүүн хэсгийг нэмэх шаардлагатай байсан боловч зарим видеог үзсэний дараа би үүнийг олж авлаа. Миний ойлгосон цорын ганц алдаа бол нүхийг байрлуулах нь унтраалгад арай ойрхон байна.

ПХБ -ийг захиалахын тулд https://jlcpcb.com/ хаягаар орж 2 давхар сонголтыг сонгоно уу. Энэ нь танаас Gerber файл шаардах болно. ".zip" файлыг татаж аваад цонх руу чирнэ үү. Та үүнийг задлах шаардлагагүй. Тохиргоо сайн байх ёстой бөгөөд та үргэлжлүүлэн захиалгаа хийж болно.

Алхам 4: Кейс дизайн, угсрах зөвлөмж

Кейс дизайн, угсрах зөвлөмжүүд
Кейс дизайн, угсрах зөвлөмжүүд
Кейс дизайн, угсрах зөвлөмжүүд
Кейс дизайн, угсрах зөвлөмжүүд
Кейс дизайн, угсрах зөвлөмжүүд
Кейс дизайн, угсрах зөвлөмжүүд
Кейс дизайн, угсрах зөвлөмжүүд
Кейс дизайн, угсрах зөвлөмжүүд

Дизайн

Өмнө нь хэлсэнчлэн миний дизайн алдаатай байсан ч хэрэв та хүсвэл хэвлэж болно. Энэхүү загварыг Fusion 360 -д хийсэн болно. Энэ бол 3D загварчлах үнэгүй програм хангамж бөгөөд зохион бүтээгч, хатуу ажлын туршлагаас харахад ажиллахад маш хялбар байсан. Хэргийн булан дахь дугуйлан нь хэвлэмэл хуудаснаас хальслахаас сэргийлдэг.

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

Чуулган

Одоо танд угсрахад шаардлагатай бүх бүрэлдэхүүн хэсгүүд байна. Шилжүүлэгчийг гагнасан тул энэхүү анхны хувилбарыг угсрах захиалга байдаг.

1. SMD бүрэлдэхүүн хэсгүүдийг гагнах. Эдгээр нь резистор, конденсатор, LED юм.

2. Arduino pro micro -ийг гагнах.

3. Гагнахаасаа өмнө 3 унтраалгыг 3D хэвлэсэн хавтсанд хийнэ. Шилжүүлэгчийг гагнаж дууссаны дараа тагийг тайлах боломжгүй. Шилжүүлэгчийг гагнаас салгахыг зөвлөдөггүй бөгөөд үүнийг устгах боломжтой.

4. Одоо унтраалгуудыг гагнана. Хуванцар унтраалга нь хайлж, эвдэж, товшилтын тоог эрс бууруулдаг тул үүнийг аль болох хурдан хий.

5. Угсарсан тагийг 3D хэвлэсэн хайрцагт хийж, түлхүүрийн товчлуурт саад учруулахгүй бол боолт ашиглан туузаар бэхлээрэй.

6. KeyCaps -ийг унтраалган дээр тавь, тэгээд дууссан.

Зөвлөмж

Кодоо байршуулсны дараа arduino дээрх LED -ийг задлах эсвэл маск хийх. Хэрэв таны код байршуулагдаагүй ч бэлэн бүтээгдэхүүн гэж үзэх нь тийм ч таатай биш байвал LED -ууд танд таалагдах болно. Чадвартай, үзүүртэй хясаа шаардлагатай.

Мөн доод талын зарим атгах хөл нь гулсахаас хамгаалж, rgb гэрлийг гэрэлтүүлдэг.

Алхам 5: Код V1 (тоног төхөөрөмжийн дебаг)

Код V1 (техник хангамжаас гарах)
Код V1 (техник хангамжаас гарах)
Код V1 (техник хангамжаас гарах)
Код V1 (техник хангамжаас гарах)

Энэ төслийн код нь эхлэгчдэд тохиромжгүй тул хэрэв та arduino програмыг дөнгөж эхэлж байгаа бол энэ код таныг жаахан айлгах болно. Гэсэн хэдий ч би юу болж байгааг аль болох сайн тайлбарлахыг хичээх болно. Зарим зүйлийг дараа нь энэ текст дээр тайлбарласан байгаа тул хэрэв танд асуулт байвал эхлээд бүхэлд нь уншина уу.

Кодыг байршуулж байна

Эхлээд бүх 3 ".ino" файлыг татаж аваад нэг хавтсанд хийнэ үү. Хэрэв танд Arduino IDE байхгүй бол үүнийг албан ёсны arduino сайтаас үнэгүй татаж аваарай.

Arduino -г компьютерт холбоод "OSU_Keyboard_code_V1.ino" -г нээнэ үү. Хэрэгслийн самбараас "Arduino/Genuino Micro" -г сонгоно уу. Мөн Хэрэгслүүд дотроос зөв COM портыг сонгоно уу. Кодыг Arduino -д байршуулахын тулд дэлгэцийн зүүн дээд буланд байгаа сумыг дараад зүүн доод хэсэгт дууссан гэж хэлтэл хүлээнэ үү.

OSU_Keyboard_code_V1

Үүнд, тодорхойлох

Эхлээд та Keyboard номын санг оруулах хэрэгтэй. Энэ нь Arduino -ийг гар болгон ашиглах боломжийг олгодог.

Дараа нь би зарим утгыг тодорхойлдог. Тодорхойлолт нь яг л хувьсагчтай адил боловч програм ажиллаж байх үед тэдгээр нь өөрчлөгдөж чадахгүй. Эхний 9 нь гарын тэмдэгт, arduino зүү дугаар, порт битэнд зориулагдсан болно.

Дараа нь LED өгөгдөл ба цагны портууд.

Мөн LED -ийн тоог тодорхойлж, өнгөний хүрдний өнцгийн хувьсагчийг тодорхойлно.

Тохируулах

Кодын энэ хэсгийг arduino залгасан үед л ганцхан удаа гүйцэтгэх болно.

Нэгдүгээрт, LED -ийн цаг ба өгөгдлийн зүүг гаралт, шилжүүлэгчийн зүүг оролт болгон тохируулна. Энэ бол pinMode () -ийн дэвшилтэт хувилбар юм. Хэрэв та сонирхож байгаа бол "шууд портыг удирдах" -ыг хайж олоорой.

Keyboard.begin () нь USB холболтыг гар хэлбэрээр эхлүүлдэг.

Дараагийн 3 тасалдлыг сэлгэн залгууртай холбоно. Шилжүүлэгчийн зүү дээр өөрчлөлт илрэх бүрт жижиг програм ажиллах болно. Энэхүү бяцхан хөтөлбөрийг цаашид хийх болно.

Гогцоо

Arduino асаалттай байх үед энэ хэсэг тасралтгүй давтагдах болно.

Би үүнийг зөвхөн LED -ийн өнгийг өөрчлөх, шинэчлэхэд ашигладаг.

Тасалдаг

Энд зөвхөн шилжүүлэгчийн зүү дээр өөрчлөлт гарсан тохиолдолд л ажиллах жижиг програмуудыг хийдэг. Тэд ямар зүүнд хариу үйлдэл үзүүлэхээс бусад тохиолдолд ижил байдаг.

Эхлээд товчлуур дарагдсан эсвэл суллагдсан эсэхийг шалгаж, гарын зөв командыг илгээдэг.

LED (өөр дарааллаар тайлбарласан)

Хэрэв та LED -ийг хэрхэн хянах талаар сонирхож байвал APA102 мэдээллийн хуудсыг үзэх хэрэгтэй.

OneBit

Энэ бол дахин дижитал бичих шууд порт хувилбар юм.

Нэгдүгээрт, энэ нь 0 эсвэл 1 -ийг илгээх эсэхийг шалгаж, өгөгдлийн зүүг бага эсвэл дээш татаж авдаг. Дараа нь цагны зүүг маш богино өндөрт бичээд дахин намхан бичнэ.

OneByte

Энэ нь "for" давталтаар oneBit -ийг 8 удаа давтана. Энэ нь эхний битийг байтаар уншиж, түүний утгыг oneBit функцэд дамжуулж, дараагийн 7 битийн хувьд ижил зүйлийг хийдэг.

LedData

Энэ нь oneByte -ийг 4 удаа давтаж нэг ледэд шаардлагатай өгөгдлийг өгөх болно. Эхний байт нь 111xxxxx -ээс эхэлж, xxxxx -ийн оронд 5 битийн гэрэлтүүлгийн утгатай байна. Гэрэлтүүлгийг 0 -ээс 31 хүртэл тохируулж болно (2^5 = 32 түвшин).

Дараагийн 3 байт нь хөх, ногоон, улаан утгуудад зориулагдсан болно. Өнгө тус бүрт нэг байт.

ColorWheelThisLed

Энэ функцийг ledData гэж нэрлэдэг бөгөөд энэ нь өнгөний хүрдний өнцөгөөс хамааран rgb өнгийг өгдөг.

16 битийн утга нь 60 градусын ижил зайтай 6 хэсэгт ногдол ашиг юм. Зургийг үзэх нь илүү сайн ойлгоход тусална.

(8 битийн хувилбарыг бас оруулсан боловч хэтэрхий анивчсан тул тайлбарласан байгаа)

StartEndFrame

Лед рүү шинэ өнгө илгээх, гэрлийн өнгийг шинэчлэхийг хүсэх бүрт эхлэх хүрээг ашиглах шаардлагатай.

Би төгсгөлийн хүрээ шаардлагагүй тул зөвхөн эхлэлийн хүрээг ашигладаг. Эхлэх хүрээ нь 4 байт 0. Төгсгөлийн хүрээ 255 (11111111) 4 байт байна.

Алхам 6: Code V2 (таймер ашиглан програм хангамжийг тайлах)

Код V2 (таймер ашиглан Debounce програм хангамж)
Код V2 (таймер ашиглан Debounce програм хангамж)

Хэсэг тоглосны дараа тоног төхөөрөмжийн эвдрэлээс болж давхар товших асуудал гарч ирэв. Үүнийг бусад утгын резистор эсвэл конденсатороор засч болно, гэхдээ товчлуурууд болон тагийг салгаж авдаггүй тул програм хангамжийг задлах нь маш сайн шийдэл байх болно гэж би бодсон. Програм хангамжийн сулрах нь тоног төхөөрөмжийн дебют хийгдэх эсвэл хийгдээгүй үед ажиллах ёстой. Одоогийн тохиргоонд би тагийг нь салгаагүй тул резистор ба конденсаторыг зүгээр л орхисон.

Би кодыг өмнөх хувилбар шиг өргөн тайлбарлахгүй, учир нь тайлбарлахад арай хэцүү байна.

Үндсэндээ ихэнх код нь адилхан ажилладаг бөгөөд удирдсан код нь гар хүрээгүй байдаг. Өөрчлөгдсөн зүйл бол гадны тасалдал нь arduino функцийг ашиглахаа больсон явдал юм. Одоо энэ нь цэвэр C кодоор ажилладаг. Тэгээд одоо нэмж оруулсан зүйл бол програм хангамжийн тасалдал юм. Үүний тулд би AVR таймеруудыг ашиглан үсрэлт зогсох хүртэл тодорхой хугацаа хүлээв. Цаг хэмжигч тасалдсан тул давталтад юу ч нөлөөлөхгүй.

Миний олж мэдэх цорын ганц сул тал бол arduino хойшлуулах функцийг цаашид ашиглах боломжгүй юм. Учир нь хойшлуулах функцууд Таймер 0 -ийг ашигладаг бөгөөд энэ програм нь тайлан гаргахын тулд Таймер 0 -ийг ашигладаг.

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

Алхам 7: Код V3 (босоо тоолууртай програм хангамж Debounce) (санал болгосон) (LED байхгүй)

Код V3 (Босоо тоолууртай програм хангамж Debounce) (зөвлөж байна) (LED байхгүй)
Код V3 (Босоо тоолууртай програм хангамж Debounce) (зөвлөж байна) (LED байхгүй)

Энэ код нь резисторыг буулгах шаардлагагүй хувилбартай. Товчлуур бүрийг оролт болон GROUND руу холбосон эсэхээ шалгаарай! Баригдсан татах төхөөрөмжийг ашигладаг

Би бас V2 кодонд бүртгэгдээгүй зарим даралтыг мэдэрсэн. Код нь цаг хэмжигч, гадаад тасалдалтай холбоотойгоор хэтэрхий төвөгтэй болсон гэж би бодож байна. Энэ шалтгааны улмаас би програм хангамжийг задлах аргуудыг интернетээс хайхаас эхнээс нь татгалзав.

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

Хэсэг хайсны эцэст би энэ бичлэгийг олж харлаа.

www.compuphase.com/electronics/debouncing….

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

Миний тайлбар

Миний нэмж оруулсан цагийн диаграм (WaveDrom -д хийсэн) нь математикийг ойлгоход наад зах нь арай илүү ойлгомжтой болгоход тусална. Зураг нь 2 тоологчтой болохыг анхаарна уу, гэхдээ миний код 3 -тай байна. Энэ нь илүү урт хугацаа алддаг гэсэн үг юм.

Нэг утга тутамд нэг бит

Босоо тоолуурыг ашигласнаар олон товчлуурыг нэгэн зэрэг задлах боломжтой болно. Бүх утгууд нь Byte (uint8_t) төрөл бөгөөд 8 битээс бүрдэнэ. Эдгээр байтуудын аль нь ямар үнэ цэнэтэй болохыг бид санаа зовдоггүй, харин битүүдийг бие даан сонирхож байна. Татгалзах товон бүр байт бүрийн нэг битийг л ашигладаг. Эхний товчлуур нь байт бүрийн зөвхөн эхний битийг ашигладаг бол хоёр дахь товчлуур нь хоёр дахь битийг ашигладаг.

Бүгд нэгэн зэрэг

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

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

Татгалзах

Цуцлах горимыг 1 миллисекунд тутамд таймер тасалдалтаар гүйцэтгэдэг.

товчлуур дарагдсан үед товчлуур дарагдсаныг илтгэсэн төлөв байдал нэн даруй буурах болно. Хувилбарыг илрүүлэхийн тулд товчлуур хангалттай өндөр байх ёстой бөгөөд энэ нь тодорхой хугацаанд үсрээгүй болохыг харуулж байна. Toggle нь товчлуурын өөрчлөлтийг харуулахад хэрэглэгддэг. Тоолуурын битүүдийг… -д ашигладаг. үсрэлт хийгээгүй хэр удаж байгааг тоолж байна.

Дельта нь оролт ба зарлагдсан төлөв хоёрын ялгааг илэрхийлдэг. Зөвхөн ялгаа гарсан тохиолдолд л тоолуур тоолох болно. үсрэлт илрэх үед тоолуурыг дахин тохируулах болно (дельта 0 байна).

Алхам 8: Үр дүн

Image
Image

Хэрэв бүх зүйл сайн болсон бол одоо Osu тоглохын тулд ажиллах гартай байх ёстой! дээр. Би хувьдаа ямар ч хоцролтыг анзаараагүй. Хэрэв тийм бол надад мэдэгдээрэй. Мөн асуух зүйл байвал асууж болно.

V2 -ийн талаар өмнө дурдсан нь амлалт биш тул та V2 -ийг хүлээхийг хүсч байгаа тул энэ төслийг хойшлуулж болохгүй.

Танд гар таалагдсан гэж найдаж байна!

Осу! нэр: Thomazzz3

Алдааг олж засварлах

Хэрэв та гар дээрээ асуудалтай байна гэж бодож байвал эхлээд текст засварлагчийг нээж товчлуур бүрийг богино хугацаанд дарна уу.

Нэг эсвэл олон түлхүүр ажиллахгүй байна уу?

Гагнуур хийх явцад та унтраалгыг дотор нь устгасан байж магадгүй юм. Хэрэв танд мултиметр байгаа бол түүнийг тасралтгүй/дуут дохио өгөхөд Arduino холбогдоогүй байхад унтраалгатай зэрэгцүүлээд товчлуурыг дарна уу. Энэ нь дуугарах ёстой.

Сая бичсэн тэмдэгтүүд нь Осу дээр тохируулсан товчлууруудтай таарч байгаа эсэхийг шалгаарай! ?

Эхний 3 дахь #arifino кодын тэмдэгтүүдийг өөрчил # #Тодорхойлдог ('' зайлшгүй шаардлагагүй!).

Эсвэл Осугаа өөрчил! тохируулсан түлхүүрүүдийг ашиглах тохиргоо.

Нэг эсвэл олон түлхүүр хэд хэдэн удаа давтагддаг уу?

Гагнах хэлхээ нь таны унтраалгын хувьд ажиллахгүй эсвэл зөв гагнаагүй байна. Гагнуурын холболтоо шалгана уу. Хэрэв энэ нь хэвээр байвал 1uF конденсаторыг туршиж үзээрэй. Энэ нь ПХБ -ийн хэрэглэгчдэд маш хэцүү байх болно.

Хэрэв та LED -тэй холбоотой асуудалтай тулгарвал

LED гэрэл анивчиж байна уу?

Гагнуурын холболт сул байж магадгүй. Хэрэв та ПХБ ашиглавал гагнуурын цагаан тугалга хэвлэмэл хуудсан дээр үнэхээр урсаж байгааг баталгаажуулна уу.

Ледүүдийн аль нь ч ажилладаггүй эсвэл тодорхой тооны LED нь ажиллахаа больсон уу?

Эхний LED холболтын хоорондох шорт байгаа эсэхийг шалгаарай (замуудыг дагаж), Arduino -ийн гаралт дээр сайн холбогдсон цагаан тугалга байгаа эсэхийг шалгаад анхны LED -ийг шалгана уу. Хэрэв зөв эсэхийг шалгаж, гэмтэлтэй хэвээр байгаа бол эхний LED -ийг солих шаардлагатай болж магадгүй юм.

Хэрэв энэ нь засагдсан бол шаардлагатай бол дараагийн LED -ийг давтана.

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