Sadržaj:
- Supplies
- Korak 1: Veze
- Korak 2: Kreiranje programa
- Korak 3: Dodavanje koda
- Korak 4: Dodavanje USART -a
- Korak 5: Pokretanje koda
- Korak 6: Promijenite osjetljivost
- Korak 7: Promijenite sve što želite
Video: Prekidač za pljeskanje: 7 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
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
Spojite sve žice kao što je prikazano na slici.
Korak 2: 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:
- Otvorite AtmelStudio.
- Kliknite na "File" -> "New" -> "Project".
- Kliknite na "GCC C izvršni projekt". Dajte svom projektu naziv i lokaciju za pohranu. Kliknite "U redu".
- Potražite ATmega328P. Kliknite "ATmega328P" -> "U redu".
- 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
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
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.
- Kliknite na alat za čekić.
- Odaberite program za otklanjanje grešaka "mEDBG*ATML".
- Odaberite sučelje "debugWIRE".
- 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:
- Zamenite vijak senzora;
- 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
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:
TALASNI PREKIDAČ -- DODIRAJTE MANJI PREKIDAČ KORIŠĆENJEM 555: 4 koraka
WAVE SWITCH || DODIRAJTE MANJI PREKIDAČ KORIŠĆENJEM 555: Pozdrav svima Dobro došli Danas gradim jednostavan prekidač bez dodira, aktivira se samo odmahivanjem rukom uz pomoć infracrvenog senzora i 555 tajmera, tako da ga napravimo … Njegov rad je jednostavan dok 555 radi kao japanka, njegova trgovina
Prekidač za pljeskanje s tranzistorom BC547: 14 koraka
Prekidač pljeskanja s tranzistorom BC547: Hii prijatelju, Danas ću napraviti krug prekidača pljeskanja s tranzistorom BC547. Ranije smo napravili prekidač pljeskanja koristeći IC LM555. Počnimo
Bluetooth prekidač za daljinsko upravljanje svjetlom - nadogradnja. Prekidač svjetla i dalje radi, bez dodatnog pisanja .: 9 koraka (sa slikama)
Bluetooth prekidač za daljinsko upravljanje svjetlom - nadogradnja. Prekidač za svjetlo i dalje radi, bez dodatnog pisanja .: Ažuriranje 25. studenog 2017. - Za verziju ovog projekta velike snage koja može kontrolirati kilovate opterećenja pogledajte Nadogradnja BLE kontrole na opterećenja velike snage - Nije potrebno dodatno ožičenje Ažurirajte 15. studenog 2017. - Neke BLE ploče / softverski hrpe proizvoda
Automatski prekidač za tastaturu i miša - USB Upstream prekidač: 5 koraka
Automatski prekidač za tastaturu i miša - USB Upstream Switch: U ovom projektu ćemo sastaviti automatski prekidač za tastaturu i miša koji omogućava jednostavno dijeljenje između dva računara. Ideja za ovaj projekt je potekla iz moje potrebe, u svakom trenutku, imati dva računara u moj laboratorijski sto. U većini slučajeva to je moj D
Preklopni prekidač: Jednostavan, dodirni prekidač bez lemljenja: 7 koraka
Slap Switch: Jednostavan prekidač na dodir bez lemljenja: Slap Switch je jednostavan otporni prekidač na dodir, dizajniran za moj projekat Explode the Controller za uključivanje fizičke igre u računarske igre sa Makey Makey i Scratch. Projektu je bio potreban prekidač na dodir koji je bio: čvrst, da bi se udario