Tabla de contenido:
- Suministros
- Paso 1: conexiones
- Paso 2: creación del programa
- Paso 3: agregar código
- Paso 4: Agregar USART
- Paso 5: Ejecutar el código
- Paso 6: cambiar la sensibilidad
- Paso 7: ¡Cambie lo que quiera
Video: Interruptor de aplauso: 7 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
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
Conecte todos los cables como se muestra en la imagen.
Paso 2: creación del 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:
- Abra AtmelStudio.
- Haga clic en "Archivo" -> "Nuevo" -> "Proyecto".
- Haga clic en "Proyecto ejecutable GCC C". Dale a tu proyecto un nombre y una ubicación para almacenar. Haga clic en Aceptar".
- Busque el ATmega328P. Haga clic en "ATmega328P" -> "Aceptar".
- 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
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
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.
- Haga clic en la herramienta martillo.
- Seleccione el depurador / programador "mEDBG * ATML".
- Seleccione la interfaz "debugWIRE".
- 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:
- Cambiar el tornillo del sensor;
- 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
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:
Interruptor de aplauso: 4 pasos
Clap Switch: ¿Estás cansado de levantarte solo para presionar el interruptor para apagar / no un electrodoméstico ?, o cansado de buscar un interruptor en la oscuridad. ¿Por qué no hacer un clap switch? ¿Qué es un interruptor Clap? Un circuito de interruptor de clap es un circuito sensible a la base de sonido. Fue inv
Interruptor de aplauso con transistor BC547: 14 pasos
Interruptor de aplauso con transistor BC547: Hola amigo, hoy voy a hacer un circuito de interruptor de aplauso con transistor BC547.Anteriormente hicimos un interruptor de aplauso con LM555 IC
Interruptor de luz con control remoto Bluetooth - Actualización. El interruptor de luz sigue funcionando, sin escritura adicional: 9 pasos (con imágenes)
Interruptor de luz con control remoto Bluetooth - Actualización. El interruptor de luz sigue funcionando, sin escritura adicional: actualización del 25 de noviembre de 2017: para obtener una versión de alta potencia de este proyecto que puede controlar kilovatios de carga, consulte Adaptación del control BLE a cargas de alta potencia: no se requiere cableado adicional, actualizado el 15 de noviembre de 2017 - Algunas placas BLE / pilas de software deli
Hagamos un circuito de interruptor de aplauso: 5 pasos
Hagamos un circuito de interruptor de aplauso: El circuito de interruptor de aplauso o badajo (la versión comercial) es un interruptor activado por sonido que enciende y apaga una lámpara al aplaudir o chasquear los dedos
Interruptor de aplauso Bluetooth: 3 pasos (con imágenes)
Interruptor de aplauso de Bluetooth: esta es una forma económica de reutilizar los viejos altavoces bluetooth. Este es un dispositivo de bricolaje que es capaz de encender o apagar las luces o cualquier cosa del voltaje de la ciudad presionando un software instalado en el móvil. Cosas que necesita: