PIC16F1503. Тачку прокачивать — 1. Звук

PIC16F1503. Тачку прокачивать — 1. Звук

401
ПОДЕЛИТЬСЯ

Я думаю, что каждый родитель-это время, когда он был в магазине на кассе находит малыша с чем-то, а ребенок говорит , что в этом есть что-то чрезвычайно принципиальное для всего мира на земле и для него в частности. Разум имеет оценил темпы умирания, necta , а также отдал добро. С течением оценка стоимости этого necta, родитель жаба махнул рукою и решил, что когда-то жил и до сих пор всех средств не заработать. У меня это вышло опять.
В детский парк пополнился этого чуда китайской инженерии. Внедорожник, с «люстрой» и лебедкой!

Волшебство умело flash «люстра» и «фары» и громко, чтоб произвести три записанного звука. Плюс китайцы каким-то образом сумел выжать из данной машинки несколько излишних децибел на частоте, которая резонирует с моим черепа (зубы болят), так что я никогда не был улыбнулся опять испытать те же чувства. Я же машинку в ремонт брать отказались, мотивируя отказ немытыми руками и недоеденный ужин. По всем канонам, машинка быстро «погиб» и был сдан в ремонт.
В итоге длительных переговоров было решено, что обычная смена батареек-это больше не стильно. Все эти драйверы tunat свои авто в специальной студии, а позже ездят на машинках, которые никто не имеет. Потому я взяла машинку в студию, «все мое» для тюнинга…
Что 1-ое, что вы должны сделать? Верно, чтоб оценить, какой размер работы свалился на нас. Разобрать автомат.

