Проекты с использованием контроллера Arduino



Download 12,28 Mb.
Pdf ko'rish
bet65/215
Sana22.02.2022
Hajmi12,28 Mb.
#109180
1   ...   61   62   63   64   65   66   67   68   ...   215
Bog'liq
Petin V A - Proekty s ispolzovaniem kontrollera Arduino Elektronika 2014


Глава 8. Библиотека EEPROM 
115 
Вместо сопротивления с номиналом 220 Ом можно использовать и большее, на-
пример, 510 Ом или 1 кОм. Недостатком такого подключения является то, что звук 
получается очень-очень тихий. Поэтому, чтобы получить громкость более прилич-
ного уровня, динамик можно подключить к выводу не напрямую, а через транзи-
стор, как показано на рис. 8.2. 
Рис. 8.2. Схема включения с транзистором 
Громкость при этом получается весьма большой, поэтому в схему в качестве регу-
лятора громкости добавлен потенциометр R2. Транзистор включен по схеме с об-
щим эмиттером, и в данном случае выступает не в роли усилителя, а в качестве 
электронного ключа для согласования нагрузок. Дело в том, что у динамической 
головки сопротивление очень маленькое, и при подаче на нее напряжения +5 В че-
рез нее станет протекать ток около 625 мА. Однако максимальный ток, который 
могут обеспечить все выводы микроконтроллера, составляет всего 150 мА, т. е. 
в 4 раза меньше. И таким образом, подключая динамик к микроконтроллеру не на-
прямую, а через транзистор, способный пропускать через себя большее напряжение 
и ток большей силы, мы обеспечиваем электрическое согласование — в данном 
случае согласование по току. 
Сначала составим скетч для воспроизведения одной мелодии. Мелодия состоит из 
двух массивов: массива с последовательным списком нот и массива со значениями 
длительности воспроизведения каждой ноты. Для воспроизведения одной ноты по-
даем на динамик сигнал определенной частоты и длительности. Затем воспроизво-
дим следующую ноту. И так далее до окончания мелодии. Переменная 
tempo
отве-
чает за скорость воспроизведения. Расчет тонов для нот одной октавы представлен 
в табл. 8.1. 


116 
Часть III. Практическое применение Arduino 
Для подачи частотного сигнала на динамик воспользуемся функцией 
tone()
. Скетч 
для воспроизведения мелодии представлен в листинге 8.3, а также находится в пап-
ке 
examples/_08_1
сопровождающего книгу электронного архива. 
Таблица 8.1. Таблица расчета тонов для нот одной октавы 
Нота Обозначение 
Частота, 
Гц 
Период 
до c 261 
3830 
ре d 294 
3400 
ми e 329 3038 
фа f 
349 2864 
соль g 
392 2550 
ля a 440 
2272 
си b 493 
2028 
Листинг 8.3 
// ноты мелодии 
char notes[]="GECgabCaCg DGECabCDED EFEDGEDC CECaCag gCEDgCEDEFGECDgC "; // 
пробел - это пауза 
// длительность для каждой ноты и паузы 
int beats[] = { 4, 4, 4, 4, 1, 1, 1, 2, 1, 4, 2, 4, 4, 4, 4, 1, 1, 1, 2, 
1,4, 2, 1, 1, 1, 1, 2, 1, 1, 4, 2, 1, 2, 1, 2, 1, 1, 4, 2, 1, 
2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 4, 4, 4} ; 
// подключить динамик к pin 8 
int speakerPin = 8; 
int length = sizeof(beats); // число нот 
// темп воспроизведения 
int tempo = 400; 
// проиграть ноту 
void playNote(char note, int duration) 

// массив для наименований нот (до ре ми ... и т. д. в пределах двух 
// октав) 
char names[]={'c','d','e','f','g','a','b','C','D','E','F','G','A','B'}; 
int tones[]={3830,3400,3038,2864,2550,2272,2028,1912,1700, 
1518,1432,1276,1136,1014 }; 
// проиграть тон, соответствующий ноте 
for (int i = 0; i < sizeof(tones); i++) 

if (names[i] == note) 
tone(speakerPin,tones[i],duration * 1000L); 




Download 12,28 Mb.

Do'stlaringiz bilan baham:
1   ...   61   62   63   64   65   66   67   68   ...   215




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish