Tabla de contenido:

Interruptor de aplauso: 7 pasos (con imágenes)
Interruptor de aplauso: 7 pasos (con imágenes)

Video: Interruptor de aplauso: 7 pasos (con imágenes)

Video: Interruptor de aplauso: 7 pasos (con imágenes)
Video: Como CONECTAR un FOCO y su INTERRUPTOR DIAGRAMA 2024, Noviembre
Anonim
Image
Image

Un pariente me preguntó una vez si podía crear un interruptor que reaccionara al aplaudir. Así que ordené algunas cosas para crear un proyecto y decidí hacer un instructivo para que todos pudieran tener un cambio increíble como ese.

El microcontrolador es el cerebro de este proyecto. Un sensor de sonido está conectado al microcontrolador, el sensor envía datos analógicos cuando se detecta sonido. El microcontrolador está programado para detectar grandes diferencias de sonido. Cuando se detecta una diferencia lo suficientemente alta, es decir, un aplauso, el microcontrolador envía una señal al relé. El relé se enciende y la luz se enciende. Al aplaudir por segunda vez, la luz se apagará nuevamente.

Suministros

Cosas físicas:

  • 1x ATmega328P Xplained Mini con cable para programación
  • 1x módulo relé 5v 1 canal (KY-019 o similar)
  • 1x módulo sensor de sonido (KY-038 o similar)
  • 1x tablero
  • Cable de puente macho-macho 6x
  • 1x toma de luz con cable (o cualquier otro dispositivo que desee encender)
  • 1x bombilla
  • 1x resistencia * (yo uso 220 ohmios)
  • 1x LED *

Descarga de software):

  • AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
  • Masilla (www.putty.org) *

* Con fines de prueba

Paso 1: conexiones

Creando el programa
Creando el programa

Conecte todos los cables como se muestra en la imagen.

Paso 2: creación del programa

Creando el programa
Creando el programa
Creando el programa
Creando el programa

Me gusta codificar en C, por lo que este proyecto está escrito en C.

Si aún no ha descargado e instalado el software necesario, descárguelo e instálelo ahora.

Ahora siga estos siguientes pasos:

  1. Abra AtmelStudio.
  2. Haga clic en "Archivo" -> "Nuevo" -> "Proyecto".
  3. Haga clic en "Proyecto ejecutable GCC C". Dale a tu proyecto un nombre y una ubicación para almacenar. Haga clic en Aceptar".
  4. Busque el ATmega328P. Haga clic en "ATmega328P" -> "Aceptar".
  5. Haga clic en el Explorador de soluciones en "main.c" para abrir el programa principal.

Paso 3: agregar código

Elimina el código ya presente en main.c

Copie y pegue el siguiente código en main.c

#define F_CPU 16000000

#incluye #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); doble val1, val2; int main (void) {// Inicializa el USART USART_init (9600); USART_putstr ("# USART init / n"); // Inicializar el ADC InitADC (); USART_putstr ("# ADC init / n"); // Pin PC1 de salida PORTC, el resto de entrada. DDRC = 0b00000010; // establece los valores iniciales en PORTC low. PORTC = 0b00000000; while (1) {// leer el valor del potenciómetro // leer el valor y almacenarlo en val1 val1 = ReadADC (0); _delay_ms (1); // leer el siguiente valor almacenado en val2 val2 = ReadADC (0); char str [10]; // ReadADC () devuelve el valor en números enteros. Si queremos depurar o ver el valor en putty, // el valor debe convertirse a caracteres para que el USART pueda imprimirlo. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // si los 2 valores tienen cierta diferencia. Se detecta un sonido y cambia un puerto. // MINIMALVALUE se puede cambiar, aumentar lo hará menos sensible. Disminuir lo hará más sensible si (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^ = 0b00000010; // LUZ EN UC _delay_ms (200); }}} void InitADC () {// Seleccione Vref = AVcc ADMUX | = (1 << REFS0); // establece prescaller en 128 y habilita ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// seleccione el canal ADC con máscara de seguridad ADMUX = (ADMUX & 0xF0) | (ADCchannel y 0x0F); // modo de conversión simple ADCSRA | = (1 << ADSC); // esperar hasta que se complete la conversión de ADC while (ADCSRA & (1 << ADSC)); return ADC; }

Paso 4: Agregar USART

Añadiendo USART
Añadiendo USART

El USART es un protocolo de comunicación en serie que se puede utilizar en el microcontrolador. Lo uso en el microcontrolador para ver datos analógicos del sensor.

El USART ya está programado correctamente y contiene un archivo de encabezado (.h) y fuente (.c). Descargue los 2 archivos y agréguelos a su programa en AtmelStudio.

Haga clic con el botón derecho en el nombre del proyecto en el Explorador de soluciones. Haga clic en "Agregar" -> "Elemento existente …" y seleccione los 2 archivos descargados.

Paso 5: Ejecutar el código

Ejecutando el código
Ejecutando el código
Ejecutando el código
Ejecutando el código

Conecte el microcontrolador a la computadora. Busque en su computadora "administrador de dispositivos" y ábralo. Busque "Puertos (COM & LPT)" y recuerde el puerto COM en el que se encuentra el microcontrolador.

Abra PuTTY y haga clic en "Serie", escriba el puerto COM que ha encontrado del microcontrolador y haga clic en "Abrir". Aparece un terminal, déjelo por ahora.

Regrese a AtmelStudio para seleccionar la herramienta adecuada para programar el microcontrolador.

  1. Haga clic en la herramienta martillo.
  2. Seleccione el depurador / programador "mEDBG * ATML".
  3. Seleccione la interfaz "debugWIRE".
  4. Haga clic en "iniciar sin depurar".

El programa se compilará y escribirá.

Cuando el programa se ejecuta correctamente, verá valores enteros en puTTY. Usando un destornillador puedo cambiar el valor visto en masilla girando el tornillo en el sensor. Mi sensor da los valores de 0 a 1000 al girar el tornillo por completo. Estoy girando el tornillo al 100 (10%) del valor total. Descubrí que esto funciona para mí.

Paso 6: cambiar la sensibilidad

Para ajustar la sensibilidad cuando se enciende la luz, puede usar 2 opciones, pero elija una, no ambas:

  1. Cambiar el tornillo del sensor;
  2. Cambiar el valor del código.

Yo uso la opción 2. Aumentar el VALOR MÍNIMO lo hará menos sensible, al disminuirlo lo hará más sensible.

#define MINIMALVALUE 5

Paso 7: ¡Cambie lo que quiera

¡Cambie lo que quiera!
¡Cambie lo que quiera!
¡Cambie lo que quiera!
¡Cambie lo que quiera!

ADVERTENCIA: ¡Tenga cuidado al cambiar voltajes más altos

Cuando esté satisfecho con la sensibilidad del sensor, puede cambiar el circuito. Cambie el circuito como en la imagen de arriba. ¡Ahora puedes cambiar lo que quieras!

Recomendado: