Каталог
Звук набора номера на Arduino

Звук набора номера на Arduino

Звук набора номера на телефоне - это узнаваемый и характерный звук, который ассоциируется с DTMF (Dual Tone Multi Frequency) сигналами. В этом проекте мы создадим устройство на базе Arduino, которое будет воспроизводить звуки, аналогичные звукам набора номера на телефоне, используя матричную клавиатуру и пьезодинамик.

Необходимые компоненты

  • Arduino (Uno, Nano или Mega)
  • Пьезодинамик
  • Матричная клавиатура (4x4)
  • Соединительные провода
  • Макетная плата

Схема подключения

  1. Подключите пьезодинамик к пину 9 на Arduino.
  2. Подключите матричную клавиатуру к следующим пинам Arduino:
    • Ряды: 9, 8, 7, 6
    • Столбцы: 5, 4, 3, 2

Установка библиотеки AlashKeypadMatrix

Чтобы подключить библиотеку для Arduino, выполните следующие шаги:

  1. Скачайте библиотеку AlashKeypadMatrix с официального репозитория GitHub:

  2. Откройте программу Arduino IDE и перейдите в меню «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку…».

  3. В открывшемся окне выберите скачанный .zip файл и нажмите «Открыть».

  4. Снизу Arduino IDE появится сообщение “Библиотека добавлена. Проверьте меню “Подключить библиотеку””.

Теперь библиотека будет доступна для использования в ваших проектах.

Код для проекта

Ниже приведен код, который воспроизводит DTMF звуки при нажатии на клавиши матричной клавиатуры.

#include <AlashKeypadMatrix.h> // Подключаем библиотеку для работы с матричной клавиатурой AlashKeypadMatrix
const int buzzerPin = 11; // Пин для подключения пьезодинамика
int lowFreq[] = {897, 970, 1052, 1141}; // Низкие частоты для DTMF сигналов
int highFreq[] = {1409, 1536, 1677, 1833}; // Высокие частоты для DTMF сигналов

const byte ROWS = 4; // Четыре строки
const byte COLS = 4; // Четыре столбца
char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; // Подключение строк к пинам Arduino
byte colPins[COLS] = {5, 4, 3, 2}; // Подключение столбцов к пинам Arduino

AlashKeypadMatrix keypad = AlashKeypadMatrix(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

void setup() {
  pinMode(buzzerPin, OUTPUT); // Устанавливаем пин для пьезодинамика как выход
}

void loop() {
  char key = keypad.getKey(); // Считываем нажатую клавишу
  if (key) {
    playDTMFTone(key); // Проигрываем DTMF тон для нажатой клавиши
  }
}

void playDTMFTone(char key) {
  int row = -1, col = -1;

  // Находим строку и столбец для нажатой клавиши
  for (int i = 0; i < ROWS; i++) {
    for (int j = 0; j < COLS; j++) {
      if (keys[i][j] == key) {
        row = i;
        col = j;
        break;
      }
    }
    if (row != -1) break;
  }

  if (row != -1 && col != -1) {
    // Проигрываем два тона одновременно
    tone(buzzerPin, lowFreq[row], 1000);
    delay(40);
    tone(buzzerPin, highFreq[col], 1000);
    delay(40);
    noTone(buzzerPin);
  }
}

Заключение

Этот проект позволяет воспроизводить характерные звуки набора номера, используя матричную клавиатуру и пьезодинамик. Такой проект может быть полезен для создания различных обучающих и демонстрационных систем, а также для изучения основ работы с DTMF сигналами и библиотеками для Arduino.

 
Комментарии
Отзывов еще никто не оставлял
Товары упомянутые в статье
В наличии
Предзаказ
арт. 316
Гибкая матричная клавиатура на 16 кнопок отличается от стандартных кнопочных...
450 тг 400 тг
Нет в наличии
Предзаказ
арт.
80 тг
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 тг
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заказ в один клик
С помощью уведомлений о заказе можно не только получать актуальную информацию по заказу, но и иметь быстрый канал связи с магазином