Obsah:
- Zásoby
- Krok 1: Pripojenia
- Krok 2: Vytvorenie programu
- Krok 3: Pridanie kódu
- Krok 4: Pridanie USART
- Krok 5: Spustenie kódu
- Krok 6: Zmeňte citlivosť
- Krok 7: Prepnite všetko, čo sa vám páči
Video: Prepínač klapky: 7 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Príbuzný sa ma raz opýtal, či by som mohol vytvoriť spínač, ktorý reaguje na tlieskanie rukami. Takže som si objednal nejaké veci na vytvorenie projektu a rozhodol som sa, že urobím návod, aby každý mohol mať taký úžasný prepínač.
Mikrokontrolér je mozgom tohto projektu. K mikrokontroléru je pripojený zvukový senzor, ktorý pri detekcii zvuku odosiela analógové údaje. Mikrokontrolér je naprogramovaný tak, aby detekoval veľké rozdiely vo zvuku. Keď je detegovaný dostatočne vysoký rozdiel, čo znamená tlesknutie, mikrokontrolér vyšle signál do relé. Relé sa zapne a rozsvieti sa svetlo. Pri druhom tlieskaní sa svetlo opäť vypne.
Zásoby
Fyzické veci:
- 1x ATmega328P Xplained Mini s káblom na programovanie
- 1 x 5v reléový modul, 1 kanál (KY-019 alebo podobný)
- 1x modul zvukového senzora (KY-038 alebo podobný)
- 1x Breadboard
- 6x prepojovací kábel male-male
- 1x svetelná zásuvka s káblom (alebo iným zariadením, ktoré chcete zapnúť)
- 1x žiarovka
- 1x odpor* (používam 220 ohmov)
- 1x LED*
Softvér (na stiahnutie):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Tmel (www.putty.org)*
* Na testovacie účely
Krok 1: Pripojenia
Pripojte všetky vodiče podľa obrázku.
Krok 2: Vytvorenie programu
Rád kódujem v jazyku C, takže tento projekt je napísaný v jazyku C.
Ak ste si ešte nestiahli a nenainštalovali potrebný softvér, stiahnite si ho a nainštalujte.
Teraz postupujte podľa nasledujúcich krokov:
- Otvorte AtmelStudio.
- Kliknite na „Súbor“-> „Nový“-> „Projekt“.
- Kliknite na „Spustiteľný projekt GCC C“. Pomenujte svoj projekt a uložte ho. Kliknite na „Ok“.
- Vyhľadajte ATmega328P. Kliknite na „ATmega328P“-> „Ok“.
- Kliknutím na položku v Prieskumníkovi riešení na adrese „main.c“otvoríte hlavný program.
Krok 3: Pridanie kódu
Odstráňte kód, ktorý je už prítomný v main.c
Skopírujte a prilepte nasledujúci kód do súboru main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); dvojitý val1, val2; int main (void) {// Inicializácia USART USART_init (9600); USART_putstr ("#USART init / n"); // Inicializácia ADC InitADC (); USART_putstr ("#ADC init / n"); // PC1 pin výstupu PORTC, zvyšok vstup. DDRC = 0b00000010; // nastavenie počiatočných hodnôt na PORTC nízke. PORTC = 0b00000000; while (1) {// čítanie hodnoty potenciometra // čítanie hodnoty a uloženie do hodnoty val1 val1 = ReadADC (0); _delay_ms (1); // čítanie ďalšej hodnoty v obchode val2 val2 = ReadADC (0); char str [10]; // ReadADC () vráti hodnotu späť v celých číslach. Ak chceme ladiť alebo vidieť hodnotu na tmeli, // hodnotu je potrebné previesť na znaky, aby ju USART mohol vytlačiť. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // ak tieto 2 hodnoty majú určitý rozdiel. Zistí sa zvuk a prepne port. // MINIMÁLNU HODNOTU je možné zmeniť, jej zvýšením bude menšia citlivosť. Znížením bude citlivejšie, ak (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} neplatné InitADC () {// Vybrať Vref = AVcc ADMUX | = (1 << REFS0); // nastavte prescaller na 128 a povoľte ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// vyberte kanál ADC s bezpečnostnou maskou ADMUX = (ADMUX & 0xF0) | (Kanál ADC & 0x0F); // režim jednoduchej konverzie ADCSRA | = (1 << ADSC); // počkajte, kým sa konverzia ADC nedokončí while (ADCSRA & (1 << ADSC)); vrátiť ADC; }
Krok 4: Pridanie USART
USART je sériový komunikačný protokol, ktorý je možné použiť v mikrokontroléri. Používam to na mikrokontroléri na zobrazenie analógových údajov zo snímača.
USART je už naprogramovaný správne a obsahuje súbor hlavičky (.h) a zdrojový (.c) súbor. Stiahnite si 2 súbory a pridajte ich do svojho programu v AtmelStudio.
V programe Solution Explorer kliknite pravým tlačidlom myši na názov projektu. Kliknite na „Pridať“-> „Existujúca položka …“a vyberte 2 stiahnuté súbory.
Krok 5: Spustenie kódu
Pripojte mikrokontrolér k počítaču. V počítači vyhľadajte „správca zariadení“a otvorte ho. Vyhľadajte „Porty (COM a LPT)“a pamätajte na COM port, na ktorom je mikrokontrolér zapnutý.
Otvorte PuTTY a kliknite na „Sériový“, zadajte COM port, ktorý ste našli v mikrokontroléri, a kliknite na „Otvoriť“. Vyskočí terminál, nechajte ho zatiaľ.
Vráťte sa na stránku AtmelStudio a vyberte správny nástroj na programovanie mikrokontroléra.
- Kliknite na nástroj kladivo.
- Vyberte ladiaci program/programátor „mEDBG*ATML“.
- Vyberte rozhranie „debugWIRE“.
- Kliknite na „začať bez ladenia“.
Program bude stavať a písať.
Keď program beží správne, v puTTY sa zobrazia celočíselné hodnoty. Pomocou skrutkovača môžem zmeniť hodnotu zobrazenú v puTTY otáčaním skrutky na senzore. Môj senzor pri úplnom otočení skrutky udáva hodnoty od 0 do 1000. Skrutku otáčam na 100 (10%) z celkovej hodnoty. Zistil som, že to na mňa funguje.
Krok 6: Zmeňte citlivosť
Na úpravu citlivosti pri zapnutí svetla môžete použiť 2 možnosti, ale vyberte jednu, nie obe:
- Vymeňte skrutku snímača;
- Zmeňte hodnotu kódu.
Používam možnosť 2. Zvýšením MINIMÁLNEJ HODNOTY dôjde k jej menšej citlivosti, znížením k zvýšeniu citlivosti.
#define MINIMALVALUE 5
Krok 7: Prepnite všetko, čo sa vám páči
UPOZORNENIE: Dávajte pozor pri prepínaní vyšších napätí
Keď ste s citlivosťou senzora spokojní, môžete zmeniť obvod. Zmeňte obvod podľa obrázku vyššie. Teraz môžete prepnúť čokoľvek, čo sa vám páči!
Odporúča:
Prepínač pedálu Bluetooth pre fotoaparát smartfónu: 13 krokov (s obrázkami)
Prepínač pedálov Bluetooth pre fotoaparát smartfónu: V dnešnej dobe sa zaoberám tvorbou inštrukcií, videí na youtube a blogových príspevkov. Aby bol blogový príspevok produktívny, je nevyhnutné nasnímať veľa fotografií čo najpodrobnejšie. Nie je to také jednoduché, pretože ľudská bytosť má iba dve ruky. Potrebujem
Inteligentný bezdotykový prepínač: 8 krokov (s obrázkami)
Inteligentný bezdotykový spínač: Potreba sociálneho dištancovania sa a bezpečných zdravotných postupov, ako je používanie dezinfekčných prostriedkov po použití verejného prostredia, ako sú vodovodné batérie, vypínače atď., Je veľmi dôležitá pre zníženie šírenia koronavírusu. Inovácia teda bezprostredne potrebuje
DIY prepínač zvuku: 9 krokov (s obrázkami)
DIY Audio Switch: Prednedávnom som vypol starý dátový vypínač Freecycle a odvtedy na to pozerám a myslím si „To by som mal skutočne previesť na stereo zvukový prepínač“. A tak som asi po roku pozerania na to konečne skonvertoval ten starý dátový prepínač na
Prepínač automatického zaťaženia (vákuum) s ACS712 a Arduino: 7 krokov (s obrázkami)
Prepínač automatického zaťaženia (vákuum) s ACS712 a Arduino: Ahoj všetci, prevádzka elektrického náradia v uzavretom priestore je uponáhľaná, pretože všetok prach vytvorený vo vzduchu a prach vo vzduchu znamená prach v pľúcach. Prevádzka vášho obchodného vysávača môže niektoré z týchto rizík eliminovať, ale zapínať a vypínať ho vždy
Automatický prepínač klávesnice a myši - prepínač USB pre výstup: 5 krokov
Automatický prepínač klávesnice a myši - USB upstream switch: V tomto projekte zostavíme automatický prepínač klávesnice a myši, ktorý umožní jednoduché zdieľanie medzi dvoma počítačmi. Myšlienka tohto projektu vzišla z mojej potreby, mať v danom čase dva počítače môj laboratórny stôl. Väčšinou je to môj D