Obsah:

Přepínač klapky: 7 kroků (s obrázky)
Přepínač klapky: 7 kroků (s obrázky)

Video: Přepínač klapky: 7 kroků (s obrázky)

Video: Přepínač klapky: 7 kroků (s obrázky)
Video: Adel ukazala prso 2024, Červenec
Anonim
Image
Image

Příbuzný se mě jednou zeptal, jestli bych mohl vytvořit přepínač, který reaguje na tleskání rukou. Takže jsem si objednal nějaké věci k vytvoření projektu a rozhodl jsem se udělat instruktáž, aby každý mohl mít takový úžasný přepínač.

Mikrokontrolér je mozkem tohoto projektu. K mikrokontroléru je připojen zvukový senzor, který při detekci zvuku odesílá analogová data. Mikrokontrolér je naprogramován tak, aby detekoval velké rozdíly ve zvuku. Když je detekován dostatečně vysoký rozdíl, což znamená tleskání, mikrokontrolér vyšle signál do relé. Relé sepne a rozsvítí se světlo. Při druhém tleskání světlo opět zhasne.

Zásoby

Fyzické věci:

  • 1x ATmega328P Xplained Mini s kabelem pro programování
  • 1x 5v reléový modul 1kanálový (KY-019 nebo podobný)
  • 1x modul zvukového senzoru (KY-038 nebo podobný)
  • 1x prkénko
  • 6x propojovací kabel male-male
  • 1x světelná zásuvka s kabelem (nebo jiným zařízením, které chcete zapnout)
  • 1x žárovka
  • 1x odpor* (používám 220 ohmů)
  • 1x LED*

Software (stáhnout):

  • AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
  • Tmel (www.putty.org)*

* Pro účely testování

Krok 1: Připojení

Vytvoření programu
Vytvoření programu

Připojte všechny vodiče podle obrázku.

Krok 2: Vytvoření programu

Vytvoření programu
Vytvoření programu
Vytvoření programu
Vytvoření programu

Rád kóduji v jazyce C, takže tento projekt je napsán v jazyce C.

Pokud jste si ještě nestáhli a nenainstalovali potřebný software, stáhněte si jej a nainstalujte hned.

Nyní postupujte podle následujících kroků:

  1. Otevřete AtmelStudio.
  2. Klikněte na „Soubor“-> „Nový“-> „Projekt“.
  3. Klikněte na „Spustitelný projekt GCC C“. Pojmenujte svůj projekt a uložte jej. Klikněte na „Ok“.
  4. Vyhledejte ATmega328P. Klikněte na „ATmega328P“-> „Ok“.
  5. Klepnutím v Průzkumníku řešení na „main.c“otevřete hlavní program.

Krok 3: Přidání kódu

Odstraňte kód, který je již v main.c

Zkopírujte a vložte následující kód do 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) {// Inicializace USART USART_init (9600); USART_putstr ("#USART init / n"); // Inicializace ADC InitADC (); USART_putstr ("#ADC init / n"); // PC1 pin výstupu PORTC, zbytek vstup. DDRC = 0b00000010; // nastavte počáteční hodnoty na PORTC low. PORTC = 0b00000000; while (1) {// čtení hodnoty potenciometru // načtení hodnoty a uložení do val1 val1 = ReadADC (0); _delay_ms (1); // číst další hodnotu en uložit do val2 val2 = ReadADC (0); char str [10]; // ReadADC () vrací hodnotu zpět v celých číslech. Pokud chceme ladit nebo vidět hodnotu na tmelu, // hodnotu je třeba převést na znaky, aby ji USART mohl vytisknout. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // pokud mají 2 hodnoty určitý rozdíl. Je detekován zvuk a přepne port. // MINIMÁLNÍ HODNOTU lze změnit, její zvýšení bude méně citlivé. Snížením bude citlivější, pokud (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // SVĚTLO NA UC _delay_ms (200); }}} neplatné InitADC () {// Vyberte Vref = AVcc ADMUX | = (1 << REFS0); // nastavit prescaller na 128 a povolit ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// vyberte kanál ADC s bezpečnostní maskou ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // režim jediné konverze ADCSRA | = (1 << ADSC); // počkejte, až bude převod ADC dokončen while (ADCSRA & (1 << ADSC)); vrátit ADC; }

Krok 4: Přidání USART

Přidání USART
Přidání USART

USART je sériový komunikační protokol, který lze použít na mikrokontroléru. Používám to na mikrokontroléru, abych viděl analogová data ze senzoru.

USART je již správně naprogramován a obsahuje soubor záhlaví (.h) a zdroj (.c). Stáhněte si 2 soubory a přidejte je do svého programu v AtmelStudio.

V Průzkumníkovi řešení klikněte pravým tlačítkem na název projektu. Klikněte na „Přidat“-> „Existující položka…“a vyberte 2 stažené soubory.

Krok 5: Spuštění kódu

Spuštění kódu
Spuštění kódu
Spuštění kódu
Spuštění kódu

Připojte mikrokontrolér k počítači. Vyhledejte na počítači „správce zařízení“a otevřete jej. Vyhledejte „Porty (COM a LPT)“a pamatujte na port COM, na kterém je mikrokontrolér zapnutý.

Otevřete PuTTY a klikněte na „Sériový“, zadejte COM port, který jste našli v mikrokontroléru, a klikněte na „Otevřít“. Vyskočí terminál, zatím ho nechte.

Vraťte se zpět na AtmelStudio a vyberte správný nástroj pro programování mikrokontroléru.

  1. Klikněte na nástroj kladivo.
  2. Vyberte ladicí program/programátor „mEDBG*ATML“.
  3. Vyberte rozhraní „debugWIRE“.
  4. Klikněte na „spustit bez ladění“.

Program bude stavět a psát.

Když program běží správně, uvidíte v puTTY celočíselné hodnoty. Pomocí šroubováku mohu změnit hodnotu viditelnou v puTTY otáčením šroubu na senzoru. Můj senzor udává hodnoty od 0 do 1000 při úplném otáčení šroubu. Otáčím šroubem na 100 (10%) z celkové hodnoty. Zjistil jsem, že to na mě funguje.

Krok 6: Změňte citlivost

K nastavení citlivosti při zapnutí světla můžete použít 2 možnosti, ale vyberte jednu, ne obě:

  1. Vyměňte šroub snímače;
  2. Změňte hodnotu kódu.

Používám možnost 2. Zvýšení MINIMALVALUE způsobí, že bude méně citlivá, snížením bude citlivější.

#define MINIMALVALUE 5

Krok 7: Přepněte vše, co se vám líbí

Přepněte vše, co se vám líbí!
Přepněte vše, co se vám líbí!
Přepněte vše, co se vám líbí!
Přepněte vše, co se vám líbí!

VAROVÁNÍ: Dávejte pozor při přepínání vyšších napětí

Když jste s citlivostí senzoru spokojeni, můžete změnit obvod. Změňte obvod jako na obrázku výše. Nyní můžete přepínat, co se vám líbí!

Doporučuje: