Съдържание:

Превключвател за пляскане: 7 стъпки (със снимки)
Превключвател за пляскане: 7 стъпки (със снимки)

Видео: Превключвател за пляскане: 7 стъпки (със снимки)

Видео: Превключвател за пляскане: 7 стъпки (със снимки)
Видео: 32 Секретные Комбинации Для Вашей Клавиатуры 2024, Юли
Anonim
Image
Image

Роднина ме попита веднъж дали мога да създам превключвател, който да реагира на пляскане с ръце. Затова поръчах някои неща за създаване на проект и реших да направя инструкция, така че всеки да може да има страхотен превключвател по този начин.

Микроконтролерът е мозъкът на този проект. Звуков сензор е свързан към микроконтролера, сензорът изпраща аналогови данни при откриване на звук. Микроконтролерът е програмиран да открива големи разлики в звука. Когато се открие достатъчно висока разлика, което означава пляскане, микроконтролерът изпраща сигнал към релето. Релето се включва и светлината се включва. Когато пляскате втори път, светлината ще се изключи отново.

Консумативи

Физически неща:

  • 1x ATmega328P Xplained Mini с кабел за програмиране
  • 1x 5v релеен модул 1-канален (KY-019 или подобен)
  • 1x звуков сензорен модул (KY-038 или подобен)
  • 1x платка
  • 6x тел за джъмпер за мъже-мъже
  • 1x гнездо за светлина с кабел (или всяко друго устройство, което искате да включите)
  • 1x крушка
  • 1x резистор* (използвам 220 ома)
  • 1x LED*

Софтуер (изтегляне):

  • AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
  • Замазка (www.putty.org)*

* За целите на тестването

Стъпка 1: Връзки

Създаване на програмата
Създаване на програмата

Свържете всички проводници, както е показано на изображението.

Стъпка 2: Създаване на програмата

Създаване на програмата
Създаване на програмата
Създаване на програмата
Създаване на програмата

Обичам да кодирам на C, така че този проект е написан на C.

Ако все още не сте изтеглили и инсталирали необходимия софтуер, изтеглете го и го инсталирайте сега.

Сега следвайте тези следващи стъпки:

  1. Отворете AtmelStudio.
  2. Кликнете върху „Файл“-> „Нов“-> „Проект“.
  3. Кликнете върху „GCC C изпълним проект“. Дайте на вашия проект име и местоположение за съхранение. Кликнете върху „OK“.
  4. Потърсете ATmega328P. Кликнете върху „ATmega328P“-> „Добре“.
  5. Щракнете в Explorer Explorer на „main.c“, за да отворите основната програма.

Стъпка 3: Добавяне на код

Изтрийте кода, който вече присъства в main.c

Копирайте и поставете следния код в main.c

#дефинирайте F_CPU 16000000

#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); двоен val1, val2; int main (void) {// Инициализиране на USART USART_init (9600); USART_putstr ("#USART init / n"); // Инициализиране на ADC InitADC (); USART_putstr ("#ADC init / n"); // PC1 извод на PORTC изход, останалият вход. DDRC = 0b00000010; // задаваме начални стойности на ниско PORTC. PORTC = 0b00000000; while (1) {// четене на стойността на потенциометъра // стойност на четене и съхраняване във val1 val1 = ReadADC (0); _ закъснение_ms (1); // прочетете следващата стойност en store във 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; // LIGHT ON 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) {// изберете ADC канал с предпазна маска ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // режим на единично преобразуване ADCSRA | = (1 << ADSC); // изчакайте, докато преобразуването на ADC приключи, докато (ADCSRA & (1 << ADSC)); връщане ADC; }

Стъпка 4: Добавяне на USART

Добавяне на USART
Добавяне на USART

USART е сериен комуникационен протокол, който може да се използва на микроконтролера. Използвам го на микроконтролера, за да видя аналогови данни от сензора.

USART вече е програмиран правилно, съдържащ заглавен (.h) и изходен (.c) файл. Изтеглете двата файла и ги добавете към програмата си в AtmelStudio.

Щракнете с десния бутон върху името на проекта в Explorer Explorer. Кликнете върху „Добавяне“-> „Съществуващ елемент…“и изберете 2 изтеглени файла.

Стъпка 5: Стартирайте кода

Изпълнение на кода
Изпълнение на кода
Изпълнение на кода
Изпълнение на кода

Свържете микроконтролера към компютъра. Потърсете на вашия компютър „диспечер на устройства“и го отворете. Потърсете „Портове (COM и LPT)“и запомнете COM порта, на който е включен микроконтролерът.

Отворете PuTTY и кликнете върху "Serial", въведете COM-порта, който сте намерили на микроконтролера, и кликнете върху "Open". Изскача терминал, оставете го засега.

Върнете се в AtmelStudio, за да изберете правилния инструмент за програмиране на микроконтролера.

  1. Кликнете върху инструмента за чук.
  2. Изберете дебъгер/програмист "mEDBG*ATML".
  3. Изберете интерфейс „debugWIRE“.
  4. Щракнете върху „стартиране без отстраняване на грешки“.

Програмата ще изгражда и пише.

Когато програмата работи правилно, ще видите цели числа в puTTY. С помощта на отвертка мога да променя стойността, която се вижда в puTTY, като завъртя винта на сензора. Моят сензор дава стойности от 0 до 1000 при завъртане на винта докрай. Обръщам винта на 100 (10%) от общата стойност. Разбрах, че това работи при мен.

Стъпка 6: Промяна на чувствителността

За да регулирате чувствителността, когато светлината се включи, можете да използвате 2 опции, но изберете една, а не и двете:

  1. Смяна на винта на сензора;
  2. Промяна на стойността на кода.

Използвам опция 2. Увеличаването на MINIMALVALUE ще го направи по -малко чувствителен, намаляването го прави по -чувствителен.

#дефинирайте МИНИМАЛНА СТОЙНОСТ 5

Стъпка 7: Превключете всичко, което харесвате

Превключете всичко, което харесвате!
Превключете всичко, което харесвате!
Превключете всичко, което харесвате!
Превключете всичко, което харесвате!

ВНИМАНИЕ: Внимавайте при превключване на по -високо напрежение

Когато сте доволни от чувствителността на сензора, можете да промените веригата. Променете веригата като изображението по -горе. Вече можете да превключвате всичко, което ви харесва!

Препоръчано: