Table des matières:
- Fournitures
- Étape 1: Connexions
- Étape 2: Création du programme
- Étape 3: Ajout de code
- Étape 4: Ajout d'USART
- Étape 5: Exécuter le code
- Étape 6: Modifier la sensibilité
- Étape 7: changez tout ce que vous aimez
Vidéo: Interrupteur à clapet : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Un parent m'a demandé une fois si je pouvais créer un interrupteur qui réagit au battement des mains. J'ai donc commandé des trucs pour créer un projet et j'ai décidé de créer un instructable pour que tout le monde puisse avoir un commutateur génial comme ça.
Le microcontrôleur est le cerveau de ce projet. Un capteur sonore est connecté au microcontrôleur, le capteur envoie des données analogiques lorsqu'un son est détecté. Le microcontrôleur est programmé pour détecter de grandes différences de son. Lorsqu'une différence suffisamment élevée est détectée, c'est-à-dire un applaudissement, le microcontrôleur envoie un signal au relais. Le relais commute et la lumière s'allume. Lorsque vous applaudissez une deuxième fois, la lumière s'éteint à nouveau.
Fournitures
Des trucs physiques:
- 1x ATmega328P Xplained Mini avec câble pour la programmation
- 1x module relais 5v 1 canal (KY-019 ou similaire)
- 1x module de capteur de son (KY-038 ou similaire)
- 1x planche à pain
- 6x cavalier mâle-mâle
- 1x prise de lumière avec cordon (ou tout autre appareil que vous souhaitez allumer)
- 1x ampoule
- 1x résistance* (j'utilise 220 Ohm)
- 1x LED*
Téléchargement de logiciel):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Putty (www.putty.org)*
* À des fins de test
Étape 1: Connexions
Connectez tous les fils comme indiqué sur l'image.
Étape 2: Création du programme
J'aime coder en C donc ce projet est écrit en C.
Si vous n'avez pas encore téléchargé et installé le logiciel nécessaire, téléchargez-le et installez-le maintenant.
Suivez maintenant les étapes suivantes:
- Ouvrez AtmelStudio.
- Cliquez sur "Fichier" -> "Nouveau" -> "Projet".
- Cliquez sur "Projet exécutable GCC C". Donnez à votre projet un nom et un emplacement à stocker. Cliquez sur OK".
- Recherchez l'ATmega328P. Cliquez sur "ATmega328P" -> "D'accord".
- Cliquez dans l'explorateur de solutions sur "main.c" pour ouvrir le programme principal.
Étape 3: Ajout de code
Supprimez le code déjà présent dans main.c
Copiez et collez le code suivant dans main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define VALEUR MINIMALE 5 void InitADC(); uint16_t ReadADC(uint8_t ADCchannel); double val1, val2; int main(void) { // Initialise l'USART USART_init(9600); USART_putstr("#USART init\n"); // Initialiser l'ADC InitADC(); USART_putstr("#ADC init\n"); // broche PC1 de la sortie PORTC, l'entrée reste. DDRC = 0b0000010; // définit les valeurs initiales sur PORTC bas. PORTC = 0b00000000; while(1) { // lecture de la valeur du potentiomètre // lecture de la valeur et stockage dans val1 val1=ReadADC(0); _delay_ms(1); // lit la valeur suivante et stocke dans val2 val2=ReadADC(0); char str[10]; // le ReadADC() renvoie la valeur en nombres entiers. Si nous voulons déboguer ou voir la valeur sur putty, // la valeur doit être convertie en caractères afin que l'USART puisse l'imprimer. itoa(val1, str, 10); USART_putstr(str); USART_putstr("\n"); // si les 2 valeurs ont une certaine différence. Un son est détecté et commute un port. // VALEUR MINIMALE peut être modifiée, l'augmenter la rendra moins sensible. Diminuer le rendra plus sensible if(val1-val2 > MINIMALVALUE || val2-val1 > MINIMALVALUE) { PORTC ^= 0b00000010; // LUMIÈRE SUR UC _delay_ms(200); } } } void InitADC() { // Sélectionnez Vref=AVcc ADMUX |= (1<<REFS0); //définir le préappelant sur 128 et activer ADC ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADEN); } uint16_t ReadADC(uint8_t ADCchannel) { //sélectionner le canal ADC avec masque de sécurité ADMUX = (ADMUX & 0xF0) | (canal ADC & 0x0F); //mode de conversion unique ADCSRA |= (1<<ADSC); // attend que la conversion ADC soit terminée while(ADCSRA & (1<<ADSC)); retour ADC; }
Étape 4: Ajout d'USART
L'USART est un protocole de communication série qui peut être utilisé sur le microcontrôleur. Je l'utilise sur le microcontrôleur pour voir les données analogiques du capteur.
L'USART est déjà programmé correctement, contenant un en-tête (.h) et un fichier source (.c). Téléchargez les 2 fichiers et ajoutez-les à votre programme dans AtmelStudio.
Cliquez avec le bouton droit sur le nom du projet dans l'explorateur de solutions. Cliquez sur « Ajouter » -> « Élément existant… » et sélectionnez les 2 fichiers téléchargés.
Étape 5: Exécuter le code
Connectez le microcontrôleur à l'ordinateur. Recherchez sur votre ordinateur « gestionnaire de périphériques » et ouvrez-le. Recherchez "Ports (COM & LPT)" et souvenez-vous du port COM sur lequel se trouve le microcontrôleur.
Ouvrez PuTTY et cliquez sur "Série", tapez le port COM que vous avez trouvé du microcontrôleur et cliquez sur "Ouvrir". Un terminal apparaît, laissez-le pour le moment.
Retournez à AtmelStudio pour sélectionner le bon outil pour programmer le microcontrôleur.
- Cliquez sur l'outil marteau.
- Sélectionnez le débogueur/programmeur "mEDBG*ATML".
- Sélectionnez l'interface "debugWIRE".
- Cliquez sur "démarrer sans déboguer".
Le programme va construire et écrire.
Lorsque le programme s'exécute correctement, vous verrez des valeurs entières dans puTTY. À l'aide d'un tournevis, je peux changer la valeur vue dans puTTY en tournant la vis sur le capteur. Mon capteur donne les valeurs de 0 à 1000 en tournant la vis à fond. Je tourne la vis à 100 (10 %) de la valeur totale. J'ai découvert que cela fonctionne pour moi.
Étape 6: Modifier la sensibilité
Pour régler la sensibilité lorsque la lumière s'allume, vous pouvez utiliser 2 options, mais en choisir une pas les deux:
- Changer la vis du capteur;
- Changer la valeur du code.
J'utilise l'option 2. Augmenter la VALEUR MINIMALE la rendra moins sensible, la diminuer la rendra plus sensible.
#define VALEUR MINIMALE 5
Étape 7: changez tout ce que vous aimez
AVERTISSEMENT: Faites attention lors de la commutation de tensions plus élevées
Lorsque vous êtes satisfait de la sensibilité du capteur, vous pouvez changer le circuit. Changez le circuit comme l'image ci-dessus. Vous pouvez maintenant changer tout ce que vous voulez !
Conseillé:
Contrôleur pour 3 antennes à boucle magnétique avec interrupteur de fin de course : 18 étapes (avec photos)
Contrôleur pour 3 antennes à boucle magnétique avec interrupteur de fin de course : ce projet est destiné aux amateurs de jambon qui n'en ont pas dans le commerce. C'est facile à construire avec un fer à souder, un boîtier en plastique et un peu de connaissances en arduino. Le contrôleur est fabriqué avec des composants économiques que vous pouvez trouver facilement sur Internet (~20 €)
Interrupteur Tuchless pour appareils électroménagers -- Contrôlez vos appareils ménagers sans interrupteur : 4 étapes
Interrupteur Tuchless pour appareils électroménagers || Contrôlez vos appareils ménagers sans Tuch aucun interrupteur : il s'agit d'un interrupteur Tuchless pour les appareils ménagers. Vous pouvez l'utiliser dans n'importe quel lieu public afin de lutter contre tout virus. Le circuit basé sur le circuit de capteur sombre fabriqué par un ampli-op et un LDR. Deuxième partie importante de ce circuit SR Flip-Flop avec séquence
Interrupteur d'éclairage télécommandé Bluetooth - Rénovation. L'interrupteur d'éclairage fonctionne toujours, pas d'écriture supplémentaire. : 9 étapes (avec images)
Interrupteur d'éclairage télécommandé Bluetooth - Rénovation. L'interrupteur d'éclairage fonctionne toujours, pas d'écriture supplémentaire. : Mise à jour du 25 novembre 2017 -- Pour une version haute puissance de ce projet qui peut contrôler les kilowatts de charge, voir Retrofit BLE Control to High Power Loads - No Extra Wiring Required Update 15th November 2017 - Certaines cartes BLE / piles logicielles livraient
Interrupteur Slap : Interrupteur tactile simple sans soudure : 7 étapes
Slap Switch : Commutateur tactile simple, sans soudure : Le Slap Switch est un simple commutateur tactile à résistance, conçu pour mon projet Explode the Controller afin d'intégrer le jeu physique dans les jeux informatiques avec Makey Makey et Scratch. Le projet avait besoin d'un interrupteur tactile qui était : robuste, pour être giflé dur
Pirater une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : 4 étapes
Piratage d'une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : j'ai récemment construit un système d'alarme et je l'ai installé dans ma maison. J'ai utilisé des interrupteurs magnétiques sur les portes et les ai câblés à travers le grenier. Les fenêtres étaient une autre histoire et leur câblage n'était pas une option. J'avais besoin d'une solution sans fil et c'est