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

Дууны импульсийн унтраалга: 6 алхам
Дууны импульсийн унтраалга: 6 алхам

Видео: Дууны импульсийн унтраалга: 6 алхам

Видео: Дууны импульсийн унтраалга: 6 алхам
Видео: КИТАЙ ИЛИ ЕВРОПА? НОВЫЕ ГРУЗОВИКИ НА ВЫСТАВКЕ COMTRANS 2023 2024, Оны зургадугаар сарын
Anonim
Image
Image

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

Ойролцоогоор нэг жилийн өмнө би шинэ байшин руугаа нүүж ирээд гэрлийн унтраалга маань орны хажууд байхгүй байгааг олж мэдээд шөнө бүр орондоо ядарч хэвтэх үедээ орноосоо явахаас өөр аргагүй байдалд орсноор энэ төслийн санаа надад төрсөн., ЗӨВХӨН УНТРАХ (орой болгон намайг бухимдуулдаг)! Гэсэн хэдий ч энэ төслийг хийсний дараа надад асар их ашиг тусаа өгсөн бөгөөд энэ санааг бүх гэрлийн унтраалгаас болж зовж буй бүх INSTRUCTABLE хэрэглэгчдэд хуваалцана гэж найдаж байна.

Энэхүү дууны импульсийн унтраалгын үндсэн санаа бол KY-037 дууны мэдрэгч мэдрэгчийг идэвхжүүлэхийн тулд гэрлийн унтраалгыг асаахын тулд servo моторыг асаах явдал юм. Тиймээс, KY-037 дууны мэдрэгч мэдрэгч яг хэрхэн ажилладаг вэ: үндсэндээ энэ нь 20 миллисекунд тутамд хүрээлэн буй орчны дууны эрч хүчийг илрүүлдэг (үүнийг кодлох хэсэгт, 5-р алхамд тохируулж болно), хэзээ Осциллографын ул мөрөөс ер бусын чанга дууны долгион олж мэдсэнээр энэ нь тооллогыг эхлүүлэх бөгөөд хоёр тоолоход servo моторыг идэвхжүүлж, гэрлийг цаашид унтраана.

Алхам 1: хангамж

Хангамж
Хангамж
Хангамж
Хангамж

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

Электроник:

  • Arduino Nano самбар
  • Талхны самбар
  • Холбогч утас (Эмэгтэй, эмэгтэй, эмэгтэй, эрэгтэй, эрэгтэй эрэгтэй)
  • KY-037 Дуу илрүүлэгч мэдрэгчийн модуль
  • Хөнгөн цагаан электролитийн конденсатор 220uF 25V
  • Servo мотор
  • Батерейны банк
  • Гадаад цахилгаан хангамж *(USB нь хоёр толгойтой Du-Pont утастай)
  • 9V батерей
  • 9V батерейны холбогч

Чимэглэлийн загвар хангамж:

Картон (эсвэл мод, хэрэв лазер хайчлах бол)

Бусад

  • Түргэн хатаах наалдамхай цавуу
  • Хэрэглээний хутга
  • Зүсэх дэвсгэр
  • Луужин зүсэгч
  • Харандаа ба баллуур
  • Наалдамхай шавар
  • Хоёр талт соронзон хальс
  • Тууз
  • Гагнуурын төхөөрөмж

Алхам 2: Цахим эд ангиудыг угсрах

Цахим эд ангиудыг угсрах
Цахим эд ангиудыг угсрах
Цахим эд ангиудыг угсрах
Цахим эд ангиудыг угсрах
Цахим эд ангиудыг угсрах
Цахим эд ангиудыг угсрах

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

  1. 9V батерейны холбогчийг Arduino Nano хавтангаар гагнана. Гагнуурын техникийг мэдэхгүй хүмүүст энэ нь жаахан хэцүү байж болох ч хэрэв энэ самбар хангалттай хүчээр хангагдаагүй бол энэ нь зөв ажиллахгүй байж магадгүй тул энэ төслийг амжилттай хэрэгжүүлэхэд энэ нь маш чухал юм. Гагнуурын хувьд улаан утсыг VIN зүү рүү холбоно уу; мөн GND зүү рүү хар утас, хоёулаа самбарын баруун талд байрладаг.
  2. Холбогч утсыг Arduino Nano самбар дээр холбоно уу. Энэ төсөлд бид зөвхөн A0, D2, GND зүү, 5V зүүнд хувь нэмэр оруулах болно.

    • Зүүг холбохын тулд талхны хавтанг ашиглан бид KY-037 дууны мэдрэгч мэдрэгчийн модулийн G зүүг талхтай холбох хэрэгтэй; нэг багананд (болгоомжтой байгаарай, хэрэв нэг багананд байхгүй бол таны эцсийн төсөл ажиллахгүй болно), servo моторын хар утас, гадаад цахилгаан хангамжийнхаа хар утсыг холбоно уу (та үүнийг үүнийг хийх хэрэгтэй. GND зүү, гэхдээ 5V зүү биш, учир нь таны Arduino -г шатаахгүй бол гадны тэжээлийн хангамж нийтлэг байх ёстой), дараа нь өөр нэг эрэгтэй -эмэгтэй холбогч утсыг нэг баганад холбож, өөрийн нано руу холбоно уу.
    • Дараа нь KY-037 дууны мэдрэгч мэдрэгчийн модулийн "+" зүүг нэг баганын цооногуудын нэгэнд холбоод дараа нь талхны тавцан дээрх нөгөө баганад, нөгөө талаас нь нано руу холбосон эрэгтэй-эмэгтэй холбогч утсыг ав. самбар.
    • Үүний дараа servo мотор дээрх улаан утсыг ашиглагдаж байгаагаас үл хамааран өөр багана руу холбож, батерейны банкыг тэжээхийн тулд улаан утсыг гадаад тэжээлийн эх үүсвэрээс ижил багана руу байрлуулна. Үнэн хэрэгтээ, USB-дэд толгойг servo мотороор хангахын тулд тэжээлийн банк руу холбоно уу.
    • Түүнчлэн, GND ба 5V зүү зогсож буй хоёр баганыг давж, багтаамжийн хоёр хөлийг хоёр багана дээр байрлуулснаар KY-037 дууны мэдрэгч мэдрэгчийн харьцангуй тогтвортой орчинг бүрдүүлэх болно.
    • Эцэст нь servo мотор дээрх цагаан утсыг Nano дээрх D2 зүү рүү холбоно уу. A0-аас A0-ийг KY-037 дууны мэдрэгч мэдрэгчийн модулаас Arduino Nano самбар руу холбоно уу.

Мөн та бүх цахилгаан хэрэгслийг хийж дуусгасан!

Алхам 3: Загварын загвар

Загварын загвар
Загварын загвар

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

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

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

  1. Дээд талд нь 3 * өргөн 2 урттай нүх байдаг бөгөөд энэ нь servo моторыг байрлуулж, ажиллах зай өгч, товчлуурыг дарна.
  2. Дараа нь эсрэг талын ёроолын хувьд энэ бол зүгээр л тэгш өнцөгт суурь бөгөөд дотор нь байгаа бүх зүйлийг сайн барьж, баталгаажуулах нүхгүй болохыг анхаарна уу. дараа нь баруун талд нь цахилгаан банкийг тэжээхийн тулд цахилгаан банкинд холбогдохын тулд гадаад цахилгаан хангамжийн утас гарч ирэх нүх хэрэгтэй болно;
  3. Дараа нь зүүн гар талын хувьд энэ нь баруун зүүн талтай адилхан боловч нүхгүй харагдаж байна;
  4. Эцэст нь хэлэхэд урд талын хувьд бидэнд илүү их нүх хэрэгтэй бөгөөд 9V батерейны холбогчийг хайрцагнаас нь салгах хэрэгтэй бөгөөд ингэснээр бид цахилгаан тасарсан үед батерейгаа хялбархан сольж, хог хаягдлаас урьдчилан сэргийлэх болно. зайны чадлын хувьд, нөгөө нь KY-037 микрофонд зориулагдсан бөгөөд төхөөрөмж нь хүрээлэн буй орчны дууны өөрчлөлтийг илрүүлж чадна.
  5. Доод талд нь, арын хэсэг нь нүхгүй, зүгээр л бүх зүйлийг сайхан байлгаж, батлах болно

Алхам 4: загварыг бий болгох

Загвар бүтээх
Загвар бүтээх
Загвар бүтээх
Загвар бүтээх
Загвар бүтээх
Загвар бүтээх

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

  1. AutoCAD файлд заасан масштабтай зургаан талыг картоноор хайчилж эсвэл лазераар хайчилж ав
  2. Наалдамхай цавуу аваад хэсгүүдийн хажуу тал дээр наагаад хамтдаа угсарна, гэхдээ бид түүний доторх эд ангиудыг цэгцлэх боломжтой хэвээр үлдээнэ.
  3. Зайны 9В -ийн холбогчийг загварын урд талд хайчилж авсан нүхэнд хий
  4. KY-037 дууны мэдрэгч мэдрэгчийн модулийг бидний хайчилж авсан нүхэнд хийчихсэн боловч арай илүү өргөн зүсэхийг санаарай, миний өгсөн диаметр нь "миний" бүрэлдэхүүн хэсгийн ойролцоо утга бөгөөд өөр өөр байж болно. хажуу тийш нь цохиж магадгүй бөгөөд энэ нь хангалттай сайн чангалахгүй байх болно гэдгийг санаарай
  5. Талхны тавцангийн ард наалдсан цаасыг урж, загварынхаа урд талын ард наана
  6. Загварын дээд хэсэгт хайчилж авсан нүхэндээ servo мотороо сайтар байрлуулна уу

    • Наалдамхай шаврыг бэхжүүлэхийн тулд servo моторын ард талд байрлуулж үзээрэй
    • Мөн илүү бат бөх болгохын тулд хоёр талт соронзон хальс тавихаа бүү мартаарай
  7. Гадаад USB кабелийг бүтцийн баруун талд хайчилж авсан нүхнээс гаргаж аваад цахилгаан банк руу холбоно уу.
  8. Загвар дээр ар талыг нь нааж байгаарай, гэхдээ хэрэв та ажлынхаа талаар сайн мэдэхгүй байгаа ч төхөөрөмжөө эмхлэх эсвэл засах шаардлагатай хэвээр байгаа бол үүнийг амархан салгаж авахын тулд эхлээд скотч соронзон хальснуудыг ашиглаарай.

Алхам 5: Кодлох

Кодлох
Кодлох
Кодлох
Кодлох

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

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

Arduino холбоос үүсгэх

Нэмж дурдахад хэрэв кодын талаар ямар нэгэн тодруулга авах талаар хангалттай хүмүүс асуусан бол би энэ талаар бодож магадгүй юм …

Arduino-Дуу-импульсийн унтраалга

#include // servo моторын номын санг оруулна уу
int MIC = A0; // дуу илрүүлэх бүрэлдэхүүн хэсэг нь A0 хөлтэй холбогдсон
логик шилжүүлэг = худал; // шилжүүлэгчийн анхны хувилбарыг бүртгэх
int micVal; // илэрсэн эзлэхүүнийг бүртгэх
Servo servo; // Servo моторын нэрийг servo гэж тохируулна уу
гарын үсэг зураагүй урт гүйдэл = 0; // одоогийн цагийн тамгыг бүртгэх
гарын үсэг зураагүй урт хугацаа = 0; // сүүлчийн удаа тамга тэмдэглэнэ
гарын үсэг зураагүй урт зөрүү = 0; // хоёр цагийн тамганы хоорондох хугацааны ялгааг бүртгэнэ
тэмдэггүй int count = 0; // шилжүүлэгчдийн тоог бүртгэх
void setup () {// нэг удаа ажиллуулна
servo.attach (2); // D-pin хөл 2-т холбогдохын тулд servo-г эхлүүлнэ
Цуваа эхлэх (9600); // цувралыг эхлүүлэх
servo.write (180); // servo -ийг анхны өнцгөөр нь эргүүлэх
}
void loop () {// үүрд давталт
micVal = analogRead (MIC); // аналог гаралтыг уншина уу
Serial.println (micVal); // орчны дууны үнэ цэнийг хэвлэх
саатал (20); // хорин секунд тутамд
if (micVal> 180) {// хэрэв энд 180 гэж тохируулсан хязгаараас хэтэрсэн бол
одоогийн = миллис (); // одоогийн цагийн тамгыг бүртгэх
++ тоо; // тоологдсон шилжүүлэгчд нэгийг нэмнэ үү
//Serial.print("count= "); // солигдсон цагийг гаргаарай, хэрэв хүсвэл нээнэ үү
//Serial.println(count); // дугаарыг хэвлээд, хэрэв хүсвэл нээнэ үү
if (count> = 2) {// хэрэв шилжүүлсэн тоо аль хэдийн хоёроос их эсвэл тэнцүү байвал хоёр хугацааны тамга 0.3 ~ 1.5 секундын хооронд үргэлжилсэн эсэхийг тодорхойл
diff = одоогийн - сүүлчийн; // хоёр цагийн тамганы хоорондох хугацааны ялгааг тооцоол
if (diff> 300 && diff <1500) {// хоёр хугацааны тамга 0.3 ~ 1.5 секундын хооронд үргэлжилсэн эсэхийг тодорхойлох
toggle =! солих; // шилжүүлэгчийн одоогийн нөхцөлийг буцаана
тоолох = 0; // тооллогыг тэг болгоорой, дахин тест хийхэд бэлэн байгаарай
} өөр {// хэрэв цаг хязгаарлагдмал тоонуудын хооронд үргэлжлэхгүй бол тооллыг нэг рүү буцаана уу
тоолох = 1; // тоог тоолж болохгүй
}
}
сүүлийн = одоогийн; // Дараагийн харьцуулалт хийх сүүлийн үеийн тамгыг шинэчлэхийн тулд одоогийн цагийн тамгыг ашиглана уу
if (toggle) {// шилжүүлэгч асаалттай эсэхийг тодорхойлох
servo.write (90); // гэрлийг нээхийн тулд servo нь 90 градус эргэх болно
саатал (3000); // 5 секунд хойшлуулах
servo.write (180); // servo нь анхны байрлал руугаа буцах болно
саатал (1000); // дахиад 5 секунд хойшлуул
тоолох = 0; // тоолохын тулд тоолох тоог анхны тоогоор тохируулна уу
}
өөр {
servo.write (180); // хэрэв унтраалга ажиллахгүй бол эхний 180 градусын түвшинд байгаарай
}
}
}

GitHub-аас ❤ зохион байгуулсан rawArduino-Sound-Pulsing-Switch-ийг үзэх

Алхам 6: Дуусгах

Image
Image
Дуусгах
Дуусгах

Одоо та дуугаа хэмнэх унтраалгаар тоглуулж, гэрлээ унтраах төслийг дуусгасан бөгөөд энэ нь таны залхуурал цаашид асуудал болохгүй гэдгийг харуулж байна! Төслийн гайхамшигтай байдлыг харуулахын тулд хэрэв та энэ төслийг хийсэн бол үүнийг надад онлайнаар болон дэлхий даяар хуваалцаарай гэдгийг санаарай!

Сонирхолтой байж, үргэлжлүүлэн судлаарай! Амжилт хүсье!

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