Mundarija:
- 1 -qadam: Bizga nima kerak?
- 2 -qadam: prototip yaratish:
- 3 -qadam: Kod:
- 4 -qadam: Endi ish uchun:
- 5 -qadam: Yakuniy natija shunga o'xshash bo'lishi kerak:
- 6 -qadam: Lehimlash
- 7 -qadam: Biz tugadik
Video: Interaktiv sensorsiz yorug'lik: 7 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Hammaga salom! Men bu erda ishlagan loyiham bilan bo'lishmoqchiman. Men o'z universitetimdagi loyiha orqali sig'imli sensorli sensorlar bilan tajriba o'tkazishga ilhom oldim. Men bu texnologiyani o'rgatuvchi vositalar orqali bilib oldim va bu erda va Internetdagi boshqa joylardan o'rgangan narsalarimdan foydalanib, men sensorli bo'lmagan boshqaruv moslamamni qurdim, men uni turli xil RGB qiymatlarini aralashtirib, ochiq ranglarni yaratdim.
Yangi boshlanuvchilar uchun, men bu loyihani boshlaganimda, na elektronika, na sig'imli sensorli sensor haqida hech narsa bilmasdim.
Men boshidan kechirgan ba'zi muammolar, aslida nima bo'layotganini noto'g'ri tushunishdan kelib chiqqan. Men buni qanday tushunganim haqida qisqacha kirish:
Kapasitiv sensor bir nechta komponentlardan foydalanadi, asosan:
Kondensator (bu loyihada biz alyumin folga ishlatamiz, lekin uni o'tkazuvchi suyuqliklardan ham foydalanish mumkin), simlar (albatta, uning elektronikasi)
va qarshilik, 10 Mohm gacha bo'lgan har qanday narsa to'g'ridan -to'g'ri teginish uchun juda kichik qarshilikdir.
uning ishlash usuli - A nuqtasi va B nuqtasi orasidagi vaqt farqini o'lchash. Boshlanish pimidan signalni so'nggi pinga yuboradi, vaqt taymer yordamida o'lchanadi. Qarshilik qiymatini kamaytirib (kondansatör (bu holda sizning qo'lingiz) sensori kondensatoriga yaqinlashganda (alyumin folga) bu vaqt qisqaradi, vaqt farqi sensori qiymat sifatida qaytaradi.
Sensor sig'imli sirtlardan ta'sirlanganligi sababli, ma'lumotlar shovqin tufayli beqaror bo'lishi mumkin. Buni ko'p jihatdan kondansatkichni to'g'ri izolyatsiyalash orqali, shuningdek, tuproq yordamida hal qilish mumkin (buni keyinroq ko'rsataman).
Shunday qilib, endi biz kerakli narsalarni inventarizatsiya qilishni boshlashimiz mumkin emas.
1 -qadam: Bizga nima kerak?
Elektronika:
1. 2 x 22M Ohm + rezistorlari (qarshilik qiymati qanchalik katta bo'lsa, sensori shunchalik uzoqroq javob beradi, men shaxsan 22M Ohm ishlatardim, men foydalangan ma'lumotni olish uchun minimal 10M Ohm edi)
2. 3x 330 Ohmli rezistorlar
3. Simlar
4. Non paneli
5. O'chirish platasi (menda mis chiziqlar bor edi)
6. Bir nechta umumiy katodli RGB Led (men 8 dan foydalanardim, lekin siz xohlagan yorug'likka bog'liq holda ko'p yoki kamroq bo'lishi mumkin)
7. Alyuminiy folga
8. Qoplamoq
9. Arduino Uno
10. Tasma
Vaziyat:
1. Yog'och Men 50 x 50 x 1,8 sm MDFdan foydalanganman (har qanday narsani ishlatishingiz mumkin. Bu siz xohlagan effekt va sizning ixtiyoringizda bo'lgan asboblarga bog'liq)
2. Akril pleksiglas 50 x 50 x 0,3 sm (yoki guruch qog'ozi kabi boshqa shaffof/shaffof material) ishlatilgan.
3. Zımpara (nozik zımpara)
4. Yog'och-elim
5. vener (ixtiyoriy)
6. Akril elim
Asboblar:
Tel -striptizchi
Lehimlovchi temir + qalay
Stenli pichog'i
burg'ulash
Ko'rdim (men stol arra ishlatardim)
2 -qadam: prototip yaratish:
Endi bizda hamma narsa bor va biz uning qanday ishlashini ko'rish uchun prototip yaratishni boshlashimiz mumkin:
Tayyorgarlik ishlari:
Alyuminiy plyonkadan 4 ta to'rtburchaklar kesib oling (meniki taxminan 10 sm dan 5 sm gacha), ularni yopishqoq plyonka bilan o'rab, ularni to'g'ridan -to'g'ri teginishdan izolyatsiya qiling va alyumin folga simni yopishtiring. Men plyonkaning yupqa uchini yopishtirdim (ular aloqada bo'lguncha).
Alyuminiyning xavfsiz izolyatsiya qilinganligiga ishonch hosil qilish uchun uni yopishqoq plyonka bilan o'rab, qog'ozlar orasiga dazmollab qo'ydim (bir necha soniya davomida u butunlay erimaydi).
Keyin sxemada rasmda ko'rinadigan qilib o'rnating.
4 -pin har ikkala datchik uchun ham yuborish pimi sifatida ishlatiladi, qabul qilish pinlari esa 2 va 5 -pinli bo'ladi. Siz bir nechta yuborish pinlarini ishlatishingiz mumkin, lekin ular sinxronlashtirilmaganligi uchun muammo tug'diradi.
har bir narsani chindan ham lehimlashdan oldin, disk raskadrovka uchun ushbu sozlamadan foydalaning, shunda hamma narsa chindan ham rejalashtirilganidek ishlaydi.
3 -qadam: Kod:
Endi bizda hamma narsa bor va biz sensorlarni tuzatishni boshlashimiz mumkin.
Mening kodimdan foydalanish uchun siz Arduino -dan sig'imli sensorli kutubxonani yuklab olishingiz va uni mos yozuvlar sahifasida berilgan ko'rsatmalarga muvofiq o'rnatishingiz kerak: Meni bosing
Kod: (Men kodlashni yaxshi bilmayman, shuning uchun agar buni qanday qilishni yaxshiroq bilsangiz, iltimos)
#include // kodlar kutubxonasini import qiling
CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // yuborish pin = 4, qabul qilish 2 va 5 CapacitiveSensor cs_4_5 = CapacitiveSensor (4, 5); const int redPin = 11; const int greenPin = 10; const int bluePin = 9; const int numIndexR = 10; // massiv hajmi const int numIndexG = 10; int rangR = 0; int rangG = 0; float rangiB = 0; int indexR [numIndexR]; int posIndexR = 0; uzoq umumiy R = 0; // bu uzun bo'lishi kerak, chunki mening qatorim butun son uchun katta edi. int o'rtachaR = 0; int indexG [numIndexG]; int posIndexG = 0; uzoq umumiy G = 0; int o'rtachaG = 0; void setup () {pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); for (int thisIndexR = 0; thisIndexR <numIndexR; thisIndexR ++) {// qatorni 0 indexR [thisIndexR] = 0 ga o'rnatadi; } uchun (int thisIndexG = 0; thisIndexG = 4500) {// sensorli qiymatlarni maksimal darajada ishlating, bu har bir qarshilik qiymati uchun bir xil emas, shuningdek, muhitdan muhitga biroz farq qilishi mumkin. sizning shaxsiy ehtiyojlaringiz. jami1 = 4500; } agar (jami2> = 4500) {jami2 = 4500; } jamiR = jamiR - indeksR [posIndexR]; // bu erda doimiy ravishda sensor chiqishini qo'shadigan va o'rtacha chiqaradigan qator yaratiladi. indexR [posIndexR] = jami1; jamiR = jamiR + indeksR [posIndexR]; posIndexR = posIndexR + 1; agar (posIndexR> = numIndexR) {posIndexR = 0; } o'rtachaR = jamiR / sonIndexR; // biz chiqishni yumshatish uchun xom ma'lumot o'rniga o'rtacha qiymatdan foydalanamiz, bu jarayonni biroz sekinlashtiradi, lekin ayni paytda juda yaxshi silliq oqim hosil qiladi. jamiG = jamiG - indeksG [posIndexG]; indexG [posIndexG] = jami2; jamiG = jamiG + indeksG [posIndexG]; posIndexG = posIndexG + 1; agar (posIndexG> = numIndexG) {posIndexG = 0; } o'rtachaG = jamiG / numIndexG; if (averageR> = 2000) {// biz sizning qo'lingizdan hech qanday ma'lumot bo'lmaganda, biz LEDlarning qiymatini doimiy ravishda o'zgartirib turishini xohlamaymiz, shuning uchun atrof -muhitning past ko'rsatkichlari hisobga olinmaydi. colorR = xarita (o'rtachaR, 1000, 4500, 255, 0); analogWrite (redPin, colorR); } else if (o'rtachaR = 1000) {colorG = map (o'rtachaG, 1000, 4500, 255, 0); analogWrite (greenPin, colorG); } boshqa if (o'rtachaG <= 1000) {colorG = 255; analogWrite (greenPin, colorG); } if (colorR <= 125 && colorG <= 125) {// B biroz boshqacha ishlaydi, chunki men faqat 2 ta datchikni ishlatganman, shuning uchun ham B sensorini colorB = map (colorR, 255, 125, 0, 127.5) + xarita (rangG, 255, 125, 0, 127,5); analogWrite (bluePin, colorB); } else {colorB = map (colorR, 255, 125, 127.5, 0) + map (colorG, 255, 125, 127.5, 0); agar (colorB> = 255) {colorB = 255; } if (colorB <= 0) {colorB = 0; } analogWrite (bluePin, colorB); } Serial.print (millis () - boshlash); // bu disk raskadrovka maqsadida Serial.print ("\ t"); Ketma -ket chop etish (colorR); Serial.print ("\ t"); Ketma -ket chop etish (colorG); Serial.print ("\ t"); Serial.println (colorB); kechikish (1); }
Bu kod nima qiladi - bu sensordan xom ma'lumotlarni olish (bu sensorga ta'sir etuvchi har xil omillar tufayli har doim bir oz notekis bo'ladi) va massa maksimal qiymatga yetganda, uzluksiz ma'lumotni qatorga qo'yadi (mening holatimda 10) u oxirgi qiymatni tozalaydi va yangisini qo'shadi. Har safar qiymat qo'shilganda u o'rtacha qiymatni hisoblab chiqadi va uni yangi o'zgaruvchiga qo'yadi. Bu o'rtacha o'zgaruvchi 0 dan 255 gacha bo'lgan qiymatni xaritalash uchun ishlatiladi, bu har bir kanalning yorqinligini oshirish uchun RGB pinlariga yozadigan qiymatimiz (kanallar R G va B).
Endi agar siz kodingizni arduino -ga yuklasangiz va ketma -ket monitorni ochsangiz, qo'lingizni har bir sensorga o'tkazganingizda RGB qiymatlari pastroq bo'lishi kerak, shuningdek, LEDning och rangi o'zgarishi kerak.
4 -qadam: Endi ish uchun:
Vaziyat: Men ishni universitetimdagi vositalar yordamida qildim, shuning uchun bu ish oqimi hamma uchun mos emas. Biroq, bu erda hech qanday alohida narsa yo'q, u USB portni bir tomonga o'rnatishi uchun teshik kerak, lekin boshqasi uning tepasida joylashgan.
Olchamlari quyidagicha:
Shaffof tepa uchun 15 x 15 sm
va
Yog'och taglik uchun 15 x 8 sm (yog'och qalinligi men uchun 1,8 sm edi).
Men stol arra yordamida MDF plitasini kerakli o'lchamlarga kesib oldim (bu 4 x 15 x 8 sm va 1 15 x 15 sm tuproqli panel), shundan so'ng burchaklarni 45 graduslik burchakka kesib oldim. Yog'och elim va qisqichlar yordamida bir -biriga yopishtirilgan barcha qismlar (kamida 30 daqiqa quriting), men plexiglas uchun xuddi shu protsedurani qo'lladim, lekin maxsus arra pichog'i bilan.
Yog'och tomonlarning birida markazida arduino USB vilkasi balandligida teshik bo'lishi kerak, shunda arduino ulanishi mumkin.
Men taglikni shpon bilan tugatdim. Men uni har bir tomonining yuzasidan biroz kattaroq bo'laklarga kesib tashladim.
Men uni yopishtirdim, keyin uni har tomondan 30 daqiqaga mahkamladim (buni alohida qilish yaxshidir, shunda u sirg'alib ketmasligiga ishonch hosil qiling va quriganidan keyin qolgan narsalarni kesib tashladim.
Qopqoqni Acryfix deb nomlangan maxsus yopishtiruvchi yordamida yopishtirdim.
Bilingki, agar siz akril pleksiglasdan foydalansangiz, elim pleksiglasni biroz eriydi, shuning uchun iloji boricha aniq va tez bo'ling (u bir necha daqiqada quriydi, lekin bir necha soniya ichida havoga tushadi).
Qopqoqni tugatish uchun men kubni qum puflagich bilan muzlatib qo'ydim, lekin siz nozik zımpara qog'ozidan ham foydalanishingiz mumkin, uni tekis qilish uchun ko'proq vaqt kerak bo'ladi. E'tibor bering, agar siz zımpara qog'ozidan foydalansangiz, uni mayda bo'laklarga bo'lish kerak va muzlash jarayonidan keyin uning qismlarini bir -biriga yopishtirish kerak (shuning uchun siz tasodifan ko'p bosim o'tkazib sindirmaysiz).
Qopqoq unchalik sirg'almasligiga ishonch hosil qilish uchun men yog'och kubikning chetiga bir nechta kichik yog'och panjaralarni yopishtirdim.
5 -qadam: Yakuniy natija shunga o'xshash bo'lishi kerak:
6 -qadam: Lehimlash
Agar sizda elektron karta bo'lsa, siz uning barcha qismlarini lehim bilan ulashni boshlashingiz mumkin.
Mening elektron platamda foydalanish qulayligi uchun uzluksiz mis chiziqlar mavjud.
Har bir sensor uchun men rezistorlar va simlarni lehimlash uchun kichik kvadratni kesib tashladim.
Yuborish simlari (4 -pindan har bir sensorga o'tadigan simlar) ketma -ket alohida kvadratga lehimlanadi, 1 -sim 4 -pinga kiradi.
Men qo'lda yasalgan chiziqli chiziq yasash uchun uzun to'rtburchakni ushlab turdim (uni qopqoqning ichki qismiga, lekin taglikning chetiga to'g'ri kelishi uchun o'lchang). Siz faqat ketma -ketlikda chiroqlarni lehimlashingiz mumkin (rasmda esda tutingki, men tasodifan elektron plataning noto'g'ri tomonida lampalar va rezistorlarni lehimlaganman, mis chiziqlar har doim pastki tomonda bo'lishi kerak).
Alohida qismlarni lehimlashni tugatgandan so'ng, ularni qutiga joylashtiring. Men alohida simlarni lehimlamadim, shuning uchun agar kerak bo'lsa, ularni osongina o'zgartirishim mumkin.
Hamma narsani bazaga joylashtirish vaqti keldi: bu eng oson qadam, arduino birinchi navbatda korpusning orqa qismidagi teshik orqali USB porti bilan joylashishi kerak. Endi datchiklarni qo'shing, datchik plyonkasi har ikki tomondan yog'ochga mos kelishiga ishonch hosil qiling, er plyonkasi esa unga to'g'ri. Hammasi yaxshi joylashganda, RGB svetodiodlarini o'ng pimlarga ulang (9, 10, 11) va taglikning chetiga suyanib tursin.
7 -qadam: Biz tugadik
Agar siz bularning barchasini bajargan bo'lsangiz, endi sizda sensorli ranglarning sig'imli aralashmasi bilan ishlaydigan chiroq bo'lishi kerak. Maza qiling!
Tavsiya:
O'zgaruvchan yorug'lik sezuvchi tungi yorug'lik: 8 qadam (rasmlar bilan)
O'zgaruvchan yorug'lik sezgichli tungi yorug'lik: Bu ko'rsatma qo'lda o'chirish uchun tungi yorug'lik sensori qanday buzilganligini ko'rsatadi. Diqqat bilan o'qing, har qanday ochiq sxemalarni yodda tuting va agar kerak bo'lsa, birlikni sinovdan o'tkazishdan oldin o'z hududingizni o'chiring
Yorug'lik sensori bilan harakatni faollashtiradigan yorug'lik tugmasi: 5 qadam
Yorug'lik sensori bilan harakatni faollashtiradigan yorug'lik tugmasi: Harakatlanuvchi yorug'lik tugmasi uyda ham, ofisda ham juda ko'p qo'llanmalarga ega. Biroq, bu yorug'lik sensori bilan jihozlanishning qo'shimcha afzalliklari bo'lib, bu yorug'lik faqat tunda yoqilishi mumkin
Yorug'lik va tovush effektlari bilan Arduino asosidagi yorug'lik chiroqlari: 14 qadam (rasmlar bilan)
Yorug'lik va tovush effektlari bilan Arduino asosidagi Lightsaber: Salom jedi! Bu ko'rsatma kinofilmda bo'lgani kabi ko'rinadigan, ovoz chiqaradigan va bajaradigan chiroqni yasash haqida. Yagona farq - bu metallni kesolmaydi: (Bu qurilma Arduino platformasiga asoslangan va men unga juda ko'p funktsiyalar va funktsiyalarni beraman, u
Sovuq katodli yorug'lik yordamida makro fotografiya yorug'lik manbai: 9 qadam (rasmlar bilan)
Sovuq katodli chiroqlar yordamida makro fotografiya yorug'lik manbai: Yengil chodir yordamida tortishish paytida past zichlikdagi yorug'lik manbai juda foydali. LCD ekranlarda topilgan CCFL (sovuq katodli lyuminestsent nur) bu maqsad uchun juda mos keladi. CCFL va unga tegishli yorug'lik tarqatuvchi panellarni singan lapto ichida topish mumkin
A $ 20 / 20min tijorat sifatli katlanadigan yorug'lik qutisi / yorug'lik chodir: 7 qadam (rasmlar bilan)
20 /20 daqiqalik tijorat sifatli katlanadigan yorug'lik qutisi / yorug'lik chodirlari: Agar siz mahsulot uchun DIY yorug'lik qutisini qidirayotgan bo'lsangiz yoki fotosuratlarni yopib qo'ysangiz, sizda ko'p tanlov bor. Karton qutilardan kir yuvish to'siqlariga qadar, siz loyiha o'limga qadar amalga oshirildi deb o'ylashingiz mumkin. Lekin kuting! 20 dollarga