Tartalomjegyzék:

Clap-on kapcsoló: 7 lépés (képekkel)
Clap-on kapcsoló: 7 lépés (képekkel)

Videó: Clap-on kapcsoló: 7 lépés (képekkel)

Videó: Clap-on kapcsoló: 7 lépés (képekkel)
Videó: Ремонт духового шкафа Частая проблема сбиваются программы Bauknecht 2024, Július
Anonim
Image
Image

Egy rokonom egyszer megkérdezte, hogy tudok -e létrehozni egy kapcsolót, amely reagál a kezed tapsolására. Tehát megrendeltem néhány dolgot egy projekt létrehozásához, és úgy döntöttem, hogy készítek egy oktathatót, hogy mindenkinek legyen egy ilyen fantasztikus váltója.

A mikrovezérlő ennek a projektnek az agya. Egy hangérzékelő csatlakozik a mikrokontrollerhez, az érzékelő analóg adatokat küld, amikor hangot észlel. A mikrokontroller nagy hangkülönbségek észlelésére van programozva. Ha elég nagy különbséget észlel, ami tapsolást jelent, a mikrokontroller jelet küld a relének. A relé bekapcsol és a lámpa bekapcsol. Második tapsoláskor a fény ismét kialszik.

Kellékek

Fizikai dolgok:

  • 1x ATmega328P Xplained Mini programozókábellel
  • 1x 5V relé modul 1 csatornás (KY-019 vagy hasonló)
  • 1x hangérzékelő modul (KY-038 vagy hasonló)
  • 1x kenyeretábla
  • 6x férfi-férfi áthidaló vezeték
  • 1x fénycsatlakozó kábellel (vagy bármely más, bekapcsolni kívánt eszközzel)
  • 1x villanykörte
  • 1x ellenállás* (220 Ohm -ot használok)
  • 1x LED*

Szoftver (letöltés):

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

* Tesztelés céljából

1. lépés: Kapcsolatok

A Program létrehozása
A Program létrehozása

Csatlakoztassa az összes vezetéket a képen látható módon.

2. lépés: A program létrehozása

A Program létrehozása
A Program létrehozása
A Program létrehozása
A Program létrehozása

Szeretek C -ben kódolni, így ez a projekt C -ben van írva.

Ha még nem töltötte le és nem telepítette a szükséges szoftvert, töltse le és telepítse most.

Most kövesse az alábbi lépéseket:

  1. Nyissa meg az AtmelStudio alkalmazást.
  2. Kattintson a "Fájl" -> "Új" -> "Projekt" elemre.
  3. Kattintson a "GCC C végrehajtható projekt" elemre. Adjon nevet és helyet a projektnek a tároláshoz. Kattintson az "OK" gombra.
  4. Keresse meg az ATmega328P -t. Kattintson az "ATmega328P" -> "OK" gombra.
  5. A főprogram megnyitásához kattintson a Solution Explorer -re a "main.c" mappában.

3. lépés: Kód hozzáadása

Törölje a main.c -ben már meglévő kódot. C

Másolja ki és illessze be a következő kódot a main.c -be

#define F_CPU 16000000

#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); kettős val1, val2; int main (void) {// Inicializálja a USART USART_init (9600); USART_putstr ("#USART init / n"); // Az ADC inicializálása InitADC (); USART_putstr ("#ADC init / n"); // PC1 PORTC kimenet, a többi bemenet. DDRC = 0b00000010; // állítsa a kezdeti értékeket alacsony PORTC értékre. PORTC = 0b00000000; while (1) {// potenciométer értékének olvasása // érték olvasása és tárolása val1 -ben val1 = ReadADC (0); _ késleltetés_ms (1); // olvassa el a következő értéket en tárolja a val2 -ben val2 = ReadADC (0); char str [10]; // a ReadADC () visszaadja az értéket egész számokban. Ha hibakeresést szeretnénk végezni, vagy látni szeretnénk a gitt értékét, // az értéket karakterré kell alakítani, hogy az USART ki tudja nyomtatni. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // ha a 2 értéknek van bizonyos különbsége. Hangot észlel, és portot vált. // A MINIMÁLIS ÉRTÉK megváltoztatható, növelésével kevésbé lesz érzékeny. A csökkentés érzékenyebbé teszi, ha (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Vref = AVcc ADMUX | = (1 << REFS0) kiválasztása; // állítsa az előhívót 128 -ra és engedélyezze az ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// ADC -csatorna kiválasztása biztonsági maszkkal ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // egyetlen konverziós mód ADCSRA | = (1 << ADSC); // várjon, amíg az ADC konverzió befejeződik, miközben (ADCSRA & (1 << ADSC)); vissza ADC; }

4. lépés: USART hozzáadása

USART hozzáadása
USART hozzáadása

Az USART egy soros kommunikációs protokoll, amely használható a mikrovezérlőn. A mikrokontrolleren használom az érzékelő analóg adatainak megtekintéséhez.

A USART már helyesen van programozva, fejléc (.h) és forrás (.c) fájlt tartalmaz. Töltse le a 2 fájlt, és adja hozzá a programjához az AtmelStúdióban.

Kattintson a jobb gombbal a projekt nevére a Solution Explorerben. Kattintson a "Hozzáadás" -> "Meglévő elem …" elemre, és válassza ki a 2 letöltött fájlt.

5. lépés: A kód futtatása

A kód futtatása
A kód futtatása
A kód futtatása
A kód futtatása

Csatlakoztassa a mikrokontrollert a számítógéphez. Keresse meg számítógépén az "Eszközkezelő" elemet, és nyissa meg. Keresse meg a "Portok (COM és LPT)" lehetőséget, és ne feledje, hogy a mikrovezérlő COM-portja be van kapcsolva.

Nyissa meg a PuTTY-t, és kattintson a "Soros" -ra, írja be a mikrovezérlő COM-portját, és kattintson a "Megnyitás" gombra. Megjelenik egy terminál, hagyja most.

Menjen vissza az AtmelStúdióba, és válassza ki a megfelelő eszközt a mikrokontroller programozásához.

  1. Kattintson a kalapács eszközre.
  2. Válassza ki az "mEDBG*ATML" hibakeresőt/programozót.
  3. Válassza a "debugWIRE" felületet.
  4. Kattintson az "indítás hibakeresés nélkül" gombra.

A program építeni és írni fog.

Ha a program megfelelően fut, a puTTY -ban egész értékeket láthat. Egy csavarhúzó segítségével megváltoztathatom a puTTY -ban látható értéket az érzékelő csavarjának elforgatásával. Az érzékelőm 0 és 1000 között adja meg az értékeket, amikor teljesen elforgatja a csavart. Elforgatom a csavart a teljes érték 100%-ára (10%). Rájöttem, hogy ez nekem működik.

6. lépés: Módosítsa az érzékenységet

A fény bekapcsolásakor az érzékenység beállításához két opciót használhat, de ne egyet, hanem mindkettőt:

  1. Cserélje ki az érzékelő csavarját;
  2. Módosítsa a kód értékét.

A 2. opciót használom. A MINIMALVALUE növelésével kevésbé lesz érzékeny, a csökkenéssel pedig érzékenyebb.

#define MINIMALVALUE 5

7. lépés: Válts bármit, ami tetszik

Válts bármit, ami tetszik!
Válts bármit, ami tetszik!
Válts bármit, ami tetszik!
Válts bármit, ami tetszik!

FIGYELEM: Vigyázzon, ha nagyobb feszültséget kapcsol

Ha elégedett az érzékelő érzékenységével, megváltoztathatja az áramkört. Változtassa meg az áramkört a fenti képhez hasonlóan. Most bármit megváltoztathatsz, ami tetszik!

Ajánlott: