
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57


Роднина ме попита веднъж дали мога да създам превключвател, който да реагира на пляскане с ръце. Затова поръчах някои неща за създаване на проект и реших да направя инструкция, така че всеки да може да има страхотен превключвател по този начин.
Микроконтролерът е мозъкът на този проект. Звуков сензор е свързан към микроконтролера, сензорът изпраща аналогови данни при откриване на звук. Микроконтролерът е програмиран да открива големи разлики в звука. Когато се открие достатъчно висока разлика, което означава пляскане, микроконтролерът изпраща сигнал към релето. Релето се включва и светлината се включва. Когато пляскате втори път, светлината ще се изключи отново.
Консумативи
Физически неща:
- 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.
Ако все още не сте изтеглили и инсталирали необходимия софтуер, изтеглете го и го инсталирайте сега.
Сега следвайте тези следващи стъпки:
- Отворете AtmelStudio.
- Кликнете върху „Файл“-> „Нов“-> „Проект“.
- Кликнете върху „GCC C изпълним проект“. Дайте на вашия проект име и местоположение за съхранение. Кликнете върху „OK“.
- Потърсете ATmega328P. Кликнете върху „ATmega328P“-> „Добре“.
- Щракнете в 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 вече е програмиран правилно, съдържащ заглавен (.h) и изходен (.c) файл. Изтеглете двата файла и ги добавете към програмата си в AtmelStudio.
Щракнете с десния бутон върху името на проекта в Explorer Explorer. Кликнете върху „Добавяне“-> „Съществуващ елемент…“и изберете 2 изтеглени файла.
Стъпка 5: Стартирайте кода


Свържете микроконтролера към компютъра. Потърсете на вашия компютър „диспечер на устройства“и го отворете. Потърсете „Портове (COM и LPT)“и запомнете COM порта, на който е включен микроконтролерът.
Отворете PuTTY и кликнете върху "Serial", въведете COM-порта, който сте намерили на микроконтролера, и кликнете върху "Open". Изскача терминал, оставете го засега.
Върнете се в AtmelStudio, за да изберете правилния инструмент за програмиране на микроконтролера.
- Кликнете върху инструмента за чук.
- Изберете дебъгер/програмист "mEDBG*ATML".
- Изберете интерфейс „debugWIRE“.
- Щракнете върху „стартиране без отстраняване на грешки“.
Програмата ще изгражда и пише.
Когато програмата работи правилно, ще видите цели числа в puTTY. С помощта на отвертка мога да променя стойността, която се вижда в puTTY, като завъртя винта на сензора. Моят сензор дава стойности от 0 до 1000 при завъртане на винта докрай. Обръщам винта на 100 (10%) от общата стойност. Разбрах, че това работи при мен.
Стъпка 6: Промяна на чувствителността
За да регулирате чувствителността, когато светлината се включи, можете да използвате 2 опции, но изберете една, а не и двете:
- Смяна на винта на сензора;
- Промяна на стойността на кода.
Използвам опция 2. Увеличаването на MINIMALVALUE ще го направи по -малко чувствителен, намаляването го прави по -чувствителен.
#дефинирайте МИНИМАЛНА СТОЙНОСТ 5
Стъпка 7: Превключете всичко, което харесвате


ВНИМАНИЕ: Внимавайте при превключване на по -високо напрежение
Когато сте доволни от чувствителността на сензора, можете да промените веригата. Променете веригата като изображението по -горе. Вече можете да превключвате всичко, което ви харесва!
Препоръчано:
Превключвател за пляскане: 4 стъпки

Превключвател за пляскане: Уморихте ли се да ставате, само за да завъртите превключвателя, за да изключите/няма уред? Или уморени от търсене на превключвател на тъмно? Какво представлява превключвателят Clap? Схема на превключвател на пляскане е чувствителна към звукова основа верига
Как да си направим пляскане? Превключвател за включване/изключване -- Без никаква IC: 6 стъпки

Как да си направим пляскане? Превключвател за включване/изключване || Без никаква IC: Това е пляскане на превключвател без никаква IC. Можете ли да пляскате? За първи път След това крушката? ВКЛЮЧЕН И Пляскайте втори път крушката? ИЗКЛЮЧЕНО. Тази схема е базирана на SR тригер. Компоненти 1. BC547 NPN транзистори (4бр.) 2. 10k резистори (5бр.) 3. 1K съпротива
Сутиен с пляскане: 27 стъпки (със снимки)

Сутиен с пляскане: Първият път, когато прочетох за сирийското бельо, бях доста трогнат. На Запад често мислим за арабските култури като за сексуално потиснати общества, когато - всъщност - се оказва, че те очевидно са скок и граница пред нас в напредъка на бельото
LED превключвател с двойно пляскане: 3 стъпки

LED превключвател с двойно пляскане: Какво прави Използвайки активи от Abid, създадох LED превключвател за светлина с двойно пляскане, използвайки Arduino Leonardo, макет, няколко кабела, обикновен микрофон и светодиод. Когато пляскате два пъти, светодиодът се включва. Пляскайте отново два пъти и LED светлината ще се включи
Превключвател за пляскане (40 пляскания за 5 секунди): 4 стъпки (със снимки)

Плескащ превключвател (40 пляскания за 5 секунди): Прекъсвачът има способността да включва/изключва всеки електрически компонент чрез свързване на изхода на веригата към релеен превключвател. Тук ще направим превключвател с няколко компонента с много добри обяснения. В сравнение с всички останали превключватели