Table des matières:

Interrupteur à clapet : 7 étapes (avec photos)
Interrupteur à clapet : 7 étapes (avec photos)

Vidéo: Interrupteur à clapet : 7 étapes (avec photos)

Vidéo: Interrupteur à clapet : 7 étapes (avec photos)
Vidéo: Réparation d'un écran Commodore 1084 : clapet et interrupteur 2024, Novembre
Anonim
Image
Image

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

Création du programme
Création du programme

Connectez tous les fils comme indiqué sur l'image.

Étape 2: Création du programme

Création du programme
Création du programme
Création du programme
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:

  1. Ouvrez AtmelStudio.
  2. Cliquez sur "Fichier" -> "Nouveau" -> "Projet".
  3. Cliquez sur "Projet exécutable GCC C". Donnez à votre projet un nom et un emplacement à stocker. Cliquez sur OK".
  4. Recherchez l'ATmega328P. Cliquez sur "ATmega328P" -> "D'accord".
  5. 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

Ajout d'USART
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

Exécuter le code
Exécuter le code
Exécuter le code
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.

  1. Cliquez sur l'outil marteau.
  2. Sélectionnez le débogueur/programmeur "mEDBG*ATML".
  3. Sélectionnez l'interface "debugWIRE".
  4. 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:

  1. Changer la vis du capteur;
  2. 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

Changez tout ce que vous aimez !
Changez tout ce que vous aimez !
Changez tout ce que vous aimez !
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é: