Оглавление:

Хлопковый переключатель: 7 шагов (с изображениями)
Хлопковый переключатель: 7 шагов (с изображениями)

Видео: Хлопковый переключатель: 7 шагов (с изображениями)

Видео: Хлопковый переключатель: 7 шагов (с изображениями)
Видео: ТЕХНИКА БЕЗОПАСНОСТИ. Вид Грубейшего Нарушения ТРЕБОВАНИЙ ТБ при работе на СТАНКАХ. 2024, Ноябрь
Anonim
Image
Image

Однажды родственник спросил меня, могу ли я создать переключатель, который реагирует на ваши хлопки в ладоши. Итак, я заказал кое-что для создания проекта и решил сделать инструктаж, чтобы у каждого был такой потрясающий переключатель.

Микроконтроллер - это мозг этого проекта. К микроконтроллеру подключен звуковой датчик, датчик отправляет аналоговые данные при обнаружении звука. Микроконтроллер запрограммирован на обнаружение больших различий в звуке. Когда обнаруживается достаточно большая разница, то есть хлопок, микроконтроллер отправляет сигнал на реле. Реле включается, и свет включается. При повторном хлопании свет снова погаснет.

Запасы

Физические характеристики:

  • 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.

Если вы еще не скачали и не установили необходимое программное обеспечение, скачайте и установите его сейчас.

Теперь выполните следующие шаги:

  1. Откройте AtmelStudio.
  2. Щелкните «Файл» -> «Новый» -> «Проект».
  3. Щелкните «Исполняемый проект GCC C». Дайте вашему проекту имя и место для хранения. Щелкните "ОК".
  4. Найдите ATmega328P. Щелкните «ATmega328P» -> «ОК».
  5. Щелкните в обозревателе решений на «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

USART - это протокол последовательной связи, который можно использовать в микроконтроллере. Я использую его на микроконтроллере, чтобы видеть аналоговые данные с датчика.

USART уже правильно запрограммирован и содержит файл заголовка (.h) и исходный файл (.c). Загрузите 2 файла и добавьте их в свою программу в AtmelStudio.

Щелкните правой кнопкой мыши имя проекта в обозревателе решений. Нажмите «Добавить» -> «Существующий элемент…» и выберите 2 загруженных файла.

Шаг 5: запуск кода

Запуск кода
Запуск кода
Запуск кода
Запуск кода

Подключите микроконтроллер к компьютеру. Найдите на своем компьютере «диспетчер устройств» и откройте его. Найдите «Порты (COM и LPT)» и запомните COM-порт, на котором находится микроконтроллер.

Откройте PuTTY и нажмите «Последовательный», введите найденный вами COM-порт микроконтроллера и нажмите «Открыть». Выскакивает терминал, оставьте его пока.

Вернитесь в AtmelStudio, чтобы выбрать правильный инструмент для программирования микроконтроллера.

  1. Нажмите на молоток.
  2. Выберите отладчик / программатор «mEDBG * ATML».
  3. Выберите интерфейс «debugWIRE».
  4. Нажимаем «начать без отладки».

Программа будет построена и написана.

Когда программа работает правильно, вы увидите целые значения в puTTY. Используя отвертку, я могу изменить значение, отображаемое в puTTY, повернув винт на датчике. Мой датчик выдает значения от 0 до 1000 при полном повороте винта. Я поворачиваю винт до 100 (10%) от общего значения. Я обнаружил, что это работает для меня.

Шаг 6: изменение чувствительности

Чтобы настроить чувствительность при включении света, вы можете использовать 2 варианта, но выбрать один, а не оба:

  1. Заменить винт датчика;
  2. Измените значение кода.

Я использую вариант 2. Увеличение МИНИМАЛЬНОГО ЗНАЧЕНИЯ сделает его менее чувствительным, уменьшение - более чувствительным.

#define МИНИМАЛЬНОЕ ЗНАЧЕНИЕ 5

Шаг 7: переключайтесь на все, что вам нравится

Переключайте все, что вам нравится!
Переключайте все, что вам нравится!
Переключайте все, что вам нравится!
Переключайте все, что вам нравится!

ВНИМАНИЕ: будьте осторожны при переключении на более высокое напряжение

Когда вас устраивает чувствительность датчика, вы можете изменить схему. Измените схему, как на изображении выше. Теперь вы можете переключать все, что захотите!

Рекомендуемые: