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

Унадаг дугуйн дохионы гэрэл: 10 алхам (зурагтай)
Унадаг дугуйн дохионы гэрэл: 10 алхам (зурагтай)

Видео: Унадаг дугуйн дохионы гэрэл: 10 алхам (зурагтай)

Видео: Унадаг дугуйн дохионы гэрэл: 10 алхам (зурагтай)
Видео: 10 самых АТМОСФЕРНЫХ мест Дагестана. БОЛЬШОЙ ВЫПУСК #Дагестан #ПутешествиеПоДагестану 2024, Арванхоёрдугаар сар
Anonim
Дугуйн гар дохионы гэрэл
Дугуйн гар дохионы гэрэл

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

Тэмдэглэл: Энэ нь гагнах талаар өмнөх мэдлэг шаарддаг бөгөөд AVR -ийг хэрхэн програмчлах талаархи санаа нь том давуу тал болно. Үүнийг санаж, хөгжилтэй байж, тэвчээртэй байж, бүтээгдэхүүнийхээ зургийг доор оруулаарай! Энд видео байна: Энд миний зураг байна:

Алхам 1: эд анги

Эд анги
Эд анги

x1 ATmega 32L 8PU (www.digikey.com) x1 40 зүү DIP сокет (www.digikey.com) x1 8x8 LED массив (www.sparkfun.com) x1 74138 Де мультиплексор (www.digikey.com) x2 уян мэдрэгч (www.sparkfun.com) x (Олон) резистор 180 ом ба 10 к ом 2 PC самбар (www.sparkfun.com) x6 Стандартууд (www.sparkfun.com) ба тохирох эрэг (Орон нутгийн тоног төхөөрөмжийн дэлгүүр) x1 Таслах самбар дээрх хурдасгуур (www.sparkfun.com) x2 Толгой - Эр (www.sparkfun.com), Эмэгтэй (www.sparkfun.com), Зөв өнцөг (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8 зүү залгуур (Би Radio Shack-д авсан) x1 9v зай x1 хөл дээр наалддаг velcrox1 Бүтэн хуруутай дугуй бээлий1 дамар полиэстер threadx1 Программист (надад ийм байгаа) x1 Утас хуулагч ба клипx1 мультиметр Зарим хэсгүүд:

Алхам 2: Самбарыг бэлтгэх

Самбаруудыг бэлтгэ
Самбаруудыг бэлтгэ
Самбаруудыг бэлтгэ
Самбаруудыг бэлтгэ
Самбаруудыг бэлтгэ
Самбаруудыг бэлтгэ
Самбаруудыг бэлтгэ
Самбаруудыг бэлтгэ

Нэгдүгээрт, эсэргүүцлийг нэмнэ үү. Тохирох өндрийг авахын тулд та хоёр боолт хийх хэрэгтэй болно. Зөрчилдөөнүүд нь SQUARE дэвсгэрээр хажуу талаасаа уруудаж байгаа эсэхийг шалгаарай. Ингэснээр та ёроолыг гагнуураар холбож, дээд хэсэгт нь энгийн дэвсгэртэй холбож, газартай холбож болно. Дараа нь LED массивыг нэмж гагнана. Энэ нь YS -ийг эсрэг тал руу харсан шиг хоёр хавтантай хавтангийн ирмэг хүртэл байх ёстой. Зүүн доод буланд байгаа зүү нь 1 -р зүү юм. (Зураг дээр үүнийг бас тэмдэглэсэн болно.) Дараа нь 8 зүү бүхий хоёр залгуурыг нэг нэгнийхээ дээр нэмж 16 зүү залгуур үүсгэнэ. Зүүн талд нь нэг зай үлдээж, дараа нь гагнах хэрэгтэй. Дараа нь эрэгтэй, эмэгтэй толгойг 10 ба 11 зүү болгон хуваана. Танд эмэгтэй толгойноос хоёр дахин их толгой хэрэгтэй болно. Зураг дээр үзүүлсэн шиг хүмүүсийг гагнана. Эр толгойн хувьд та тээглүүрээ солих хэрэгтэй бөгөөд ингэснээр хуванцарны хоёр тал дээр ижил хэмжээтэй байх ёстой. Юу хэлэхийг хүсч байгаагаа ойлгохын тулд зургийг харах нь илүү хялбар байдаг тул 6 -р дугаарыг үзээрэй. Би бахө ашигласан бөгөөд энэ нь маш сайн ажилласан. Хэрэв та эрэгтэй толгойнуудыг аваад 2 эмэгтэй толгойн хооронд байрлуулбал тэдгээр нь дээд ба доод самбарыг хооронд нь холбоход тохиромжтой хэмжээтэй болохыг харах болно.

Алхам 3: Резисторыг нэмнэ үү

Эсэргүүцлийг нэмнэ үү
Эсэргүүцлийг нэмнэ үү
Эсэргүүцлийг нэмнэ үү
Эсэргүүцлийг нэмнэ үү
Эсэргүүцлийг нэмнэ үү
Эсэргүүцлийг нэмнэ үү

Эдгээр резисторууд нь массивыг хамгаалахын тулд LED массив ба 74138 (Ground) хооронд ордог. Резистороос нэг залгуурыг дээд талаас нь нугалж, хоёр тугалган зэрэгцээ байрлуулна. 7, 9, 10, 11, 12, 13, 14, 15 -р зүү, гагнуур дээр бэхлээрэй. Хэрэв та резисторын чиглэлийг хоёр, гурав дахь зургуудаас харж байгаагаар сольж байвал хамгийн сайн ажилладаг болохыг олж мэдсэн.

Алхам 4: Дээд талыг утсаар холбоно уу

Топ утсыг холбоно уу
Топ утсыг холбоно уу
Топ утсыг холбоно уу
Топ утсыг холбоно уу
Топ утсыг холбоно уу
Топ утсыг холбоно уу
Топ утсыг холбоно уу
Топ утсыг холбоно уу

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

Алхам 5: Доод хэсгийг бөглөнө үү

Доод талыг нь дүүргэ
Доод талыг нь дүүргэ
Доод талыг нь дүүргэ
Доод талыг нь дүүргэ
Доод талыг нь дүүргэ
Доод талыг нь дүүргэ
Доод талыг нь дүүргэ
Доод талыг нь дүүргэ

Одоо үндсэн бүрэлдэхүүн хэсгүүдийг доод самбар дээр байрлуулах цаг болжээ. Эхлээд бид зүүн дээд талд нэг эгнээ зай үлдээхийн тулд зүүн дээд талд аль болох ойртох 40 зүү DIP залгуурыг хийх болно. (Зураг №1 -ийг үзнэ үү.) Үүнийг гагнах ба толгойнуудыг байрлуул. Үүнийг хийх хамгийн хялбар арга бол өөрчилсөн эрэгтэй толгойнуудыг ашиглан дээд талд байгаа хэсгүүдийг доод хэсэгт нь холбох явдал юм. Хэрэв та бүх зүйлийг зөв хийсэн бол залгуур дээрх баруун доод талын хажууд зүүн толгойн дээд талд байрлах гурван дээд гурван голтой байх ёстой. Энэ бол зүгээр. Бид зөвхөн баруун талд байгаа хамгийн доод талын тээглүүрийг ашигладаг бөгөөд таны харж байгаагаар бид үүнийг өөр талаас нь харсан. Одоо зурган дээр үзүүлсэн шиг хүчдэлийн зохицуулагчийг нэмнэ үү. Би металлын дулаан шингээгчийн нүхийг шураг, самар ашиглан хамгаалав. Дулаан шингээгч нь чипийг газардуулах өөр нэг арга бөгөөд самбар дээр бэхлэх нь нийтлэг холболттой нягт холбоо тогтоох боломжийг олгодог. Энэ нь доод ба дээд хэсэгт холбогдсон, учир нь хоёулаа металл зогсолттой холбогдсон байдаг. Гэсэн хэдий ч хэрэв та газардуулгын нийтлэг холболтыг ашиглаагүй бол дулаан шингээгчийг самбар дээр бүү боогтун, учир нь дулаан шингээгч нь газардуулгын үүрэг гүйцэтгэдэг тул та ямар нэг зүйлийг богино холболт хийх болно. Батерейны хавчаар дахь дараагийн утас. Улаан нь зүүн талын зүү рүү очдог (Дулаан шингээгч дээш доош, доошоо харсан), дунд нь хар, баруун талын зүү нь +5v үүсгэдэг. Одоо та цахилгаан тэжээлийг дээд хэсэгт холбож болно (Зураг № 2 -ийг үзнэ үү). Одоо програмист холбогчийн хувьд. Надад програмистдаа зориулж хийсэн адаптер байгаа боловч та дизайндаа 6 зүү (3x2) толгой оруулахыг хүсэх байх. Гэсэн хэдий ч хэрэв танд над шиг адаптер байгаа бол миний хийсэн зүйл энд байна. Би тэгш өнцөгт толгой ба эмэгтэй толгойг авч, тэдгээрийг гагнав (Зураг #3). Дараа нь би үүнийг 6 -р зүүтэй холбосон анхны зүүгээр самбар дээр хавсаргасан. Одоо та дахин тохируулахын тулд чипийг эсэргүүцэх хэлхээнд хүчдэл өгч, газардуулах хэрэгтэй. Би 9 -р зүүнээс 10 -р зүү хүртэл 10k эсэргүүцэл ажиллуулж, дараа нь 10 -оос +5в -ийн зүүг холбосон. Дараагийн зүү (11) нь нийтлэг холболт руу (Ground) ордог. Эцэст нь энэ алхамыг дуусгахын тулд 4 -р зургийг үзнэ үү (энэ нь өөрөө тайлбартай юм).

Алхам 6: Доод талыг утсаар холбоно уу

Доод утсыг холбоно уу
Доод утсыг холбоно уу
Доод утсыг холбоно уу
Доод утсыг холбоно уу
Доод утсыг холбоно уу
Доод утсыг холбоно уу

LED массивыг ажиллуулахын тулд 30 гаруй утас ажиллуулах ёстой үнэхээр хөгжилтэй алхамыг санаж байна уу? Одоо та үүнийг дахин хийх ёстой! Доод талд !. Энэ нь арай хурдан боловч миний хувьд тийм ч их биш юм. Дахин нэг удаа схемийг үзээд мултиметрээр бүх холболтоо шалгаарай. Санаа зоволтгүй, энэ бол төслийн сүүлчийн том гагнуурын хэсэг бөгөөд та бараг дуусч байна.

Алхам 7: Flex мэдрэгч ба хурдасгуур

Flex мэдрэгч ба хурдасгуур
Flex мэдрэгч ба хурдасгуур
Flex мэдрэгч ба хурдасгуур
Flex мэдрэгч ба хурдасгуур
Flex мэдрэгч ба хурдасгуур
Flex мэдрэгч ба хурдасгуур

Бид эхлээд уян хатан мэдрэгчтэй ажиллах болно, гэхдээ та тоног төхөөрөмжийн хувьд гэртээ байгаа. Доорх зургууд нь юу хийхээ маш сайн тайлбарласан гэж би бодож байна. Нэг зүүг +5v -ээр холбож, AVR -ийн баруун талд байгаа дээд талаас гурав дахь эсвэл дөрөв дэх зүү рүү холбоно уу (Энэ төслийн гол цөм дэх микроконтроллер). Би үүнийг анх тавихдаа миний хийх ёстой зүйл л гэж бодсон боловч AVR уян мэдрэгчийг уншихын тулд та AVR руу явж буй мэдрэгчийн зүү дээрх резисторыг байрлуулах шаардлагатай болсон нь харагдаж байна (Зураг үзнэ үү. 10 ба 11). Би 10к ашигласан. Энэ нь AVR руу хүчдэлийг хувааж, мэдрэгчийн мэдрэмжийг бараг хоёр дахин нэмэгдүүлдэг. Одоо хурдасгуурын хувьд. Акселерометр нь хоёр хавтангийн хоорондох зайнаас арай өндөр үстэй тул бид үүнийг хэзээ нэгэн цагт солихыг хүсч магадгүй тул толгойн самбар ашиглан самбараас гаргаж аваад холбохоор шийдлээ. Таслах самбар дээрх 6 голтой холбогдохын тулд тэгш өнцөгт толгой ашиглана уу. Одоо өөр нэг тэгш өнцөгт толгой аваад эмэгтэй толгойг богино зүү рүү гагнаж, дараа нь самбарынхаа зүүн доод хэсэгт гагнана. Тохирох эсэхийг шалгахын тулд акселерометрийг залгаж, салгаад дараа нь зохих тээглүүрийг Vcc (+5v) ба Gnd руу холбоно уу. Дараа нь X гаралтыг 40 -р, Y -ийг 39 -р зүү рүү холбоно уу. Одоо та IC -ийг (нэгдсэн хэлхээ) нэмж асаахаар тохируулах хэрэгтэй.

2009 оны 12 -р сарын 26: Долоовор хурууны уян мэдрэгчийг суурилуулах арга нь мэдрэгчийг тээглүүртэй холбосон материалын эвдрэлд хүргэж болохыг би олж мэдсэн. Би тэр үеэс эхлэн мэдрэгч худалдаж аваад нимгэн хуванцар хэсгийг мэдрэгч рүү халуунаар наасан бөгөөд энэ хэсэг нь гулзайлтын ихэнх хэсгийг хийхгүй байх болно. Би доорх зурган дээрх байршлыг тэмдэглэсэн.

Алхам 8: IC ба Эхний програмыг нэмж оруулах

IC болон анхны програмыг нэмж оруулав
IC болон анхны програмыг нэмж оруулав
IC болон анхны програмыг нэмж оруулав
IC болон анхны програмыг нэмж оруулав
IC болон анхны програмыг нэмж оруулав
IC болон анхны програмыг нэмж оруулав
IC болон анхны програмыг нэмж оруулав
IC болон анхны програмыг нэмж оруулав

Энэ бол бүх үйл явцын хамгийн хялбар алхам юм. Дахин нэг удаа зураг тусална. Зураг 3 -т тайлбарласны дагуу та чипсийг зөв байрлуулсан эсэхийг шалгаарай. Би эхлээд хүчийг холболтгүй холбож, хүчдэлийн зохицуулагч дээрх дулаан шингээгч дээр хүрнэ. Хэрэв халуун байвал ямар нэгэн зүйл дутагдаж байна, та буцаж очоод холболтоо шалгах хэрэгтэй. Ийм байдлаар үргэлжлүүлээрэй, нэг чип нэмж, дулааныг мэдэрч, бүх зүйл байрандаа орсны дараа доод самбар дээрх самарыг чангалж, хоёр хавтанг хооронд нь найдвартай бэхлээрэй. Дараа нь та AVR програмчлах болно. Хэрэв та өмнө нь хэзээ ч ийм зүйл хийж байгаагүй бол google -ээс хурдан хайх нь маш олон үр дүнг өгдөг. Хэрэв би таны оронд байсан бол би AVR -ээ талхны тавцан дээр тавьж, хичээнгүйлэн хичээхээсээ өмнө тэнд програм байрлуулах байсан. Би уян хатан мэдрэгчээс хүлээн авсан мэдээллийг LED массив руу гаргах энгийн програм бичсэн. Энэ нь таны хэлхээнд юу байгаа болон ажиллахгүй байгаа талаар үндсэн ойлголтыг өгөх ёстой. Энд кодын үйл ажиллагаа явуулж байгаа видео байна ……. энд код байна: #define F_CPU 800000UL #include #include #include void ADCINIT () { ADMUX = 0b01100000; ADCSRA = 0b10000000;} int main () {int a; a = 0; int b; b = 0; DDRD = 0xFF; DDRB = 0xFF; DDRA = 0b11100000; ADCINIT (); байхад (1) {ADMUX = 0b01100011; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = ADCH; _хойшлох_ms (1); PORTD = 0x00; ADMUX = 0b01100010; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b11100000; PORTB = ADCH; _хойшлох_ms (1); PORTB = 0x00; }}

Алхам 9: Циркээ бээлийтэй холбох

Циркээ бээлийтэй холбож байна
Циркээ бээлийтэй холбож байна
Циркээ бээлийтэй холбож байна
Циркээ бээлийтэй холбож байна
Циркээ бээлийтэй холбож байна
Циркээ бээлийтэй холбож байна

Таны хэлхээг танд холбох олон арга бий гэж би бодож байна, үүнийг уншигчдад үлдээе гэж бодсон боловч үүнийг хаахгүйгээр зааварчилгаа дуусахгүй гэж би шийдсэн. миний олж чадах хамгийн хямд бүтэн хуруутай бээлийг авлаа. Бүрэн хуруу хэрэгтэй, учир нь та уян мэдрэгчийг сайн холбож чадахгүй. Дараа нь би даавууны дэлгүүрээр орж, полиэфир утас, наалддаг хилэн авав. Би бээлийг өмсөөд хэлхээгээ гар дээрээ тавив. Байршлын нэг хэсэг нь тайтгарал, нөгөө хэсэг нь уян хатан мэдрэгч юм. Тэд хоёр хурууныхаа дундуур явах ёстой. Би үндсэн самбарыг барихын тулд гурван зогсоолын эргэн тойронд гогцоо оёсон (Зураг №2 -ийг үзнэ үү), дараа нь уян мэдрэгчийн хуруу бүрээс 3/4 хүртэл сул гогцоо хийв (№3 ба 4). Бээлийгээ битүү оёхгүй байх хэрэгтэй. Дараа нь би батерейгаа барихын тулд эрхий хурууныхаа хажуу талд нэг ширхэг хилэн наав. Саваа удаан үргэлжлэхгүй тул үүнийг оёх нь үнэхээр үр дүнтэй болохыг туршилтын дараа олж мэдсэн. Дараа нь би 9v -ийн эргэн тойронд velcro гогцоо тавив (Зураг 5). Энэ тохиргоо нь маш сайн ажилладаг юм шиг байна. Эхний болон сүүлчийн слайд дээрх зургуудаас харахад би уян мэдрэгчийг ханцуйвчтай болгосон боловч хэрэв танд цаг байхгүй бол гогцоонууд сайн ажиллах ёстой. доор Та хэлхээг хавсаргахын тулд юу хийснийг харахыг хүсч байна!

Алхам 10: Жинхэнэ код

Бодит код
Бодит код

Өдийг хүртэл надтай хамт байсанд баярлалаа. Миний код төгс биш гэдгийг санаарай. Дохиог зөв ажиллуулахын тулд бага зэрэг суралцах шаардлагатай гэдгийг олж мэдсэн. Би системээ төгс төгөлдөржүүлэхийг үргэлжлүүлэн хичээх болно, энэ хуудсыг бичихэд шинэ кодоор шинэчлэгдэх болно. 2009 оны 12 -р сарын 26: ШИНЭ КОД! Хуучин код хаана байсныг байршуулсан болно. Үүнийг хялбаршуулсан Жейкобт маш их баярлалаа. Энэ үнэхээр сайн ажилладаг. Энэ байна. Уншсанд баярлалаа, саналаа өгөхөө бүү мартаарай! #include #include #include // Регистрт битүүдийг тохируулах эсвэл цэвэрлэх #setBit (sfr, bit) (sfr | = (1 << bit)) #define clearBit (sfr, bit) (sfr & = ~ (1 <<) тодорхойлох bit)) #flipBit (sfr, bit) (sfr ^= (1 << bit)) #FALSE 0 -ийг тодорхойлох ҮНЭН 1 #матрицыг тодорхойлох x (x) (PORTA = (x - 1) << 5) #тодорхойлох matrixGY (y) (PORTD = y) #matrixRY (y) (PORTB = y) хүчингүй саатал (unsigned int delay) {unsigned int x = 0; while (x <саатал) {x ++; }} хүчингүй initMatrix () {DDRD = 0xFF; // Ногоон хяналт DDRB = 0xFF; // Улаан хяналт DDRA = 0xE0; // Газрын хяналт} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (багана); int i = 0; for (i = 0; i <8; i ++) {matrixGY (greenmask & (1 << i)); matrixRY (улаан маск & (1 << i)); _дэйл_ус (150); } matrixGY (0x00); matrixRY (0x00); } хоосон matrixLeft () {matrixRowDraw (0x10, 0, 1); matrixRowDraw (0x20, 0, 2); matrixRowDraw (0x40, 0, 3); matrixRowDraw (0xFF, 0, 4); matrixRowDraw (0xFF, 0, 5); matrixRowDraw (0x40, 0, 6); matrixRowDraw (0x20, 0, 7); matrixRowDraw (0x10, 0, 8); } хоосон matrixRight () {matrixRowDraw (0x18, 0, 1); matrixRowDraw (0x18, 0, 2); matrixRowDraw (0x18, 0, 3); matrixRowDraw (0x18, 0, 4); matrixRowDraw (0x99, 0, 5); matrixRowDraw (0x5A, 0, 6); matrixRowDraw (0x3C, 0, 7); matrixRowDraw (0x18, 0, 8); } хүчингүй adcInit () {ADMUX = 0x60; ADCSRA = 0x80; } char adcGet (char chan) {ADMUX = 0x60 | чан; ADCSRA | = 0x40; while (bit_is_clear (ADCSRA, ADIF)); ADCH -ийг буцаах; } char adcAvg (char chan, char avgnum) // Зөвхөн дунджаар 256 хүртэл дээж байна {int i = 0; unsigned int total = 0; for (i = 0; i <avgnum; i ++) {total+= adcGet (chan); } return total/avgnum; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // Флекс мэдрэгчийн мэдрэмтгий байдлыг тодорхойлохын тулд энд байгаа зургаан өнцөгтийн утгыг хэрэглэгчдийн тохиргооноос хамааран өөрчлөх ёстой. {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } if (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} буцаах 0; } Тусалж дэмжсэн Чамберлэйн, эцэг эх, найз нөхөддөө онцгой талархал илэрхийлье.

Гэрийн амралтын тэмцээний эцсийн оролцогч

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