У овом пројекту ћемо развити генератор тонова користећи Ардуино Уно. Имаћемо дугмад повезана са УНО-ом и свако од њих генерише различит интензитет тона. Учесталост тона који генерише УНО је иста у сваком интерном систему. Интензитет звука се мења са сваким притиском. Ово је један од најлакших начина да направите клавир помоћу Ардуино Уно-а. Такође проверите ово клавирско коло.
Тонови се могу повећати до 20. То даје најбољу варијацију тона и много углађеније промене. Интензитет тона се мења помоћу ПВМ (Пулсе Видтх Модулатион). Пример ПВМ приказан је на доњем графикону.
У ПВМ-у, фреквенција сигнала или временски период сигнала (Тон + Тофф) је увек константан. Мења се само однос времена УКЉУЧИВАЊА и ИСКЉУЧЕЊА. На пример, на другом графикону на горњој слици, време УКЉУЧИВАЊА је 80%, а време ИСКЉУЧИВАЊА 20% целокупног трајања.
На трећем графикону, време УКЉУЧИВАЊА је 50%, а време ИСКЉУЧИВАЊА 50% комплетног трајања. Дакле, у првом случају имамо однос царине од 80%, а у другом случају имамо однос царине од 20%.
Са овом променом у радном односу имамо промену у Врмс-у (вредност напона у средњем квадрату), када овај напон даје зујалицу, он ствара другачију буку кад год дође до промене у радном односу.
Програмираћемо УНО да пружа ПВМ сигнал различитог односа дужине за свако дугме. Тако нам је при руци генератор тона који генерише другачији тон сваким притиском на дугме.
Компоненте потребне
Хардвер: Ардуино Уно, напајање (5в), кондензатор од 1000 уФ, кондензатор од 100 нФ, зујалица, тастери (8 комада).
Софтвер: АУРДИНО нигхтли или Атмел студио 6.2
Шема и радно објашњење
Коло за генератор тона приказано је на доњем дијаграму.
Да би се филтрирао шум из напона напона, кондензатори се постављају преко терминала како је приказано на дијаграму.
ПВМ за Ардуино Уно може се постићи на било којем од пинова симболизованих као „~“ на плочи ПЦБ-а. У УНО постоји шест ПВМ канала. Међутим, не можемо користити ПВМ пинове постављене преко ПИНС-а 0-7, јер су ПИНС-ови пожељни за интерфејс тастера.
Постоји разлог за одабир ПИНС 0-7 као улаза, јер ПИНС 0-7 представља ПОРТД микроконтролера. Дакле, у потоњем случају можемо узети комплетан БИТЕ ПОРТД-а.
Сада ћемо добити другачији ПВМ са односом дужине, користићемо следећу команду.
аналогВрите (9, ВРЕДНОСТ); |
Из горњег услова можемо директно добити ПВМ сигнал на одговарајућем пину. Први параметар у заградама је за одабир броја пина ПВМ сигнала. Други параметар је за писање односа дужности.
Вредност ПВМ-а Ардуино Уно може се променити са 0 на 255. Са „0“ најнижа на „255“ највиша. Са 255 као однос дужине добићемо 5В на ПИН9. Ако је однос радне снаге наведен као 125, добићемо 2,5 В на ПИН9. Подијелићемо омјер радне снаге 0-250 између 8 дугмади повезаних на ПОРТД УНО-а. Овде бирам 25 корака за свако дугме, али то је ваш избор.
Уз то ћемо добити ПВМ сигнал чији се однос дужине мења са сваким дугметом. Ово је дато зујалици, имамо генератор тона. Рад овог генератора тонова заснован на Ардуину је објашњен корак по корак у Ц коду датом у наставку.