Arduino:Примеры/DTMFTest
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Тональный сигнал[1]
Это скетч для библиотеки Tone, который при помощи платы Arduino демонстрирует, как генерировать тональный сигнал.
Код
// Тональный сигнал
// https://ru.wikipedia.org/wiki/DTMF
// Чтобы совместить выходные данные для сигналов и выходные данные
// от маленького динамика (например, на 8 ом и выше), воспользуйтесь
// резисторами на 1 кОм. Подключите их к каждому выходному контакту,
// а затем соедините вместе на динамике. Не забудьте подключить другую
// сторону динамика к «земле»!
#include <Tone.h>
Tone freq1;
Tone freq2;
const int DTMF_freq1[] = { 1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336, 1477 };
const int DTMF_freq2[] = { 941, 697, 697, 697, 770, 770, 770, 852, 852, 852 };
void setup()
{
Serial.begin(9600);
freq1.begin(11);
freq2.begin(12);
}
void playDTMF(uint8_t number, long duration)
{
freq1.play(DTMF_freq1[number], duration);
freq2.play(DTMF_freq2[number], duration);
}
void loop()
{
int i;
uint8_t phone_number[] = { 8, 6, 7, 5, 3, 0 ,9 };
for(i = 0; i < sizeof(phone_number); i ++)
{
Serial.print(phone_number[i], 10);
Serial.print(' ');
playDTMF(phone_number[i], 500);
delay(600);
}
Serial.println();
delay(4000);
}