Cuprins:
- Provizii
- Pasul 1: Conexiuni
- Pasul 2: Crearea programului
- Pasul 3: Adăugarea codului
- Pasul 4: Adăugarea USART
- Pasul 5: Rularea codului
- Pasul 6: Schimbați sensibilitatea
- Pasul 7: Schimbați orice doriți
Video: Comutator clap-on: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
O rudă m-a întrebat odată dacă aș putea crea un comutator care să reacționeze la palme. Așa că am comandat câteva lucruri pentru a crea un proiect și am decis să fac un instructable, astfel încât toată lumea să aibă un comutator minunat de genul acesta.
Microcontrolerul este creierul acestui proiect. Un senzor de sunet este conectat la microcontroler, senzorul trimite date analogice atunci când sunetul este detectat. Microcontrolerul este programat pentru a detecta diferențe mari de sunet. Atunci când este detectată o diferență suficient de mare, adică o palpită, microcontrolerul trimite un semnal către releu. Releul se comută și lumina se aprinde. Când bateți din nou din palme, lumina se va stinge din nou.
Provizii
Lucruri fizice:
- 1x ATmega328P Xplained Mini cu cablu pentru programare
- 1x releu 5v modul 1 canal (KY-019 sau similar)
- 1x modul senzor de sunet (KY-038 sau similar)
- 1x placă de pâine
- 6x sârmă jumper mascul-mascul
- 1x priză de lumină cu cablu (sau orice alt dispozitiv pe care doriți să îl porniți)
- 1x bec
- 1x rezistor * (folosesc 220 Ohm)
- 1x LED *
Software (descărcare):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Putty (www.putty.org) *
* În scopuri de testare
Pasul 1: Conexiuni
Conectați toate firele așa cum se arată în imagine.
Pasul 2: Crearea programului
Îmi place să codez în C, așa că acest proiect este scris în C.
Dacă nu ați descărcat și instalat încă software-ul necesar, descărcați-l și instalați-l acum.
Acum urmați acești pași următori:
- Deschideți AtmelStudio.
- Faceți clic pe „Fișier” -> „Nou” -> „Proiect”.
- Faceți clic pe „Proiect executabil GCC C”. Dă-i proiectului un nume și o locație de stocat. Faceți clic pe „Ok”.
- Căutați ATmega328P. Faceți clic pe „ATmega328P” -> „Ok”.
- Faceți clic în Solution Explorer pe „main.c” pentru a deschide programul principal.
Pasul 3: Adăugarea codului
Ștergeți codul deja prezent în main.c
Copiați și lipiți următorul cod în main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); dublu val1, val2; int main (void) {// Inițializați USART USART_init (9600); USART_putstr ("# USART init / n"); // Inițializați ADC InitADC (); USART_putstr ("# ADC init / n"); // PC1 pin al ieșirii PORTC, restul de intrare. DDRC = 0b00000010; // setați valorile inițiale la PORTC scăzut. PORTC = 0b00000000; while (1) {// citirea valorii potențiometrului // citirea valorii și stocarea în val1 val1 = ReadADC (0); _delay_ms (1); // citiți următoarea valoare en store în val2 val2 = ReadADC (0); char str [10]; // ReadADC () dă valoarea înapoi în numere întregi. Dacă dorim să depanăm sau să vedem valoarea pe chit, // valoarea trebuie convertită în caractere, astfel încât USART să o poată imprima. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // dacă cele 2 valori au o anumită diferență. Un sunet este detectat și comută un port. // MINIMALVALUE poate fi modificat, creșterea îl va face mai puțin sensibil. Scăderea îl va face mai sensibil dacă (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^ = 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Selectați Vref = AVcc ADMUX | = (1 << REFS0); // setați prescallerul la 128 și activați ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// selectați canalul ADC cu mască de siguranță ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // modul de conversie unic ADCSRA | = (1 << ADSC); // așteptați până când conversia ADC este completă în timp ce (ADCSRA & (1 << ADSC)); returnează ADC; }
Pasul 4: Adăugarea USART
USART este un protocol de comunicație serial care poate fi utilizat pe microcontroler. Îl folosesc pe microcontroler pentru a vedea date analogice de la senzor.
USART este deja programat corect, conținând un fișier antet (.h) și sursă (.c). Descărcați cele 2 fișiere și adăugați-le la programul dvs. din AtmelStudio.
Faceți clic dreapta pe numele proiectului în Solution Explorer. Faceți clic pe „Adăugați” -> „Element existent…” și selectați cele 2 fișiere descărcate.
Pasul 5: Rularea codului
Conectați microcontrolerul la computer. Căutați „computer manager” pe computer și deschideți-l. Căutați „Porturi (COM & LPT)” și amintiți-vă de portul COM pe care este activat microcontrolerul.
Deschideți PuTTY și faceți clic pe „Serial” tastați portul COM pe care l-ați găsit la microcontroler și faceți clic pe „Deschidere”. Apare un terminal, lăsați-l pentru moment.
Reveniți la AtmelStudio pentru a selecta instrumentul potrivit pentru programarea microcontrolerului.
- Faceți clic pe instrumentul ciocan.
- Selectați programul de depanare „mEDBG * ATML”.
- Selectați interfața „debugWIRE”.
- Faceți clic pe „începeți fără depanare”.
Programul va construi și scrie.
Când programul rulează corect, veți vedea valori întregi în puTTY. Folosind o șurubelniță, pot schimba valoarea văzută în MÂNZIT prin rotirea șurubului senzorului. Senzorul meu oferă valorile de la 0 la 1000 atunci când întoarceți șurubul până la capăt. Întorc șurubul la 100 (10%) din valoarea totală. Am aflat că asta funcționează pentru mine.
Pasul 6: Schimbați sensibilitatea
Pentru a regla sensibilitatea la aprinderea luminii, puteți folosi 2 opțiuni, dar alegeți una dintre ele:
- Schimbați șurubul senzorului;
- Schimbați valoarea codului.
Folosesc opțiunea 2. Creșterea MINIMALVALUE o va face mai puțin sensibilă, scăderea o face mai sensibilă.
#define MINIMALVALUE 5
Pasul 7: Schimbați orice doriți
AVERTISMENT: Atenție când comutați tensiuni mai mari
Când sunteți mulțumit de sensibilitatea senzorului, puteți schimba circuitul. Schimbați circuitul ca imaginea de mai sus. Acum puteți schimba orice doriți!
Recomandat:
Cum să faci Clap? Comutator PORNIT / OPRIT -- Fără IC: 6 pași
Cum să faci Clap? Comutator PORNIT / OPRIT || Fără niciun IC: Aceasta este o palpire a comutatorului Fără niciun IC. Poți aplauda? Prima dată, apoi becul? PORNIT ȘI Bătut pentru a doua oară becul? OPRIT. Acest circuit bazat pe flip-flop SR. Componente 1. Tranzistori BC547 NPN (4buc) 2. Rezistoare 10k (5buc) 3. Rezistență 1K
Comutator Tuchless pentru electrocasnice -- Controlează-ți aparatele electrocasnice fără niciun comutator: 4 pași
Comutator Tuchless pentru electrocasnice || Controlează-ți aparatele de uz casnic fără niciun comutator: acesta este un comutator fără control pentru aparatele de uz casnic. Puteți utiliza acest lucru în orice loc public, astfel încât să vă ajute să luptați împotriva oricărui virus. Circuitul bazat pe senzorul întunecat Circuit realizat de Op-Amp și LDR. A doua parte importantă a acestui circuit Flip-Flop SR cu Sequencell
COMUTATOR TOUCH - Cum se realizează un comutator tactil utilizând un tranzistor și o placă de panouri .: 4 pași
COMUTATOR TOUCH | Cum se realizează un comutator tactil utilizând un tranzistor și o placă de calcul: comutatorul tactil este un proiect foarte simplu bazat pe aplicarea tranzistoarelor. Tranzistorul BC547 este utilizat în acest proiect care acționează ca un comutator tactil. ASIGURAȚI-VĂ VIZIONAREA VIDEOULUI CARE ÎȚI DĂ DETALII COMPLETE DESPRE PROIECT
Comutator automat de tastatură și mouse - Comutator USB în amonte: 5 pași
Comutator automat de tastatură și mouse - Comutator USB Upstream: În acest proiect vom asambla un comutator automat de tastatură și mouse care permite partajarea ușoară între două computere. biroul meu de laborator. De cele mai multe ori este D-ul meu
Comutator slap: Comutator tactil simplu, fără sudură: 7 pași
Slap Switch: Comutator tactil simplu, fără sudură: Slap Switch este un comutator tactil cu rezistență simplă, conceput pentru proiectul meu Explode the Controller pentru a încorpora jocul fizic în jocurile pe computer cu Makey Makey și Scratch. Proiectul avea nevoie de un comutator tactil care să fie: robust, care să fie pălmuit