Sadržaj:
- Pribor
- Korak 1: Veze
- Korak 2: Izrada 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 promjena: 2024-01-30 09:32
Rođak me jednom pitao mogu li stvoriti prekidač koji reagira na pljeskanje po rukama. Zato sam naručio neke stvari za stvaranje projekta i odlučio napraviti instrukcije kako bi svi mogli imati takav sjajan prekidač.
Mikrokontroler je mozak ovog projekta. Zvučni senzor spojen je na mikrokontroler, senzor šalje analogne podatke kada se detektira zvuk. Mikrokontroler je programiran za otkrivanje velikih razlika u zvuku. Kad se detektira dovoljno velika razlika, što znači pljesak, mikrokontroler šalje signal releju. Relej se uključuje i svjetlo se pali. Kad pljesnete drugi put, svjetlo će se ponovno ugasiti.
Pribor
Fizičke stvari:
- 1x ATmega328P Xplained Mini s kabelom 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 spojna žica muško-muški
- 1x utičnica za svjetlo s kabelom (ili bilo kojim drugim uređajem koji želite uključiti)
- 1x žarulja
- 1x otpornik* (koristim 220 ohma)
- 1x LED*
Softver (preuzimanje):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Git (www.putty.org)*
* Za potrebe testiranja
Korak 1: Veze
Spojite sve žice kao što je prikazano na slici.
Korak 2: Izrada 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.
- Pritisnite "Datoteka" -> "Novo" -> "Projekt".
- Kliknite na "GCC C izvršni projekt". Dajte svom projektu naziv i mjesto za pohranu. Pritisnite "U redu".
- Potražite ATmega328P. Pritisnite "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) {// Pokretanje USART USART_init (9600); USART_putstr ("#USART init / n"); // Inicijalizacija ADC -a InitADC (); USART_putstr ("#ADC inicijala / n"); // PC1 pin PORTC izlaza, ostatak ulaz. 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); _kašnjenje_ms (1); // očitavanje sljedeće vrijednosti en pohranjivanje 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 je potrebno 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. Otkriva se 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 () {// Odaberite 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 pretvorbe 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. Pritisnite "Dodaj" -> "Postojeća stavka …" i odaberite 2 preuzete datoteke.
Korak 5: Pokretanje koda
Spojite mikrokontroler na računalo. Potražite na svom računalu "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 kako biste odabrali pravi alat za programiranje mikrokontrolera.
- Kliknite na alat za čekić.
- Odaberite program za otklanjanje pogrešaka "mEDBG*ATML".
- Odaberite sučelje "debugWIRE".
- Pritisnite "pokreni bez otklanjanja pogrešaka".
Program će se graditi i pisati.
Kad se program ispravno pokrene, u puTTY ćete vidjeti cjelobrojne vrijednosti. Pomoću odvijača mogu promijeniti vrijednost viđenu 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 mogućnosti, ali odaberite jednu, a ne obje:
- Promijenite vijak osjetnika;
- 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
Kad ste zadovoljni osjetljivošću senzora, možete promijeniti krug. Promijenite krug kao na gornjoj slici. Sada možete promijeniti sve što želite!
Preporučeni:
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 vremenske IC, pa ga sagradimo … Njegov rad je jednostavan dok 555 radi kao japanka u svojoj trgovini
Bluetooth prekidač za svjetlo na daljinsko upravljanje - 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
DODIRNI PREKIDAČ - Kako napraviti prekidač dodirom pomoću tranzistora i matične ploče .: 4 koraka
DODIRNI PREKIDAČ | Kako napraviti prekidač dodirom pomoću tranzistora i matične ploče.: Prekidač dodira vrlo je jednostavan projekt koji se temelji na primjeni tranzistora. U ovom projektu koristi se tranzistor BC547 koji djeluje kao prekidač na dodir. OBAVEZNO POGLEDAJTE VIDEOZAPIS koji će vam dati potpune pojedinosti o projektu
Automatski prekidač za tipkovnicu i miša - USB Upstream prekidač: 5 koraka
Automatski prekidač za tipkovnicu i miša - USB Upstream Switch: U ovom projektu ćemo sastaviti automatski prekidač za tipkovnicu i miša koji omogućuje jednostavno dijeljenje između dva računala. Ideja za ovaj projekt došla je iz moje potrebe, u svakom trenutku, imati dva računala u moj laboratorijski stol. U većini slučajeva to je moj D
Bluetooth prekidač za pljeskanje .: 3 koraka (sa slikama)
Bluetooth prekidač za pljeskanje. Ovo je jeftin način za ponovnu uporabu starih bluetooth spakera. Ovo je DIY uređaj koji može uključiti ili isključiti svjetla ili bilo koji drugi gradski napon uklapanjem softvera instaliranog na mobilnom uređaju. Potrebne stvari:. Arduino ploča 5V relejni stari bluetooth