Taula de continguts:
- Subministraments
- Pas 1: connexions
- Pas 2: creació del programa
- Pas 3: afegir codi
- Pas 4: afegir USART
- Pas 5: execució del codi
- Pas 6: canvieu la sensibilitat
- Pas 7: canvieu qualsevol cosa que vulgueu
Vídeo: Interruptor de claus: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Un familiar em va preguntar una vegada si podia crear un interruptor que reaccionés a picar de mans. Així que he demanat algunes coses per crear un projecte i he decidit fer-ne una instrucció perquè tothom pugui tenir un canvi fantàstic com aquest.
El microcontrolador és el cervell d’aquest projecte. Es connecta un sensor de so al microcontrolador, el sensor envia dades analògiques quan es detecta so. El microcontrolador està programat per detectar grans diferències de so. Quan es detecta una diferència prou alta, és a dir, un clap, el microcontrolador envia un senyal al relé. El relé s’encén i la llum s’encén. Quan aplaudeu una segona vegada, la llum es tornarà a apagar.
Subministraments
Coses físiques:
- 1x ATmega328P Xplained Mini amb cable per a la programació
- Mòdul de relé 1x 5v 1 canal (KY-019 o similar)
- 1 mòdul de sensor de so (KY-038 o similar)
- 1x tauler de pa
- 6x cable de pont masculí-masculí
- 1 presa de llum amb cable (o qualsevol altre dispositiu que vulgueu encendre)
- 1x bombeta
- 1x resistència * (faig servir 220 Ohm)
- 1x LED *
Programari (descàrrega):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Massilla (www.putty.org) *
* A efectes de proves
Pas 1: connexions
Connecteu tots els cables tal com es mostra a la imatge.
Pas 2: creació del programa
M'agrada codificar en C, de manera que aquest projecte està escrit en C.
Si encara no heu descarregat i instal·lat el programari necessari, descarregueu-lo i instal·leu-lo ara.
Ara seguiu aquests passos següents:
- Obriu AtmelStudio.
- Feu clic a "Fitxer" -> "Nou" -> "Projecte".
- Feu clic a "Projecte executable de GCC C". Doneu al vostre projecte un nom i una ubicació per emmagatzemar. Feu clic a "D'acord".
- Cerqueu l'ATmega328P. Feu clic a "ATmega328P" -> "D'acord".
- Feu clic a l'Explorador de solucions a "main.c" per obrir el programa principal.
Pas 3: afegir codi
Elimineu el codi que ja hi ha a main.c
Copieu i enganxeu el següent codi a main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCcanal); doble val1, val2; int main (void) {// Inicialitzar el USART USART_init (9600); USART_putstr ("# USART init / n"); // Inicialitzar l'ADC InitADC (); USART_putstr ("# ADC init / n"); // Pin PC1 de la sortida PORTC, la resta d’entrada. DDRC = 0b00000010; // estableix els valors inicials a PORTC baix. PORTC = 0b00000000; while (1) {// valor del potenciòmetre de lectura // valor de lectura i emmagatzematge a val1 val1 = ReadADC (0); _delay_ms (1); // llegeix el següent valor en store a val2 val2 = ReadADC (0); char str [10]; // ReadADC () torna el valor en enters. Si volem depurar o veure el valor de la massilla, // el valor s’ha de convertir a caràcters perquè USART el pugui imprimir. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // si els 2 valors tenen una certa diferència. Es detecta un so i canvia un port. // MINIMALVALUE es pot canviar, augmentant el farà menys sensible. La disminució farà que sigui més sensible si (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^ = 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Selecciona Vref = AVcc ADMUX | = (1 << REFS0); // estableix el precaller a 128 i activa ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// seleccioneu el canal ADC amb màscara de seguretat ADMUX = (ADMUX & 0xF0) | (ADCchannel i 0x0F); // mode de conversió única ADCSRA | = (1 << ADSC); // espereu fins que es completi la conversió ADC mentre (ADCSRA & (1 << ADSC)); tornar ADC; }
Pas 4: afegir USART
L'USART és un protocol de comunicació en sèrie que es pot utilitzar al microcontrolador. El faig servir al microcontrolador per veure dades analògiques del sensor.
El USART ja està programat correctament, amb un fitxer de capçalera (.h) i font (.c). Descarregueu els 2 fitxers i afegiu-los al programa a AtmelStudio.
Feu clic amb el botó dret al nom del projecte a l'Explorador de solucions. Feu clic a "Afegeix" -> "Element existent …" i seleccioneu els dos fitxers descarregats.
Pas 5: execució del codi
Connecteu el microcontrolador a l'ordinador. Cerqueu "gestor de dispositius" a l'ordinador i obriu-lo. Cerqueu "Ports (COM & LPT)" i recordeu el port COM que està activat el microcontrolador.
Obriu PuTTY i feu clic a "Sèrie", escriviu el port COM que heu trobat del microcontrolador i feu clic a "Obre". Apareix un terminal, deixeu-lo per ara.
Torneu a AtmelStudio per seleccionar l'eina adequada per programar el microcontrolador.
- Feu clic a l'eina de martell.
- Seleccioneu el programador / depurador "mEDBG * ATML".
- Seleccioneu la interfície "debugWIRE".
- Feu clic a "Inicia sense depurar".
El programa construirà i escriurà.
Quan el programa s'executa correctament, veureu valors enters a puTTY. Mitjançant un tornavís, puc canviar el valor que es veu a MASSETA girant el cargol del sensor. El sensor emet els valors de 0 a 1000 en girar el cargol completament. Estic girant el cargol al 100 (10%) del valor total. He descobert que això funciona per a mi.
Pas 6: canvieu la sensibilitat
Per ajustar la sensibilitat quan s’encén la llum, podeu utilitzar dues opcions, però escollir-ne una no les dues:
- Canviar el cargol del sensor;
- Canvieu el valor del codi.
Utilitzo l’opció 2. Augmentar el MINIMALVALUE el farà menys sensible, la disminució el fa més sensible.
#define MINIMALVALUE 5
Pas 7: canvieu qualsevol cosa que vulgueu
ADVERTÈNCIA: vés amb compte quan canvieu tensions més altes
Quan estigueu satisfets amb la sensibilitat del sensor, podeu canviar el circuit. Canvieu el circuit com la imatge anterior. Ara podeu canviar qualsevol cosa que vulgueu.
Recomanat:
Interruptor de claus: 4 passos
Interruptor de claus: esteu cansats d’aixecar-vos només per prémer l’interruptor per apagar / no aparell? O esteu cansats de buscar un interruptor a la foscor. Què és un interruptor Clap? Un circuit de commutació de palmes és un circuit sensible a la base del so, va ser inv
Cercador de claus IoT amb ESP8266-01: 11 passos (amb imatges)
Cercador de claus IoT que utilitza ESP8266-01: Esteu com si oblidés sempre on heu guardat les claus? Mai puc trobar les meves claus a temps! I per aquest costum meu, he arribat tard a la meva universitat, aquella venda d’objectes de Star Wars d’edició limitada (encara preocupant!), Una cita (mai no va escollir
Simple Robo-Dog (format per claus de piano, una pistola de joguina i un ratolí): 20 passos (amb imatges)
Simple Robo-Dog (format per tecles de piano, una pistola de joguina i un ratolí): Oh, Azerbaidjan! Terra de foc, gran hospitalitat, gent amable i dones boniques (… perdó, dona! Per descomptat, només tinc ulls per a tu, la meva dona gözəl balaca ana ördəkburun!). Però, sincerament, aquest és un lloc molt difícil per a un fabricant, sobretot quan
Com dissenyar claus personalitzables i imprimibles en 3D per a lesions del braç: 8 passos (amb imatges)
Com dissenyar claus personalitzables per imprimir en 3D per a lesions del braç: publicades de forma creuada al meu lloc web a piper3dp.com. Tradicionalment, els motlles per a ossos trencats es fabriquen amb guix pesat, sòlid i no transpirable. Això pot crear molèsties i problemes de pell al pacient durant el procés de curació, com picor, erupcions i
Interruptor de claus (40 claus en 5 segons): 4 passos (amb imatges)
Clap Switch (40 Claps en 5 segons): Clap Switch té la capacitat d’encendre / apagar qualsevol component elèctric connectant la sortida del circuit a un commutador de relé. Aquí farem un interruptor de claus amb pocs components amb molt bones explicacions. En comparació amb tots els altres clap switch