Sadržaj:

Prekidač za pljeskanje: 7 koraka (sa slikama)
Prekidač za pljeskanje: 7 koraka (sa slikama)

Video: Prekidač za pljeskanje: 7 koraka (sa slikama)

Video: Prekidač za pljeskanje: 7 koraka (sa slikama)
Video: MODUL - fast & easy mounting 2024, Novembar
Anonim
Image
Image

Rođak me jednom pitao mogu li stvoriti prekidač koji reagira na pljeskanje po rukama. Zato sam naručio neke stvari za kreiranje projekta i odlučio da napravim instrukcije kako bi svi mogli imati takav sjajan prekidač.

Mikrokontroler je mozak ovog projekta. Senzor zvuka je spojen na mikrokontroler, senzor šalje analogne podatke kada se detektira zvuk. Mikrokontroler je programiran za otkrivanje velikih razlika u zvuku. Kada se detektira dovoljno velika razlika, što znači pljesak, mikrokontroler šalje signal releju. Relej se uključuje i svjetlo se pali. Kada pljesnete drugi put, svjetlo će se ponovo ugasiti.

Supplies

Fizičke stvari:

  • 1x ATmega328P Xplained Mini sa kablom za programiranje
  • 1x relejni modul 5V 1-kanalni (KY-019 ili slično)
  • 1x modul senzora zvuka (KY-038 ili sličan)
  • 1x Oglasna ploča
  • 6x kratkospojna žica muško-muški
  • 1x utičnica za svjetlo sa kabelom (ili bilo kojim drugim uređajem koji želite uključiti)
  • 1x sijalica
  • 1x otpornik* (koristim 220 ohma)
  • 1x LED*

Softver (preuzimanje):

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

* Za potrebe testiranja

Korak 1: Veze

Kreiranje programa
Kreiranje programa

Spojite sve žice kao što je prikazano na slici.

Korak 2: Kreiranje programa

Kreiranje programa
Kreiranje programa
Kreiranje programa
Kreiranje programa

Volim kodirati na C pa je ovaj projekt napisan na C.

Ako još niste preuzeli i instalirali potreban softver, preuzmite ga i instalirajte sada.

Sada slijedite ove sljedeće korake:

  1. Otvorite AtmelStudio.
  2. Kliknite na "File" -> "New" -> "Project".
  3. Kliknite na "GCC C izvršni projekt". Dajte svom projektu naziv i lokaciju za pohranu. Kliknite "U redu".
  4. Potražite ATmega328P. Kliknite "ATmega328P" -> "U redu".
  5. Kliknite u Exploreru rješenja na "main.c" da biste otvorili glavni program.

Korak 3: Dodavanje koda

Izbrišite kôd koji je već prisutan u main.c

Kopirajte i zalijepite sljedeći kod u main.c

#define F_CPU 16000000

#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); dvostruki val1, val2; int main (void) {// Inicijalizacija USART USART_init (9600); USART_putstr ("#USART init / n"); // Pokrećemo ADC InitADC (); USART_putstr ("#ADC init / n"); // PC1 pin PORTC izlaza, ostatak ulaza. DDRC = 0b00000010; // početne vrijednosti postaviti na PORTC nisko. PORTC = 0b00000000; while (1) {// očitavanje vrijednosti potenciometra // očitavanje vrijednosti i spremanje u val1 val1 = ReadADC (0); _delay_ms (1); // očitavanje sljedeće vrijednosti spremi u val2 val2 = ReadADC (0); char str [10]; // ReadADC () daje vrijednost natrag u cijelim brojevima. Ako želimo otkloniti pogreške ili vidjeti vrijednost na kit, // vrijednost treba pretvoriti u znakove kako bi je USART mogao ispisati. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // ako 2 vrijednosti imaju određenu razliku. Otkriven je zvuk i prebacuje port. // MINIMALVALUE se može promijeniti, povećanje će ga učiniti manje osjetljivim. Smanjenje će ga učiniti osjetljivijim ako (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Odaberi Vref = AVcc ADMUX | = (1 << REFS0); // postavimo predbrojač na 128 i omogućimo ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// odabir ADC kanala sa zaštitnom maskom ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // pojedinačni način konverzije ADCSRA | = (1 << ADSC); // čekati dok ADC konverzija ne završi while (ADCSRA & (1 << ADSC)); povratni ADC; }

Korak 4: Dodavanje USART -a

Dodavanje USART -a
Dodavanje USART -a

USART je serijski komunikacijski protokol koji se može koristiti na mikrokontroleru. Koristim ga na mikrokontroleru za pregled analognih podataka sa senzora.

USART je već ispravno programiran, sadrži zaglavlje (.h) i izvornu (.c) datoteku. Preuzmite 2 datoteke i dodajte ih u program u AtmelStudio.

Desnom tipkom miša kliknite naziv projekta u Exploreru rješenja. Kliknite "Dodaj" -> "Postojeća stavka …" i odaberite 2 preuzete datoteke.

Korak 5: Pokretanje koda

Pokretanje koda
Pokretanje koda
Pokretanje koda
Pokretanje koda

Povežite mikrokontroler sa računarom. Potražite na svom računaru "upravitelj uređaja" i otvorite ga. Potražite "Ports (COM & LPT)" i zapamtite COM-port na kojem je mikrokontroler.

Otvorite PuTTY i kliknite na "Serijski" upišite COM-port koji ste pronašli na mikrokontroleru i kliknite "Otvori". Pojavljuje se terminal, ostavite ga za sada.

Vratite se na AtmelStudio da odaberete pravi alat za programiranje mikrokontrolera.

  1. Kliknite na alat za čekić.
  2. Odaberite program za otklanjanje grešaka "mEDBG*ATML".
  3. Odaberite sučelje "debugWIRE".
  4. Pritisnite "pokreni bez otklanjanja grešaka".

Program će graditi i pisati.

Kada se program ispravno pokrene, vidjeli biste cjelobrojne vrijednosti u puTTY. Pomoću odvijača mogu promijeniti vrijednost vidljivu u puTTY okretanjem vijka na senzoru. Moj senzor daje vrijednosti od 0 do 1000 pri okretanju vijka do kraja. Okrećem vijak na 100 (10%) ukupne vrijednosti. Otkrio sam da mi ovo radi.

Korak 6: Promijenite osjetljivost

Da biste prilagodili osjetljivost kada se svjetlo uključi, možete koristiti 2 opcije, ali odaberite jednu, a ne obje:

  1. Zamenite vijak senzora;
  2. Promijenite vrijednost koda.

Koristim opciju 2. Povećanjem MINIMALVALUE učinit ćete je manje osjetljivom, a smanjenjem osjetljivijom.

#define MINIMALVALUE 5

Korak 7: Promijenite sve što želite

Promijenite sve što volite!
Promijenite sve što volite!
Promijenite sve što želite!
Promijenite sve što želite!

UPOZORENJE: Pazite pri uključivanju viših napona

Kada ste zadovoljni osjetljivošću senzora, možete promijeniti krug. Promijenite krug kao na gornjoj slici. Sada možete promijeniti sve što želite!

Preporučuje se: