Оглавление:
- Запасы
- Шаг 1. Подключения
- Шаг 2: Создание программы
- Шаг 3: Добавление кода
- Шаг 4: Добавление USART
- Шаг 5: запуск кода
- Шаг 6: изменение чувствительности
- Шаг 7: переключайтесь на все, что вам нравится
Видео: Хлопковый переключатель: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Однажды родственник спросил меня, могу ли я создать переключатель, который реагирует на ваши хлопки в ладоши. Итак, я заказал кое-что для создания проекта и решил сделать инструктаж, чтобы у каждого был такой потрясающий переключатель.
Микроконтроллер - это мозг этого проекта. К микроконтроллеру подключен звуковой датчик, датчик отправляет аналоговые данные при обнаружении звука. Микроконтроллер запрограммирован на обнаружение больших различий в звуке. Когда обнаруживается достаточно большая разница, то есть хлопок, микроконтроллер отправляет сигнал на реле. Реле включается, и свет включается. При повторном хлопании свет снова погаснет.
Запасы
Физические характеристики:
- 1x ATmega328P Xplained Mini с кабелем для программирования
- 1x 5v релейный модуль, 1 канал (KY-019 или аналогичный)
- 1x модуль звукового датчика (KY-038 или аналогичный)
- 1x макетная плата
- 6x перемычка папа-папа
- 1x световая розетка со шнуром (или любое другое устройство, которое вы хотите включить)
- 1x лампочка
- 1x резистор * (я использую 220 Ом)
- 1x светодиод *
Программное обеспечение (скачать):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Putty (www.putty.org) *
* Для тестирования
Шаг 1. Подключения
Подключите все провода, как показано на картинке.
Шаг 2: Создание программы
Мне нравится писать код на C, поэтому этот проект написан на C.
Если вы еще не скачали и не установили необходимое программное обеспечение, скачайте и установите его сейчас.
Теперь выполните следующие шаги:
- Откройте AtmelStudio.
- Щелкните «Файл» -> «Новый» -> «Проект».
- Щелкните «Исполняемый проект GCC C». Дайте вашему проекту имя и место для хранения. Щелкните "ОК".
- Найдите ATmega328P. Щелкните «ATmega328P» -> «ОК».
- Щелкните в обозревателе решений на «main.c», чтобы открыть основную программу.
Шаг 3: Добавление кода
Удалите код, уже присутствующий в main.c
Скопируйте и вставьте следующий код в main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define МИНИМАЛЬНОЕ ЗНАЧЕНИЕ 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); двойной val1, val2; int main (void) {// Инициализировать USART USART_init (9600); USART_putstr ("# USART init / n"); // Инициализируем АЦП InitADC (); USART_putstr ("# инициализация ADC / n"); // Вывод PC1 выхода PORTC, остальной вход. DDRC = 0b00000010; // устанавливаем начальные значения на низкое значение PORTC. PORTC = 0b00000000; while (1) {// считываем значение потенциометра // считываем значение и сохраняем в val1 val1 = ReadADC (0); _delay_ms (1); // считываем следующее значение и сохраняем в val2 val2 = ReadADC (0); char str [10]; // ReadADC () возвращает значение в целых числах. Если мы хотим отладить или увидеть значение замазки, // значение необходимо преобразовать в символы, чтобы USART мог его распечатать. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // если два значения имеют определенную разницу. Обнаруживается звук и переключается порт. // МИНИМАЛЬНОЕ ЗНАЧЕНИЕ можно изменить, увеличение сделает его менее чувствительным. Уменьшение сделает его более чувствительным, если (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^ = 0b00000010; // СВЕТ НА UC _delay_ms (200); }}} void InitADC () {// Выбрать Vref = AVcc ADMUX | = (1 << REFS0); // устанавливаем предварительный делитель на 128 и включаем ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// выбор канала АЦП с маской безопасности ADMUX = (ADMUX & 0xF0) | (Канал АЦП & 0x0F); // режим однократного преобразования ADCSRA | = (1 << ADSC); // ждем завершения преобразования АЦП while (ADCSRA & (1 << ADSC)); вернуть АЦП; }
Шаг 4: Добавление USART
USART - это протокол последовательной связи, который можно использовать в микроконтроллере. Я использую его на микроконтроллере, чтобы видеть аналоговые данные с датчика.
USART уже правильно запрограммирован и содержит файл заголовка (.h) и исходный файл (.c). Загрузите 2 файла и добавьте их в свою программу в AtmelStudio.
Щелкните правой кнопкой мыши имя проекта в обозревателе решений. Нажмите «Добавить» -> «Существующий элемент…» и выберите 2 загруженных файла.
Шаг 5: запуск кода
Подключите микроконтроллер к компьютеру. Найдите на своем компьютере «диспетчер устройств» и откройте его. Найдите «Порты (COM и LPT)» и запомните COM-порт, на котором находится микроконтроллер.
Откройте PuTTY и нажмите «Последовательный», введите найденный вами COM-порт микроконтроллера и нажмите «Открыть». Выскакивает терминал, оставьте его пока.
Вернитесь в AtmelStudio, чтобы выбрать правильный инструмент для программирования микроконтроллера.
- Нажмите на молоток.
- Выберите отладчик / программатор «mEDBG * ATML».
- Выберите интерфейс «debugWIRE».
- Нажимаем «начать без отладки».
Программа будет построена и написана.
Когда программа работает правильно, вы увидите целые значения в puTTY. Используя отвертку, я могу изменить значение, отображаемое в puTTY, повернув винт на датчике. Мой датчик выдает значения от 0 до 1000 при полном повороте винта. Я поворачиваю винт до 100 (10%) от общего значения. Я обнаружил, что это работает для меня.
Шаг 6: изменение чувствительности
Чтобы настроить чувствительность при включении света, вы можете использовать 2 варианта, но выбрать один, а не оба:
- Заменить винт датчика;
- Измените значение кода.
Я использую вариант 2. Увеличение МИНИМАЛЬНОГО ЗНАЧЕНИЯ сделает его менее чувствительным, уменьшение - более чувствительным.
#define МИНИМАЛЬНОЕ ЗНАЧЕНИЕ 5
Шаг 7: переключайтесь на все, что вам нравится
ВНИМАНИЕ: будьте осторожны при переключении на более высокое напряжение
Когда вас устраивает чувствительность датчика, вы можете изменить схему. Измените схему, как на изображении выше. Теперь вы можете переключать все, что захотите!
Рекомендуемые:
Педальный переключатель Bluetooth для камеры смартфона: 13 шагов (с изображениями)
Педальный переключатель Bluetooth для камеры смартфона: в настоящее время я занимаюсь созданием инструкций, видеороликов на YouTube и сообщений в блогах. Чтобы публикация в блоге была продуктивной, важно делать как можно больше фотографий с максимальной детализацией. Сделать это не так-то просто, потому что у человека всего две руки. Мне нужно
ПЕРЕКЛЮЧАТЕЛЬ WAVE -- БЕСПРОВОДНЫЙ ПЕРЕКЛЮЧАТЕЛЬ С ИСПОЛЬЗОВАНИЕМ 555: 4 шага
ПЕРЕКЛЮЧАТЕЛЬ WAVE || СЕНСОРНЫЙ ПЕРЕКЛЮЧАТЕЛЬ ИСПОЛЬЗОВАНИЕ 555: Привет всем, добро пожаловать Сегодня я создаю простой бесконтактный переключатель, он активируется простым взмахом руки с помощью инфракрасного датчика и микросхемы таймера 555, так что давайте построим его … Его работа проста поскольку 555 работает как триггер, он хранит
СЕНСОРНЫЙ ПЕРЕКЛЮЧАТЕЛЬ - Как сделать сенсорный переключатель, используя транзистор и макетную плату: 4 шага
СЕНСОРНЫЙ ПЕРЕКЛЮЧАТЕЛЬ | Как сделать сенсорный переключатель, используя транзистор и макетную плату. Сенсорный переключатель - это очень простой проект, основанный на применении транзисторов. В этом проекте используется транзистор BC547, который действует как сенсорный переключатель. ОБЯЗАТЕЛЬНО ПРОСМОТРИТЕ ВИДЕО, КОТОРОЕ ДАЕТ ВАМ ПОЛНУЮ ПОДРОБНУЮ ИНФОРМАЦИЮ О ПРОЕКТЕ
Переключатель Slap: простой, сенсорный переключатель без пайки: 7 шагов
Slap Switch: простой сенсорный переключатель без пайки: Slap Switch - это простой сенсорный переключатель сопротивления, разработанный для моего проекта Explode the Controller, чтобы включить физическую игру в компьютерные игры с помощью Makey Makey и Scratch. В проекте требовался сенсорный выключатель, который был: прочным, чтобы его можно было сильно ударить
Взломайте беспроводной дверной звонок в переключатель беспроводной сигнализации или переключатель включения / выключения: 4 шага
Взломайте беспроводной дверной звонок в переключатель беспроводной сигнализации или переключатель включения / выключения: недавно я построил систему сигнализации и установил ее в своем доме. Я включил магнитные выключатели на дверях и подключил их через чердак. Окна - это совсем другое дело, и жесткая проводка их не подходила. Мне нужно было беспроводное решение, а это