
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

В предыдущем руководстве мы увидели, как заставить ваш Arduino говорить. Сегодня мы поговорим еще немного по той же теме. Все мы, должно быть, в какой-то момент жизни сталкивались с системой объявлений, может быть, в банке или на вокзале. Вы когда-нибудь задумывались, как работают эти системы объявлений? Что ж, они работают по тому же принципу, что и наш последний проект. Итак, сегодня в этом руководстве мы создадим систему объявления токенов, способную объявлять токены от 1 до 999, то есть всего 999 токенов (1000, если вы включите 0). Итак, приступим к процессу сборки !!!
Шаг 1. Соберите припасы



Привет, если вы ищете интернет-магазин для покупки компонентов, тогда вам нужно посетить UTSource.net. У них есть огромное разнообразие электронных модулей и компонентов по доступным ценам. Они также предоставляют услуги печатных плат до 16 слоев. Проверьте их сайт.
Давайте посмотрим на модули, которые нам нужны для этого проекта -
1. Плата Arduino Uno
2. Матричная клавиатура 4 * 4
3. Модуль SD-карты
4. Аудиоразъем 3,5 мм
5. Динамик со встроенным усилителем и кабелем AUX.
6. Некоторые провода заголовка
Большинство этих компонентов использовалось в наших предыдущих проектах.
Шаг 2: Принципиальная схема

Принципиальная схема этого проекта точно такая же, как и в проекте Talking Arduino. Единственное отличие - клавиатура. Подключить клавиатуру довольно просто. Просто подключите ряды клавиатуры к контактам Arduino, как показано выше.
(Клавиатура, которую я использовал в этом проекте, не такая же, как в схеме, потому что я не нашел нужную в списке деталей Фритцинга. Поэтому игнорируйте первый и последний контакты клавиатуры в схеме.)
Подключите левый и правый канал аудиоразъема к цифровому контакту 10 Arduino. И контакт заземления к земле Arduino.
Следуйте диаграмме, чтобы выполнить остальные подключения.
Шаг 3: Подготовка аудиофайлов


Теперь вы должны помнить, что при использовании модуля SD-карты и библиотеки TMRpcm вы можете использовать только аудиоформат.wav. Никакой другой аудиоформат работать не будет.
Итак, чтобы преобразовать записанные аудиофайлы или файлы, которые вы собираетесь установить на SD-карту, вы должны использовать этот онлайн-конвертер аудио. >> НАЖМИТЕ ЗДЕСЬ
Сохраните настройки преобразования, как показано на изображении выше.
А если вам нужны крутые оцифрованные голоса, которые мы слышим в реальных системах, то посетите этот веб-сайт, который преобразует письменный текст в речь. А затем мы можем скачать его в формате mp3, который затем можно преобразовать в формат.wav с указанного выше сайта.
НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ПОСЕТИТЬ САЙТ
Вы также можете скачать аудиофайлы, которые я использовал ниже. Итак, настало время программировать доску.
Шаг 4: кодирование

Загрузите файл.ino снизу. Скомпилируйте и загрузите программу на свою плату Arduino. Если у вас возникнут проблемы с загрузкой кода, свяжитесь со мной или оставьте комментарий ниже. Буду рад вам помочь.
#include #include "SD.h" #define SD_ChipSelectPin 4 #include "TMRpcm.h" #include "SPI.h" TMRpcm tmrpcm; char myNum [4]; int i; const byte ROWS = 4; // четыре строки const byte COLS = 4; // четыре символьных ключа столбцов [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {A0, A1, A2, A3}; // подключаемся к выводам строки байта клавиатуры colPins [COLS] = {9, 8, 7, 6}; // подключаемся к выводам столбцов клавиатуры Keypad keypad = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS); void setup () {tmrpcm.speakerPin = 10; Serial.begin (9600); если (! SD.begin (SD_ChipSelectPin)) {Serial.println ("Ошибка SD"); возвращение; } / * tmrpcm.setVolume (5); tmrpcm.play ("three.wav"); // Используется для тестирования (Не включать в окончательный код) delay (1000); * /} void loop () {Serial.println ("Введите трехзначное число -"); for (i = 0; i <4; ++ i) {while ((myNum = keypad.getKey ()) == NO_KEY) {задержка (1); // Просто ждем нажатия клавиши} // Ждем, пока клавиша не будет отпущена while (keypad.getKey ()! = NO_KEY) {delay (1); } Serial.print (myNum ); } if (myNum [3] == 'A') {Serial.println ("Токен отправлен"); tmrpcm.setVolume (5); tmrpcm.play ("tokenno.wav"); задержка (2000); проверить(); } if (myNum [3] == 'B') {Serial.println («Токен не отправлен»); я = 0; } if (myNum [3] == '*') {Serial.println ("Рег. стол"); tmrpcm.setVolume (5); tmrpcm.play ("star.wav"); я = 0; } if (myNum [3] == '#') {Serial.println ("закрытие"); tmrpcm.setVolume (5); tmrpcm.play ("hash.wav"); я = 0; } если (myNum [3] == 'D') {Serial.println ("Sub"); tmrpcm.setVolume (5); tmrpcm.play ("D.wav"); я = 0; }} void check () {для (int c = 0; c <3; c ++) {if (myNum [c] == '0') {tmrpcm.setVolume (5); tmrpcm.play ("zero.wav"); задержка (1000); } если (myNum [c] == '1') {tmrpcm.setVolume (5); tmrpcm.play ("one.wav"); задержка (1000); } если (myNum [c] == '2') {tmrpcm.setVolume (5); tmrpcm.play ("two.wav"); задержка (1000); } если (myNum [c] == '3') {tmrpcm.setVolume (5); tmrpcm.play ("three.wav"); задержка (1000); } если (myNum [c] == '4') {tmrpcm.setVolume (5); tmrpcm.play ("four.wav"); задержка (1000); } если (myNum [c] == '5') {tmrpcm.setVolume (5); tmrpcm.play ("five.wav"); задержка (1000); } если (myNum [c] == '6') {tmrpcm.setVolume (5); tmrpcm.play ("six.wav"); задержка (1000); } если (myNum [c] == '7') {tmrpcm.setVolume (5); tmrpcm.play ("seven.wav"); задержка (1000); } если (myNum [c] == '8') {tmrpcm.setVolume (5); tmrpcm.play ("восемь.wav"); задержка (1000); } если (myNum [c] == '9') {tmrpcm.setVolume (5); tmrpcm.play ("девять.wav"); задержка (1000); }} tmrpcm.setVolume (5); tmrpcm.play ("star.wav"); }
Если вы измените имена аудиофайлов, убедитесь, что вы также редактируете их в коде. После этого ваш проект готов к тестированию. Посмотрим, как это работает.
Шаг 5: Работа над проектом

Я загрузил видео проекта ниже. Вы можете это проверить. Проект оправдал мои ожидания. Единственное ограничение, с которым я столкнулся, - это отсутствие отдельного дисплея для проекта. Мы не можем постоянно держать ноутбук подключенным. Другой случай, если вы работаете за ноутбуком весь день и у вас много USB-портов.
Итак, я хочу, чтобы вы, ребята, добавили ЖК-дисплей (любой подойдет) в этот проект и прислали мне ссылку на этот проект.
Этот проект можно использовать в ваших офисах на стойках регистрации, если вас ежедневно посещает много людей.
Добавление отдельного блока питания и ЖК-дисплея сделает этот проект самостоятельным. Я поручаю эту задачу вам, ребята.
Если вам нравится моя работа, помогите мне, поделившись моими проектами в ваших социальных сетях. На данный момент это все. Скоро увидимся с другим проектом.
Рекомендуемые:
Система домашней автоматизации WiFi со сверхнизким энергопотреблением: 6 шагов (с изображениями)

Система домашней автоматизации WiFi со сверхнизким энергопотреблением: в этом проекте мы показываем, как за несколько шагов создать базовую локальную систему домашней автоматизации. Мы собираемся использовать Raspberry Pi, который будет выступать в качестве центрального WiFi-устройства. В то время как для конечных узлов мы собираемся использовать IOT Cricket, чтобы сделать аккумуляторную батарею
Автоматическая система полива растений с использованием Micro: bit: 8 шагов (с изображениями)

Автоматическая система полива растений с использованием Micro: bit: В этой инструкции я собираюсь показать вам, как построить автоматическую систему полива растений с помощью Micro: bit и некоторых других небольших электронных компонентов. Micro: bit использует датчик влажности контролировать уровень влажности в почве растений и
Система сортировки цветов: система на основе Arduino с двумя ремнями: 8 шагов

Система сортировки по цвету: система на основе Arduino с двумя ремнями: транспортировка и / или упаковка продуктов и предметов в промышленной сфере осуществляется с использованием линий, изготовленных с использованием конвейерных лент. Эти ремни помогают перемещать предмет из одной точки в другую с определенной скоростью. Некоторые задачи обработки или идентификации могут быть
Таймер счета Arduino для объявления: 5 шагов

Таймер отсчета Arduino для объявления: это таймер обратного отсчета, который работает с использованием Arduino UNO и ЖК-монитора. Причина, по которой я сделал этот проект, потому что в нашей школе (KCIS) нам нужно резервировать обед каждую среду в 21:30 онлайн. Однако самая известная и еда, которая есть в г
Диспенсер токенов Coin-O-Matic: 11 шагов

Диспенсер токенов Coin-O-Matic: в нашем офисе есть торговый автомат, который может принимать как реальные деньги, так и жетоны. Руководство решило, что мы можем получить немного бесплатных сладостей (в определенных пределах), чтобы мы были счастливы и довольны низкой заработной платой, которую мы зарабатываем. Проблема заключалась в том, как бы вы