Sommario:
- Forniture
- Passaggio 1: connessioni
- Passaggio 2: creazione del programma
- Passaggio 3: aggiunta del codice
- Passaggio 4: aggiunta di USART
- Passaggio 5: esecuzione del codice
- Passaggio 6: modifica della sensibilità
- Passaggio 7: cambia tutto ciò che ti piace
Video: Interruttore Clap-on: 7 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Una volta un parente mi ha chiesto se potevo creare un interruttore che reagisse al battere le mani. Quindi ho ordinato alcune cose per creare un progetto e ho deciso di creare un istruibile in modo che tutti possano avere un fantastico interruttore del genere.
Il microcontrollore è il cervello di questo progetto. Un sensore sonoro è collegato al microcontrollore, il sensore sta inviando dati analogici quando viene rilevato il suono. Il microcontrollore è programmato per rilevare grandi differenze di suono. Quando viene rilevata una differenza sufficientemente elevata, ovvero un applauso, il microcontrollore invia un segnale al relè. Il relè commuta e la luce si accende. Quando batti le mani una seconda volta, la luce si spegne di nuovo.
Forniture
cose fisiche:
- 1x ATmega328P Xplained Mini con cavo per la programmazione
- 1x modulo relè 5v 1 canale (KY-019 o simile)
- 1x modulo sensore sonoro (KY-038 o simile)
- 1x tagliere
- 6x cavo ponticello maschio-maschio
- 1x presa luce con cavo (o qualsiasi altro dispositivo che si desidera accendere)
- 1x lampadina
- 1x resistenza* (io uso 220 Ohm)
- 1x LED*
Software (scarica):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Putty (www.putty.org)*
* A scopo di test
Passaggio 1: connessioni
Collegare tutti i fili come mostrato nell'immagine.
Passaggio 2: creazione del programma
Mi piace programmare in C, quindi questo progetto è scritto in C.
Se non hai ancora scaricato e installato il software necessario, scaricalo e installalo ora.
Ora segui questi passaggi successivi:
- Apri AtmelStudio.
- Fare clic su "File" -> "Nuovo" -> "Progetto".
- Fare clic su "Progetto eseguibile GCC C". Dai al tuo progetto un nome e una posizione in cui archiviare. Fare clic su "Ok".
- Cerca l'ATmega328P. Fare clic su "ATmega328P" -> "Ok".
- Fare clic in Esplora soluzioni su "main.c" per aprire il programma principale.
Passaggio 3: aggiunta del codice
Elimina il codice già presente in main.c
Copia e incolla il seguente codice in main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC(); uint16_t ReadADC(uint8_t ADCchannel); doppia val1, val2; int main(void) { // Inizializza USART USART_init(9600); USART_putstr("#USART init\n"); // Inizializza l'ADC InitADC(); USART_putstr("#ADC init\n"); // Pin PC1 dell'uscita PORTC, l'input del resto. DDRC = 0b0000001; // imposta i valori iniziali su PORTC basso. PORTC = 0b00000000; while(1) { //lettura valore potenziometro // lettura valore e memorizzazione in val1 val1=ReadADC(0); _delay_ms(1); // legge il valore successivo e memorizza in val2 val2=ReadADC(0); carattere str[10]; // il ReadADC() restituisce il valore in numeri interi. Se vogliamo eseguire il debug o vedere il valore su putty, // il valore deve essere convertito in caratteri in modo che USART possa stamparlo. itoa(val1, str, 10); USART_putstr(str); USART_putstr("\n"); // se i 2 valori hanno una certa differenza. Viene rilevato un suono e cambia una porta. // MINIMALVALUE può essere modificato, aumentandolo lo renderà meno sensibile. Diminuendo lo renderà più sensibile if(val1-val2 > MINIMALVALUE || val2-val1 > MINIMALVALUE) { PORTC ^= 0b00000010; // LUCE SU UC _delay_ms(200); } } } void InitADC() { // Seleziona Vref=AVcc ADMUX |= (1<<REFS0); //imposta il prescaler su 128 e abilita ADC ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADEN); } uint16_t ReadADC(uint8_t ADCchannel) { //seleziona il canale ADC con la maschera di sicurezza ADMUX = (ADMUX & 0xF0) | (canale ADC e 0x0F); //modalità di conversione singola ADCSRA |= (1<<ADSC); // attende il completamento della conversione ADC while(ADCSRA & (1<<ADSC)); restituire l'ADC; }
Passaggio 4: aggiunta di USART
L'USART è un protocollo di comunicazione seriale che può essere utilizzato sul microcontrollore. Lo uso sul microcontrollore per vedere i dati analogici dal sensore.
L'USART è già programmato correttamente, contiene un file header(.h) e source(.c). Scarica i 2 file e aggiungili al tuo programma in AtmelStudio.
Fare clic con il pulsante destro del mouse sul nome del progetto in Esplora soluzioni. Fare clic su "Aggiungi" -> "Elemento esistente…" e selezionare i 2 file scaricati.
Passaggio 5: esecuzione del codice
Collega il microcontrollore al computer. Cerca sul tuo computer "Gestione dispositivi" e aprilo. Cerca "Porte (COM e LPT)" e ricorda la porta COM su cui si trova il microcontrollore.
Apri PuTTY e fai clic su "Seriale" digita la porta COM che hai trovato del microcontrollore e fai clic su "Apri". Viene visualizzato un terminale, lascialo per ora.
Torna su AtmelStudio per selezionare lo strumento giusto per programmare il microcontrollore.
- Fare clic sullo strumento martello.
- Seleziona il debugger/programmatore "mEDBG*ATML".
- Selezionare l'interfaccia "debugWIRE".
- Fare clic su "Avvia senza debug".
Il programma costruirà e scriverà.
Quando il programma viene eseguito correttamente, vedresti valori interi in puTTY. Utilizzando un cacciavite posso modificare il valore visto in puTTY ruotando la vite sul sensore. Il mio sensore fornisce i valori da 0 a 1000 quando si gira la vite fino in fondo. Sto girando la vite a 100(10%) del valore totale. Ho scoperto che questo funziona per me.
Passaggio 6: modifica della sensibilità
Per regolare la sensibilità quando la luce si accende puoi usare 2 opzioni, ma scegline una e non entrambe:
- Cambiare la vite del sensore;
- Modifica il valore del codice.
Io uso l'opzione 2. Aumentando il MINIMALVALUE lo renderà meno sensibile, diminuendo lo renderà più sensibile.
#define VALORE MINIMO 5
Passaggio 7: cambia tutto ciò che ti piace
AVVERTENZA: attenzione quando si commutano tensioni più elevate
Quando sei soddisfatto della sensibilità del sensore puoi cambiare il circuito. Cambia il circuito come nell'immagine sopra. Ora puoi cambiare tutto ciò che ti piace!
Consigliato:
Interruttore Tuchless per elettrodomestici -- Controlla i tuoi elettrodomestici senza alcun interruttore: 4 passaggi
Interruttore Tuchless per elettrodomestici || Controlla i tuoi elettrodomestici senza alcun interruttore: questo è un interruttore senza tuch per elettrodomestici. Puoi usarlo in qualsiasi luogo pubblico in modo da aiutare a combattere qualsiasi virus. Il circuito basato sul circuito del sensore scuro realizzato da amplificatore operazionale e LDR. Seconda parte importante di questo circuito SR Flip-Flop con Sequencell
INTERRUTTORE WAVE--TOCCA MENO INTERRUTTORE UTILIZZANDO 555: 4 passaggi
WAVE SWITCH||TOUCH LESS SWITCH UTILIZZANDO 555: Ciao a tutti Benvenuti Oggi sto costruendo un semplice interruttore touch less, si attiva semplicemente agitando la mano con l'aiuto del sensore a infrarossi e del timer 555 IC quindi costruiamolo … Il suo funzionamento è semplice come il 555 che funziona come infradito il suo negozio il
Interruttore della luce telecomandato Bluetooth -- Retrofit. L'interruttore della luce funziona ancora, nessuna scrittura aggiuntiva: 9 passaggi (con immagini)
Interruttore luci telecomandato Bluetooth -- Retrofit. L'interruttore della luce funziona ancora, nessuna scrittura aggiuntiva.: aggiornamento del 25 novembre 2017 -- Per una versione ad alta potenza di questo progetto in grado di controllare i kilowatt di carico, vedere Modifica del controllo BLE su carichi ad alta potenza - Nessun cablaggio aggiuntivo richiesto Aggiornamento del 15 novembre 2017 - Alcune schede BLE / stack software deli
INTERRUTTORE TOUCH - Come realizzare un interruttore tattile utilizzando un transistor e una breadboard: 4 passaggi
INTERRUTTORE TOUCH | Come realizzare un interruttore tattile utilizzando un transistor e una breadboard.: L'interruttore tattile è un progetto molto semplice basato sull'applicazione di transistor. In questo progetto viene utilizzato il transistor BC547 che funge da interruttore tattile. ASSICURATI DI GUARDARE IL VIDEO CHE TI DARÀ TUTTI I DETTAGLI SUL PROGETTO
Interruttore Bluetooth Clap.: 3 passaggi (con immagini)
Bluetooth Clap Switch.: Questo è un modo economico per riutilizzare i vecchi altoparlanti bluetooth. Questo è un dispositivo fai-da-te che è in grado di accendere o spegnere le luci o qualsiasi cosa di tensione della città applaudendo in un software installato nel cellulare. Roba di cui hai bisogno: scheda Arduino 5v relè qualsiasi vecchio bluetooth