В течение 3-х светодиодов (голубий, калоритные, дешевенькие, пищалка и непонятно planar микроконтроллеров класса «китайский copla». Все это великолепие запускается с помощью клавиши, которая находится в наилучших традициях китайского автопрома замялась и утилизация себя. Все это питается от 3 батареек LR4 (мощность в районе МК), потому не умопомрачительно, что машинка погибла так быстро.
Ну, не все. В общем, необходимо все поменять. Что?
До 16 МГц, 3 Кбайт flash и 128 б памяти. Естественно, я бы не прочь палку вовнутрь машинки STM32F4, но evaluation Board вовнутрь не залезть, и сделать это PCB откровенно лень. Порывшись в ящиках, отыскал на демоплату PIC16F1503. Это для машин!

Раз вы желаете повторять мои упражнения, то для вас необходимо отыскать по PIC-H1503 (это микроконтроллер и PIC-KIT3 (это программатор от Olimex. В отличие от этого, поддерживает Windows, Linux и OS X. Также Для вас нужно скачать и установить MPLAB X Ide и XC8 с веб-сайта microlab.
Верно, давайте начнем все со звуком. Громче, мы не имеем, мы имеем то, что бы pelicula «милиции» и не громкий. Что необходимо, чтоб начать тюнинг?
На омметр указывает 15. Отыскать никаких опознавательных символов, цепляется за омметр. Выйти из машинки «пищалка» и попробовать осознать, что это такое. Итак, подтверждено: раз омметром «перерыв», это plesiopidae.
Чтоб подключить динамик конкретно к штоку микропроцессор бессмысленно (15 ом на 3 вольта даст ток 200 мА, что очевидно не похоже на микроконтроллер, который находится в 20 на глаз), потому мы делаем простую схему для первого NPN-транзистора.

Вход подключен к 9-й ноге микроконтроллера. Почему конденсатор на схеме, я объясню позднее (в принципе можно подключить параллельно транзистора). Плюс либо минус от схемы не принесет никакой различия. Деноминации фактически не принципиально.
Потому мы должны трясти динамик. Но мы спикер подключен конкретно к микроконтроллеру, и он сумеет выдать лишь «1» (на ноге) и «0» (ничего). Сейчас осталось осознать, как мы можем извлечь звук. И динамик преобразует колебания электроэнергии в воздушных волн. Да, даже (даже? Smail), но это не спорт. Из школьного курса физики мы знаем, что звук-это колебания воздуха. Да это уникальность) этот микроконтроллер имеет столько же как 5-битный ЦАП (audiophile тащусь на один бит, раз что.
Выручает нас опять физика: даже раз подать «1» на динамик магнит не одномоментно затянуть диффузор, как и опосля «0» он не будет немедля освобожден.
Самый обычный-написать таковой код
while(1)
{
dinamikON();
pause(1);
dinamikOFF();
pause(1);
}
Раз паузы (в миллисекундах), в динамике, мы получаем «peep» в 500гц. В чем неувязка? Неувязка в том, что мы должны быть повсевременно отвлекаться на «nagkakilala». И изменение продолжительности паузы вы сможете получить полностью солидный звук.
просто ищутся в той же Википедии с картинами и длительных разъяснений). Есть в пике. Открыть MPLAB, сделать новейший проект и с помощью кода Конфигуратора (меню Инструменты-Embedded. Но хоть какой солидный микроконтроллера есть таковая вещь, как ШИМ, PWM (что это? Может быть, вы захотите положить в Plugins) добавлен новейший ШИМ.

Я взял PWM4 только для удобства ног. В качестве ШИМ-пик не может, без таймера, и глядеть на него.

Так как пока ничего не ясно, просто нажмите на клавишу «сгенерировать код» и попытайтесь запустить выходит. Раз вы получили ошибку о VDD, она обязана быть в конфигурации проекта-PICKit3-Power, чтоб включить мотивированной силовой цепи. Просто можно программа Совета «работать», и ток от программера не постоянно довольно для питания цепи. Как традиционно, ничего не обязано произойти — нет.
Все делается в main.c, I блоков, разбитых комменты. Набрал 1-ый код.
uint16_t count;
for(count=0; count<1024; count++)
{
PWM4_LoadDutyValue(count);
__delay_мс(10);
}
Вводят и подключите один вход осциллографа к выходу микроконтроллера (голубая линия), а иной-к speaker (красноватый).

Настоящую картину можно узреть ниже. Голубая линия-это итог работы ШИМ. Честно говоря, это расстояние, приобретенных методом сбора конденсатора 0,47 МКФ параллельно с транзистором, для прекрасной гифти. Итак, что же мы лицезреем? Но красноватая линия где-то в середине наполнения отдаленно похожие на синусоиды. Наполнения от 0 до 100% и опять прыгнуть к нулю.
Снимите конденсатор.
В принципе, при соблюдении определенных критерий, вы сможете просто записать схему. Но эти пики не мешают никому, так что ставить кондер либо нет — ваше дело. Я поставил ради красы. См. Этот динамик на «обратном ходу» работает как генератор и просто кидает вольт при питании от 3х. пики в красноватом?
Это уже было, но эта картина в статике. Опять поставить.
Просто для сопоставления и отображения влияние емкости на звук 🙂 Изменение 0,1 МКФ.

Частота ШИМ зависит от таймера, и как нередко будет «тик» таймера зависит от счетчика, который устанавливается каждый раз Таймер. Так что для вас придется крутить частоты. В принципе, мы уже получили заглянуть на 15 кГц, но кому это необходимо, не считая комаров?
То есть, метод таймера смотрится так
Раз да, то генерируется прерывание. Раз нет, то тикать опять. — Запустить Таймер. Счетчик в Ноле? — Таймер Tecnol и счетчик миниатюризируется.
— Сброс таймера опять Обработчик прерываний:
— О-О! Таймер Tecnol!

А вот и начало ШИМ просто podzemlen в прерывании таймера. И мы может вращаться как частота входного тикать» (предделитель опции), и значение счетчика.
Поменять код (stage2)
__u8 count;

for(count=0;count<256;count++)
{
PWM4_LoadDutyValue(count*2);
TMR2_LoadPeriodRegister(count);
__delay_мс(100);
}

Поглядите на прекрасные красноватые полосы и поглядеть, что происходит что-то отдаленное на синусоиды и изменение частоты. Да и уха подтверждает. То, что нам необходимо!

Особо продвинутые могут созидать схожий образ в хоть какой эмулятор, к примеру proteus Почему я должен поменять наполнение ШИМ предлагается поразмыслить без помощи других. Но в принципе, раз мы поглядим продолжить расписание и замедлить изменение 1-го параметра, то все становится ясно.
Давайте сейчас найти Спектр частот, которые мы получили
Мы рассчитываем 255
Сейчас положите в 10

И череп «ездить» не будет. Я «на глаз» оказалось спектре около 300-5000гц. Перфекционисты могут применять частотомер, либо вычислить реальное значение тактовой частоты и делитель частоты. Это полностью. Обратите внимание на верхний правый угол, который задает шаг сетки.
Хоть какое осознание как предназначено оно звучало как я не имеют. Грубо говоря, в музыке Чукча читатель, а не писатель. Но тогда у меня трудности.
Чуть половину отыскать, на какой частоте, какие нотки соответствуют, отыскал некие нотации «в лесу родилась елочка»…
Предполагаемая задержка, писал
#define сделать 243 //523Hz
#define re 239 //587
#define ми 236 //659
#define fa 231 //739
#define соль 229 //783
#define la 224 //880
#define si 218 //987
// и опять +523Hz

const __u8 elka[29]={do,la,la,sol,la,fa,делать,делать,делать,la,la,si,соль,do,do,re,re,si,si,si,la,sol,fa,do,la,la,sol,la,fa};

void play(__u8 p)
{
// 255 — 3ms период — 300гц
// 10 — 0,2 мс — 5000гц
PWM4_LoadDutyValue(p*2);
TMR2_LoadPeriodRegister(p);
}
…. __u8 count;

for (count = 0; count < 29; count++) {
играться(elka[count]);
__delay_мс(300);
PWM4_LoadDutyValue(0);
TMR2_LoadPeriodRegister(0);
__delay_мс(50);
}
Методом подбора резисторов и конденсаторов достигнули «практически синус-увидел» выход, но ухо слышит разницу. Скомпилирован и запущен. Нет, мелодия угадывается без заморочек, но это не так.
В итоге пока тормознула на обыденных 2-ух-тоновый сигнал: «высочайший-маленький». И Google в ответ на «милиция sirene тонов programm пример кода» дает что угодно, лишь не то, что для вас необходимо. Классический милиции «Вау-Вау», на известные голливудские киноленты, я не.

Помогите мне плиз? В какой последовательности, где pelicane идет?
Что не нужно заморачиваться с цветами и прочее. В принципе, мы пришли к тому, что бы быть последующий шаг, чтоб взять и играться wav. Как он сделал в свое время различные ScreamTracker. Просто записывать звук, конвертировать его в удобоваримую форму и утратить.
И у меня лишь три с половиной кб. И прямо с первой же ссылке будет начальный код и сами программы. Но быть знакомым с принципами и примерами вы сможете просто набрав в Google «pic pcm звук». Неувязка лишь в одном: 2-ой Формат звука: PCM, моно, 8 кГц дискретизации занимает около кб. Не пойдет.
Потому утешиться тем, что мы представляем, «теплый ламповый звук времени», которая не просит внимания программер произнес, что частота pelikat и пошел делать свои дела, а там старье все будет делать.
Но звук-это полдела. Неплохой свет-это также отличительной чертой данной мелодии 🙂 но это чуток позднее.
Как традиционно, готов проект для MPLAB все части можно забрать тут habrahabr.ru