Taula de continguts:

Interruptor de claus: 7 passos (amb imatges)
Interruptor de claus: 7 passos (amb imatges)

Vídeo: Interruptor de claus: 7 passos (amb imatges)

Vídeo: Interruptor de claus: 7 passos (amb imatges)
Vídeo: Праздник. Новогодняя комедия 2024, De novembre
Anonim
Image
Image

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

Creació del programa
Creació del programa

Connecteu tots els cables tal com es mostra a la imatge.

Pas 2: creació del programa

Creació del programa
Creació del programa
Creació del programa
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:

  1. Obriu AtmelStudio.
  2. Feu clic a "Fitxer" -> "Nou" -> "Projecte".
  3. Feu clic a "Projecte executable de GCC C". Doneu al vostre projecte un nom i una ubicació per emmagatzemar. Feu clic a "D'acord".
  4. Cerqueu l'ATmega328P. Feu clic a "ATmega328P" -> "D'acord".
  5. 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

S'està afegint USART
S'està afegint 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

Execució del codi
Execució del codi
Execució del codi
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.

  1. Feu clic a l'eina de martell.
  2. Seleccioneu el programador / depurador "mEDBG * ATML".
  3. Seleccioneu la interfície "debugWIRE".
  4. 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:

  1. Canviar el cargol del sensor;
  2. 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

Canvia el que vulguis
Canvia el que vulguis
Canvia el que vulguis
Canvia el que vulguis

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: