Мазмуну:
- 1 -кадам: Керектүү жабдык
- 2-кадам: Multi-switch методунун түшүндүрмөсү
- 3 -кадам: Comparator Spreadsheet
- 4 -кадам: обон ойнотуу
Video: DIP Tune Selector 1 Pin колдонуп: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бир аз мурун мен "музыкалык кутуча" долбоорунун үстүндө иштедим, ал 10го жакын ар кандай обондордун бирин тандаш керек болчу. Белгилүү бир обонду тандоо үчүн табигый тандоо 4 пин которгуч болчу, анткени 4 коммутатор 2 камсыз кылат4= 16 ар кандай орнотуулар. Бирок, бул ыкма үчүн катаал күчтү ишке ашыруу үчүн 4 түзмөк казыгы керек, ар бир которгучка бирден. Мен иштеп чыгуу үчүн ATtiny85ти колдонууну пландап жатканым үчүн, 4 казыктын жоголушу бир аз ашыкча болду. Бактыга жараша, мен бир нече которуштурууну киргизүү үчүн 1 аналогдук пинди колдонуунун тапкыч ыкмасын сүрөттөгөн макалага кирдим.
Көп которгуч; 1-киргизүү техникасы Voltage Divider схемасын колдонуп, 16 мүмкүн болгон коммутатордун айкалыштарынын ар бири үчүн уникалдуу бүтүн санды камсыз кылат. Бул 16 бүтүн сандын идентификаторлорунун жыйындысы андан кийин колдонмонун программасында бир аракетти жөндөө менен байланыштыруу үчүн колдонулат.
Бул нускоочу музыкалык кутучага обонду тандоону ишке ашыруу үчүн көп которуштуруу ыкмасын колдонот. Тандалган обон Arduino тон функциясын колдонуп, пьезо -зумер аркылуу ойнотулат.
1 -кадам: Керектүү жабдык
БУУну ишке ашыруу платформасы катары колдонуу керектүү аппараттык компоненттердин санын азайтат. Көп которгучтуу киргизүү ыкмасын ишке ашыруу үчүн 4 зымдуу чукул которгуч, чыңалуу бөлүштүргүч үчүн колдонулган 5 резистор жана туташуу үчүн туташуу зымы талап кылынат. Музыка кутусун тандай турган селекторду ишке ашыруу үчүн конфигурацияга пьезо -зумкер кошулат. Ыктыярдуу түрдө, колдонулган чумкуткучтун түрүнө жараша, 2x4 8 пин розетканы колдонуу пайдалуу, анткени стандарттык чукул которгучтар казандарга перформатка ширетүү үчүн жасалган окшойт, анткени нанга такага туташпайт. Розетка которгучту туташтырууда турукташтырат жана которгучту оңой көтөрүп кетүүдөн сактайт.
Аты | Мүмкүн булак | Кантип колдонулган |
---|---|---|
4-пин чумкуткуч | Тандоо | |
2x4 пин розеткасы (Милдеттүү эмес) | Amazon | Көпчүлүк свитчиктердеги посттор коммутаторду панелде жакшы кармабайт. Розетка байланышты бекем кылууга жардам берет. Альтернатива - бул чындап эле кадимки IC казыктары менен нан үчүн колдонулган чумкуткучту табуу. |
резисторлор:
|
Чыңалуу бөлүштүргүчтү ишке ашыруу | |
пассивдүү пьезо сигнал | Amazon | Ардуино тон функциясы аркылуу тиркеме аркылуу күүнү ойнотуңуз |
2-кадам: Multi-switch методунун түшүндүрмөсү
Бул бөлүмдө көп которуштуруу методунун негизги түшүнүктөрү талкууланат жана 16 мүмкүн болгон чумкуткучту конфигурациялоонун уникалдуу идентификаторлорун өз алдынча эсептөө үчүн керектүү теңдемелер иштелип чыгат. Бул идентификаторлор, андан кийин которуштуруу конфигурациясын аракет менен байланыштыруу үчүн колдонмо программасында колдонулушу мүмкүн. Мисалы, сиз жөндөөнү каалашыңыз мүмкүн - 1 күйгүзүү, 2 өчүрүү, 3 өчүрүү, 4 өчүрүү (1, 0, 0, 0) - Amazing Grace жана (0, 1, 0, 0) ойнотуу үчүн Арстан бүгүн кечинде уктайт. Кыска жана так болушу үчүн конфигурация идентификаторлору документтин калган бөлүгүндө салыштыргычтар деп аталат.
Көп которуштуруу ыкмасы үчүн негизги түшүнүк-бул кирүү чыңалуусуна туташкан 2 сериялуу резистордон турган Voltage Divider схемасы. Чыгуучу чыңалуу коргошун резисторлордун ортосунда туташкан, Р1 жана Р2, жогоруда көрсөтүлгөндөй. Бөлүүчү чыгуучу чыңалуу R чыңалуусунун катышына көбөйтүлгөн кирүү чыңалуусу катары эсептелет2 R суммасына1 жана Р2 (теңдеме 1). Бул катыш дайыма 1ден азыраак, андыктан чыгуучу чыңалуу дайыма кирүү чыңалуусунан кичине болот.
Дизайн диаграммасында көрсөтүлгөндөй, көп которгуч R менен чыңалуу бөлүштүргүч катары конфигурацияланган2 туруктуу жана Р1 4 чумалуу каршылыгы үчүн курама/эквиваленттүү каршылыкка барабар. Р наркы1 чөгүү өчүргүчтөрү күйгүзүлгөнүнө жараша болот, демек, курама каршылыкка салым кошот. Чөгүү каршылыгынын резисторлору параллелдүү болгондуктан, эквиваленттүү каршылыкты эсептөө теңдемеси компоненттүү резисторлордун өз ара эсептешүүсүндө айтылат. Биздин конфигурация үчүн жана бардык которгучтар күйгүзүлгөн учурда теңдеме болуп калат
1/R1 = 1/80000 + 1/40000 + 1/20000 + 1/10000
берүү Р1 = 5333,33 вольт. Көпчүлүк орнотуулардын жок дегенде биринин өчүргүчтөрү бар экенин эске алуу үчүн, которгучтун абалы мультипликатор катары колдонулат:
1/R1 = с1*1/80000 + с2*1/40000 + с3*1/20000 + с4*1/10000 (2)
мында мамлекеттик мультипликатор, смен, которгуч күйгүзүлгөндө 1ге барабар, ал эми өчүрүлгөндө 0го барабар. R1 азыр теңдемеде керектүү болгон каршылык коэффициентин эсептөө үчүн колдонулушу мүмкүн. Бардык өчүргүчтөр кайра мисал болгон учурда
RATIO = R2/(Р1+R2) = 10000/(5333.33+10000) =.6522
Болжолдонгон компаратордун маанисин эсептөөнүн акыркы кадамы, analogRead функциясынын эффектин тууроо үчүн RATIO 1023ке көбөйтүү болуп саналат. Бардык өчүргүчтөр турган иштин идентификатору ошондо болот
салыштыруучу15 = 1023*.6522 = 667
Бардык теңдемелер азыр 16 мүмкүн болгон которуу орнотуулары үчүн идентификаторлорду эсептөө үчүн бар. Кыскача айтканда:
- R1 2 теңдемеси менен эсептелет
- R1 жана Р2 байланышкан каршылык RATIO эсептөө үчүн колдонулат
- RATIO салыштырмалуу маанини алуу үчүн 1023 менен көбөйтүлөт
- ыктыярдуу түрдө, болжолдонгон чыгаруу чыңалуусу RATIO*Vin катары да эсептелиши мүмкүн
Салыштыргычтар топтому чыңалуу бөлүүчү үчүн колдонулган резистордун маанилерине гана көз каранды жана конфигурация үчүн уникалдуу кол тамга болуп саналат. Бөлүүчү чыгыш чыңалуусу чуркоодон чуркап (жана окуу үчүн окуу) өзгөрүп тургандыктан, бул контекстте уникалдуу, идентификаторлордун эки топтому бири-бирине дал келбесе дагы, алар салыштырмалуу компоненттердин салыштырмалуу айырмачылыктары чакан чейинки көрсөтүлгөн интервал. Интервалдын өлчөмү параметрин күтүлүүчү термелүүлөрдү эсепке алгыдай чоң, бирок ар кандай которгуч орнотуулары бири -бирине төп келбей турганчалык кичине тандоо керек. Адатта 7 интервалдын жарым кеңдиги үчүн жакшы иштейт.
Белгилүү бир конфигурация үчүн компараторлордун топтомун бир нече ыкмалар менен алууга болот - демо программаны иштетүү жана ар бир жөндөө үчүн баалуулуктарды жазуу; эсептөө үчүн кийинки бөлүмдөгү таблицаны колдонуңуз; бар топтомду көчүрүү. Жогоруда айтылгандай, бардык комплекттер бир аз башкача болот, бирок иштеши керек. Мен эгерде резисторлордун кайсынысы олуттуу өзгөрсө же андан көп резистор кошулса, мен кийинки бөлүмдөн көп которгучту орнотуу үчүн автордун идентификаторлор топтомун колдонууну сунуштайм.
Төмөнкү демо программа учурдагы чумкуу которгучтун параметрлерин аныктоо үчүн компараторлордун колдонулушун көрсөтөт. Ар бир программа циклинде analogRead учурдагы конфигурациянын идентификаторун алуу үчүн аткарылат. Бул идентификатор салыштырма тизме боюнча дал келгенге чейин же тизме түгөнгөнгө чейин салыштырылат. Эгерде дал келүү табылса, анда текшерүү үчүн чыгарылган билдирүү берилет; табылбаса эскертүү берилет. 3 секунддук кечигүү циклге киргизилет, андыктан сериялык чыгаруу терезеси билдирүүлөргө толуп калбашы үчүн жана чумкутуу конфигурациясын баштапкы абалга келтирүүгө бир аз убакыт бериши керек.
//-------------------------------------------------------------------------------------
// Демо программасы, чыңалуу бөлүштүргүчтүн чыгышын окуп, аны // учурдагы чөгүү которгучунун конфигурациясын аныктоо үчүн колдонуу мүмкүнчүлүгүнүн ар бир параметрин // салыштыруу маанилеринин массивинен карап көрүңүз. Издөө массивиндеги баалуулуктарды // же конфигурация үчүн мурунку иштөөдөн же эсептөө аркылуу алууга болот // негизги теңдемелердин негизинде. // ------------------------------------------------ -------------------------------------- int компаратору [16] = {0, 111, 203, 276, 339, 393, 434, 478, 510, 542, 567, 590, 614, 632, 651, 667}; // иштетүүчү өзгөрмөлөрдү аныктоо int dipPin = A0; // чыңалуу бөлүүчү киргизүү үчүн аналогдук пин int dipIn = 0; // analogRead тарабынан которулган бөлүүчү чыңалуусун кармап турат int count = 0; // цикл эсептегич int epsilon = 7; // салыштыруу аралыгы жарым туурасы бол dipFound = false; // эгерде учурдагы чыңалуу бөлүштүргүчтүн табуусу табылганда боштукту орнотуу табылган болсо () {pinMode (dipPin, INPUT); // чыңалуу бөлүштүргүчтү INPUT Serial.begin (9600) катары конфигурациялоо; // сериялык байланышты иштетүү} void loop () {delay (3000); // чыгууну өтө ылдам жылдыруудан сактаңыз // Издөө параметрлерин баштаңыз count = 0; dipFound = false; // Окуу жана документтин учурдагы чыгуу чыңалуусу dipIn = analogRead (dipPin); Serial.print ("бөлүүчү чыгаруу"); Serial.print (dipIn); // Учурдагы маанини салыштыруу тизмесин издөө ((count <16) && (! DipFound)) {if (abs (dipIn - comparator [count]) <= epsilon) {// dipFound = true; Serial.print ("кирүүдө табылган"); Serial.print (эсептөө); Serial.println ("маани" + Сап (салыштыруучу [саноо])); тыныгуу; } count ++; } if (! dipFound) {// мааниси таблицада жок; болбошу керек Serial.println ("OOPS! Табылган жок; Ghost Bustersке жакшыраак чал"); }}
3 -кадам: Comparator Spreadsheet
16 компаратордун мааниси боюнча эсептөөлөр жогоруда көрсөтүлгөн таблицада берилген. Коштоочу Excel файлы ушул бөлүмдүн ылдый жагында жүктөө үчүн жеткиликтүү.
Электрондук жадыбал мамычалары A-D түшүрүү каршылыгынын маанилерин жана 16 мүмкүн болгон которуу орнотууларын жазышат. Сураныч, фритинг дизайн диаграммасында көрсөтүлгөн аппараттык DIP которгуч чындыгында электрондук жадыбалда көрсөтүлгөн оңдон солго номерленүүнүн ордуна солдон оңго чейин номерленгенине көңүл буруңуз. Мен муну бир аз түшүнүксүз деп таптым, бирок альтернатива "1" конфигурациясын (0, 0, 0, 1) тизменин биринчи жагына койбойт. Э мамыча Voltage Divider эквиваленттүү каршылыгын R эсептөө үчүн мурунку бөлүмдүн 2 формуласын колдонот1 жөндөө үчүн. F мамычасы бул жыйынтыкты байланышкан каршылык RATIO эсептөө үчүн колдонот, жана, акырында, G мамычасы болжолдуу компаратордун маанисин алуу үчүн analogRead максималдуу маанисине (1023) көбөйтөт. Акыркы 2 тилкеде демо программанын чыныгы баалуулуктары жана болжолдонгон жана чыныгы баалуулуктардын ортосундагы айырмачылыктар бар.
Мурунку бөлүмдө салыштырмалуу баалуулуктардын топтомун алуу үчүн үч ыкма айтылган, эгерде резистордун мааниси олуттуу өзгөрсө же көбүрөөк өчүргүчтөр кошулса, бул жадыбалды кеңейтүү. Көрүнүп тургандай, резистордун маанисиндеги кичинекей айырмачылыктар акыркы жыйынтыктарга олуттуу таасир этпейт окшойт (бул жакшы, анткени резистордун спецификациясы толеранттуулукту берет, 5%дейли, жана резистор сейрек анын чыныгы айтылган маанисине барабар).
4 -кадам: обон ойнотуу
Көп которуштуруу техникасы тиркемеде кантип колдонулушу мүмкүн экенин көрсөтүү үчүн, "Методикалык түшүндүрмө" бөлүмүнүн салыштыруу демо программасы музыкалык кутуча программасы үчүн обондорду тандоо процессин ишке ашыруу үчүн өзгөртүлгөн. Жаңыртылган колдонмонун конфигурациясы жогоруда көрсөтүлгөн. Аппараттык жабдууларга бир гана кошумча - бул тандалган обонду ойнотуу үчүн пассивдүү пьезо сигнал. Программалык камсыздоонун негизги өзгөрүүсү - бул обонду жана Arduino обонун колдонуу менен, обонду ойнотуу үчүн күн тартибин кошуу.
Жеткиликтүү обондордун үзүндүлөрү Tunes.h аталышындагы файлда камтылган жана керектүү колдоо структураларынын аныктамасы менен бирге. Ар бир обон нотанын жыштыгын жана узактыгын камтыган нотага тиешелүү структуралардын массиви катары аныкталат. Эскертүү жыштыктары өзүнчө аталыш файлында камтылган, Pitches.h. Программа жана аталыш файлдары бул бөлүмдүн аягында жүктөө үчүн жеткиликтүү. Бардык үч файл бир каталогго жайгаштырылышы керек.
Тандоо жана идентификация төмөнкүдөй жүрөт:
- "Колдонуучу" керектүү обон менен байланышкан конфигурацияга чумкуткучтарды коёт
- Ар бир программа циклинин цикли учурдагы чөгүү которгучунун аныктагычы analogRead аркылуу алынат
- 2 -кадамдын конфигурация идентификатору жеткиликтүү обондор тизмесиндеги ар бир салыштыргычка салыштырылат
-
Эгерде дал келүү табылса, playTune тартиби күү ноталарынын тизмесине кирүү үчүн керектүү маалымат менен чакырылат
Arduino тон функциясын колдонуу менен ар бир нота зумер аркылуу ойнотулат
- Эгерде дал келүү табылбаса, эч кандай чара көрүлбөйт
- 1-5 кайталаъыз
Жеткиликтүү обондор үчүн DIP которгучтун орнотуулары төмөнкү таблицада көрсөтүлгөн, анда 1 которгуч күйгүзүлгөн, 0 өчүрүлгөн. Эске салсак, чумкуткучту багыттоо ыкмасы 1ди эң солго которот (80K каршылыгы менен байланышкан).
АТЫ | Которуштуруу 1 | Switch 2 | 3 -которуштуруу | Которуштуруу 4 |
Danny Boy | 1 | 0 | 0 | 0 |
Мамалак | 0 | 1 | 0 | 0 |
Арстан бүгүн кечинде уктайт | 1 | 1 | 0 | 0 |
Кыйынчылыкты эч ким билбейт | 0 | 0 | 1 | 0 |
Amazing Grace | 0 | 0 | 0 | 1 |
Бош жер | 1 | 0 | 0 | 1 |
MockingBird Hill | 1 | 0 | 1 | 1 |
Пьезо сигналынын үнүнүн сапаты, албетте, сонун эмес, бирок ал жок дегенде таанылат. Негизи обондор өлчөнсө, алар ноталардын так жыштыгына абдан жакын. Программада колдонулган бир кызыктуу ыкма PROGMEM директивасын колдонуу менен күүлөнгөн маалыматтарды флэш/программанын эс тутумунда демейки маалымат эс бөлүмүнүн ордуна сактоо болуп саналат. Берилиштер бөлүмү программаны иштетүүчү өзгөрмөлөрдү камтыйт жана ATtiny микроконтроллерлеринин кээ бирлери үчүн 512 байттын тегерегинде.
Сунушталууда:
Кесиптик аба ырайы станциясы ESP8266 жана ESP32 DIY колдонуп: 9 кадам (сүрөттөр менен)
ESP8266 жана ESP32 DIY колдонгон профессионалдуу аба ырайы станциясы: LineaMeteoStazione - бул Sensirionдун профессионалдык сенсорлору, ошондой эле кээ бир Davis Instrument компоненттери (Rain Gauge, Anemometer) менен байланышта боло турган толук аба ырайы станциясы
ICS Connector Arduino Nano үчүн Soldered Pin Header жок, бирок Pogo Pin: 7 кадам
ICSP туташтыргычы Arduino Nano үчүн Soldered Pin Head жок, бирок Pogo Pin: Arduino Nano үчүн ICSP туташтыргычын тактада, бирок Pogo Pin.Partts3 × 2 Pin Socket x1 - APitch 2.54mm Dupont Line Wire Female Pin Connector турак терминалдары x6 -BP75-E2 (1.3мм конустук баш) Жазгы тест проби Пого Пин
Omni_use Usb Cover жана Plasti Dip менен кызыктуу: 3 кадам
Omni_use Usb Cover жана Plasti Dip менен көңүл ачуу: бул сайтта эки айдан ашык жашынып жүргөнүмө карабастан, бул менин биринчи көрсөтмөм. Мен муну пластикалык дипти колдонуудан башкача колдонуу боюнча биринчи сериямда (азырынча 3) болууга ниеттенип жатам. керектүү материалдар. - пластикалык чөмүлтүлсө болот ($ 11
ISP 6 Pin 8 Pin розеткасына: 4 кадам
ISP 6 Pin 8 Pin розеткасына: Бул долбоорду негизинен 8 пин туташуусу бар ATTiny45ти программалоо үчүн жасаганымдын себеби, менин USBtinyISP (Ladyadaдан) 10 пин жана 6 пин туташуусу бар. Болжол менен 3-4 жума интернетте жүрүп, эч нерсе таппадым
Mint Box Audio Selector: 3.5mm Audio Switch: 6 Steps
Mint Box Audio Selector: 3.5mm Audio Switch: Проблема: Көбүнчө менин иш столумда мен гарнитураны оюндар же музыка угуу үчүн колдонушум керек, башка адамдар бөлмөдө, анан мен күлкүлүү болгум келсе спикерлерге өтүшүм керек. алыскы тууганына видео чалуу же интернет чалуу. Th