Мазмуну:

Sound Pulsing Switch: 6 кадам
Sound Pulsing Switch: 6 кадам

Video: Sound Pulsing Switch: 6 кадам

Video: Sound Pulsing Switch: 6 кадам
Video: Implosion jointing on the Northwest Transmission Line 2024, Июнь
Anonim
Image
Image

Сиз төшөктө жатып көйгөйгө туш болосуз, бирок күтүлбөгөн жерден жарык дагы эле күйүп турганын түшүнүңүз. Бирок, сиз ушунчалык чарчадыңыз, сиз жарыкты өчүрүү үчүн төшөктөн баскыңыз келбейт, же телефонуңуз менен жарыкты өчүрүүгө мүмкүндүк бере турган Philip Hue чөйрө жарыгын сатып алууга сексен доллар коротпойсуз. Эгерде сиз алмаштыргыч менен салттуу жарыкты колдонуп жатсаңыз, анда эмне үчүн бул романды, бирок жалкоолугуңузду чечүү үчүн жеңил Arduino долбоорун карап көрбөйсүз!

Мен бул долбоордун идеясын болжол менен бир жыл мурун, жаңы үйүмө көчүп келгенде, менин жарык өчүргүчүм керебетиме жакын эмес экенин билип, чарчап төшөгүмө жатканымда, ар күнү кечинде төшөгүмдү таштап кетүүгө мажбурлаган., ЖАРЫКТЫ ӨЧҮРҮҮ ҮЧҮН (бул мени ар түнү кыжырдантат)! Бирок, бул долбоорду ишке ашыргандан кийин, мен көп нерсеге ээ болдум жана бул идеяны бардык INSTRUCTABLE колдонуучуларына айтам деп үмүттөнөм, алар дагы алыс жарык өчүрүүчү маселесинен жапа чегишет.

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

1 -кадам: Берилиштер

Жабдуулар
Жабдуулар
Жабдуулар
Жабдуулар

Бул үн пульсирлөө которгучун түзүү үчүн бизге төмөндөгүдөй кээ бир жабдыктар керек:

Электроника:

  • Arduino Nano тактасы
  • Breadboard
  • Jumper Wires
  • KY-037 Үн детекторунун сенсор модулу
  • Алюминий электролиттик конденсаторлору 220uF 25V
  • Servo Motor
  • Батарея банкы
  • Тышкы электр менен камсыздоо *(USB эки баштуу Du-Pont Wire)
  • 9V батарея
  • 9V батарея туташтыргычы

Моделдик жабдууларды жасалгалоо:

Картон (же жыгач, эгер лазердик кесүү жасаса)

Башкалар

  • Тез кургатуучу жабышчаак клей
  • Бычак
  • Cutting Mat
  • Компас кескич
  • Карандаш жана Өчүргүч
  • Sticky Clay
  • Эки жактуу скотч
  • Тасма
  • Soldering Equipment

2 -кадам: Электрондук компоненттерди чогултуу

Электрондук компоненттерди чогултуу
Электрондук компоненттерди чогултуу
Электрондук компоненттерди чогултуу
Электрондук компоненттерди чогултуу
Электрондук компоненттерди чогултуу
Электрондук компоненттерди чогултуу

Моделди түзүүдөн мурун, биз электрондук компоненттерди чогултушубуз керек, бул абдан жөнөкөй жана бир нече этап менен жасалышы мүмкүн:

  1. 9V батарейка туташтыргычын Arduino Nano тактасына кошуңуз. Бул кандайдыр бир ширетүү техникасы менен тааныш эмес адамдар үчүн бир аз кыйын болушу мүмкүн, бирок бул долбоорду ийгиликтүү ишке ашыруу үчүн абдан маанилүү, анткени эгер тактага жетиштүү кубат берилбесе, ал туура же жакшы иштебей калышы мүмкүн. Лайкоо үчүн кызыл зымды VIN пинге туташтырыңыз; жана кара зым GND пинине, экөө тең коллегиянын оң жагында турат.
  2. Өтмө зымдарды Arduino Nano тактасына туташтырыңыз. Бул долбоордо биз A0, D2, GND пин жана 5V пинге гана салым кошобуз.

    • Пиндерди туташтыруу үчүн нан тактасын колдонуп, биз G пинди KY-037 үн детекторунун сенсор модулунан нанга туташтыруубуз керек; ошол эле тилкеде (этият болуңуз, эгер ошол эле тилкеде болбосо, сиздин акыркы долбооруңуз иштебейт), кара зымды серво моторунан жана кара зымды тышкы электр булагыңыздан туташтырыңыз (муну GND пин, бирок 5V пин эмес, анткени тышкы энергия булагы сиздин Arduino күйбөгөн учурда жалпы негизди түзүшү керек), андан кийин дагы бир Эркек менен Аял секирүүчү зымды ошол эле мамыга жана сиздин Nanoго туташтырыңыз.
    • Андан кийин, KY-037 үн детекторунун сенсордук модулундагы "+" төөнөгүчтү ошол эле мамычанын тешиктеринин бирине туташтырыңыз, андан кийин нан столунда ошол эле мамыга, экинчи жагын наного туташтырган башка Эркек-Аял секирүүчү зымын алыңыз. такта
    • Андан кийин, servo моторундагы кызыл зымды колдонулганына карабай башка колонкага туташтырыңыз жана кызыл зымды сырткы электр булагынан ошол эле мамыга батарея батареясын иштетүү үчүн коюңуз. Чынында эле, USB-под башын servo моторун иштетүү үчүн аны кубат банкына туташтырыңыз.
    • Ошондой эле, GND жана 5V пини турган эки мамычадан ары өтүп, KY-037 үн детекторунун сенсоруна салыштырмалуу туруктуу шарт түзүү үчүн сыйымдуулуктун эки бутун эки мамыга тең коюңуз.
    • Акырында, servo моторундагы ак зымды Нанодогу D2 төөнөгүчкө туташтырыңыз. Ал эми K0-037 үн детекторунун сенсордук модулунан A0ду A0го тиешелүү түрдө Arduino Nano тактасына туташтырыңыз.

Жана сиз бардык электроника менен иштейсиз!

3 -кадам: Моделдин дизайны

Моделдин дизайны
Моделдин дизайны

Бул долбоор үчүн моделдин курулушу өтө оңой, анткени биз алты тарабы бар кутучаны гана түзүшүбүз керек. Бирок, дизайн AutoCAD файлы сыяктуу так болушу керек болчу, мен төмөндө келтирдим.

Эгерде сиз чындап эле бул долбоорду жакшы жана так жасоону кааласаңыз, бул долбоордун дизайн идеясын табуу үчүн окууңузду улантыңыз.

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

  1. Үстүнкү жагында, узундугу 3 * туурасы 2 тешик бар, сервоприводду жайгаштыруу үчүн, анын иштешине жана баскычын басууга орун берүү үчүн;
  2. Кийинки карама -каршы түбүндө, бул жөн гана тик бурчтуктун негизи экенин белгилейбиз, андагы бардыгын жакшы кармап, ырастоо үчүн тешиктери жок; оң жагында, биз тышкы банктын зымынын кубат банкын иштетүү үчүн кубат банкына туташуу үчүн чыгышы үчүн тешик керек;
  3. Андан кийин, сол тарабы үчүн, оң жагы менен окшош, бирок тешиги жок;
  4. Акырында, алдыңкы бөлүк үчүн, чынында, дагы көбүрөөк тешиктер керек, 9В батарейканын туташтыргычы кутудан чыгып кетиши керек, ошондо биз кубаттуулук өчкөндө батарейканы оңой алмаштыра алабыз, анткени калдыктарды болтурбоо үчүн өчүргүчтү өчүрүү керек. батареянын кубаттуулугу, экинчиси KY-037 микрофону үчүн, түзүлүш чөйрөдөгү үндүн өзгөрүшүн аныктай алат;
  5. Ошондой эле түбүндө, артында эч кандай тешик жок, болгону бардыгын жакшы кармап, ырастоо үчүн

4 -кадам: моделди түзүү

Моделди куруу
Моделди куруу
Моделди куруу
Моделди куруу
Моделди куруу
Моделди куруу

Планыбызды кылдат түзгөндөн кийин, азыр моделди түзүүнүн процессине өтүшүбүз керек. Бирок, бул процесс мурунку кадамга салыштырмалуу өтө жеңил болот, муну жасаңыз:

  1. Картон менен AutoCAD файлында көрсөтүлгөн масштабдагы алты жагын кесип алыңыз же лазердик кесүүнү колдонуңуз
  2. Жабыштыруучу клейди алып, бөлүктөрдүн капталдарына чаптаңыз, аларды чогуу чогулткула, бирок биз дагы эле анын ичиндеги компоненттерди иретке келтире аларыбызды унутпайлы.
  3. Батареяңыздын 9V туташтыргычын биз моделдин алдыңкы тарабында тешип койдук
  4. KY-037 үн детекторунун сенсордук модулун биз кескен тешикке тыгып койгула, бирок бир аз кененирээк кесип койгонду унутпагыла, мен берген диаметри "менин" компоненттин болжолдуу мааниси, ал ар кандай бөлүктөрдө өзгөрүшү мүмкүн. капталга тийип калышы мүмкүн, аны жакшы тыгып койбойт, эсиңизде болсун
  5. Нан тактаңыздын артындагы стикерди айрып, моделиңиздин алдыңкы бөлүгүнүн артына чаптаңыз
  6. Серво моторуңузду биз моделдин чокусуна кесип койгон тешикке жакшы кой

    • Серво моторунун артына жабышкак чопонун бир бөлүгүн коюп, аны бекемдеңиз
    • Ошондой эле, аны бекемдөө үчүн эки тараптуу лента коюуну унутпаңыз
  7. Тышкы USB кабелиңизди структуранын оң жагындагы тешиктен сууруп алып, кубат банкына туташтырыңыз
  8. Артыңызды модельге чаптаңыз, бирок эгерде сиз өзүңүздүн ишиңизге такыр ишенбесеңиз жана дагы эле түзмөгүңүздү иретке келтиришиңиз керек болсо, анда аны оңой эле айрып салыш үчүн скотч ленталарын колдонуңуз.

5 -кадам: Коддоо

Coding
Coding
Coding
Coding

Жана эч кандай кызыктуу эмес, бирок бул долбоордун эң маанилүү бөлүгү, коддобостон, сиздин түзмөк эч качан иштебейт, сиздин моделиңизди же схеманы жасоонун тактыгын канчалык жакшы түзбөсөңүз дагы, бул эч нерсе эмес. Ошентип, мен бул жерде жөн эле бул долбоор үчүн код жаздым жана коддун комментарий бөлүмүндө ар бир сап эмнени билдирерин түшүндүрдүм, бирок, эгерде кимдир бирөө дагы деле көйгөйлүү болсо, комментарий калтырып коюңуз, мен бактылуумун. дароо жооп берүү (ишенем).

Бул коддо мен servo моторун токсон градуска жана жүз сегиз градуска бурушун чечтим, бирок муну ар кимдин үйүндө ар кандай которуштурууга байланыштуу уюштурса болот жана мен муну баардыгы бекер деп эсептейм. Менин кодумду карап жатып, бул аппарат үн ыкмасын колдонуу менен жарыкты "автоматтык түрдө" өчүрүү үчүн экенин эстен чыгарбаңыз, сураныч, чаташтырбаңыз, жана эгер түшүнбөй жатсаңыз, кайра төмөнкү дарекке кайрылыңыз: эң башталышы Сиз азыр кодду төмөндө же ушул Arduino вебсайт түзүү шилтемеси аркылуу көрө аласыз.

Шилтеме түзүү Arduino

Мындан тышкары, эгерде жетиштүү адамдар коддун кандайдыр бир түшүндүрмөсү жөнүндө сурашса, мен бул жөнүндө ойлонушум мүмкүн LOL …

Arduino-Sound-Pulsing-Switch

#include // servo мотор үчүн китепкананы камтыйт
int MIC = A0; // A0 бутуна туташкан үн аныктоочу компонент
логикалык которуштуруу = жалган; // которгучтун баштапкы версиясын жазуу
int micVal; // аныкталган көлөмдү жазуу
Servo servo; // Servo моторунун атын servo катары коюңуз
белгисиз узун ток = 0; // учурдагы убакыт мөөрүн жазуу
unsigned long last = 0; // акыркы жолу штамп жазуу
белгисиз узак айырма = 0; // эки убакыт маркасынын ортосундагы убакыт айырмасын жазуу
unsigned int count = 0; // которгучтардын санын жазуу
void setup () {// бир жолу иштетүү
servo.attach (2); // D-pin бутуна 2 туташуу үчүн сервону инициализациялоо
Serial.begin (9600); // серияны инициализациялоо
servo.write (180); // сервону баштапкы бурчка бурууну жасаңыз
}
void loop () {// 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 =! toggle; // которгучтун учурдагы абалын кайтаруу
count = 0; // эсепти нөлгө айлантыңыз, кайра тестирлөөгө даяр болуңуз
} else {// эгерде убакыт чектелген саноолордун аралыгында созулбаса, анда эсептөөнү бирине кайтарыңыз
count = 1; // саноону эсепке албаңыз
}
}
акыркы = учурдагы; // кийинки салыштыруу үчүн акыркы убакыт штампын жаңыртуу үчүн учурдагы убакыт штампын колдонуңуз
if (toggle) {// которгучтун күйүк экенин аныктаңыз
servo.write (90); // servo жарыкты ачуу үчүн 90 градуска бурулат
кечигүү (3000); // 5 секунд кечигүү
servo.write (180); // servo баштапкы абалына кайтат
кечигүү (1000); // дагы 5 секунд кечиктирүү
count = 0; // саноону баштапкы санга кайра саноо үчүн коюңуз
}
башка {
servo.write (180); // эгер которгуч иштебесе, жөн эле баштапкы 180 градуста калуудан көрө
}
}
}

GitHub тарабынан ❤ уюштурулган rawArduino-Sound-Pulsing-Switchти көрүү

6 -кадам: Бүтүрүү

Image
Image
Аяктоо
Аяктоо

Эми сиз жарыкты өчүрүү үчүн Sound Pulsing Switch менен ойной турган долбоорду бүтүрдүңүз, бул сиздин жалкоолугуңуз эч качан көйгөй болбойт! Жана эсиңизде болсун, эгер сиз бул долбоорду аткарган болсоңуз, аны мага онлайнда жана дүйнөдө бөлүшүп, долбоордун укмуштуулугун көрсөтүңүз!

Кызыгып, изилдөөнү улантыңыз! Жакшы ийгилик!

Сунушталууда: