Innehållsförteckning:
- Tillbehör
- Steg 1: Anslutningar
- Steg 2: Skapa programmet
- Steg 3: Lägga till kod
- Steg 4: Lägga till USART
- Steg 5: Kör koden
- Steg 6: Ändra känslighet
- Steg 7: Byt vad du vill
Video: Clap-on Switch: 7 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
En släkting frågade mig en gång om jag kunde skapa en switch som reagerar på att klappa händerna. Så jag har beställt några saker för att skapa ett projekt och bestämde mig för att göra en instruerbar så att alla kan ha en fantastisk switch så.
Mikrokontrollern är hjärnan i detta projekt. En ljudsensor är ansluten till mikrokontrollern, sensorn skickar analog data när ljud detekteras. Mikrokontrollern är programmerad att upptäcka stora skillnader i ljud. När en tillräckligt hög skillnad detekteras, vilket betyder en klapp, skickar mikrokontrollern en signal till reläet. Reläet växlar och lampan tänds. När du klappar en andra gång släcks lampan igen.
Tillbehör
Fysiska saker:
- 1x ATmega328P Xplained Mini med kabel för programmering
- 1x 5v relämodul 1-kanal (KY-019 eller liknande)
- 1x ljudsensormodul (KY-038 eller liknande)
- 1x brödbräda
- 6x Man-Man bygelkabel
- 1x ljusuttag med sladd (eller någon annan enhet du vill slå på)
- 1x glödlampa
- 1x motstånd* (jag använder 220 Ohm)
- 1x LED*
Programvara (ladda ner):
- AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Kitt (www.putty.org)*
* För teständamål
Steg 1: Anslutningar
Anslut alla trådar som visas på bilden.
Steg 2: Skapa programmet
Jag gillar att koda i C så det här projektet skrivs i C.
Om du inte har laddat ner och installerat den nödvändiga programvaran, ladda ner och installera den nu.
Följ nu följande steg:
- Öppna AtmelStudio.
- Klicka på "File" -> "New" -> "Project".
- Klicka på "GCC C Executable Project". Ge ditt projekt ett namn och en plats att lagra. Klicka på "Ok".
- Sök efter ATmega328P. Klicka på "ATmega328P" -> "Ok".
- Klicka i Solution Explorer på "main.c" för att öppna huvudprogrammet.
Steg 3: Lägga till kod
Radera koden som redan finns i main. C
Kopiera och klistra in följande kod i main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); dubbel val1, val2; int main (void) {// Initiera USART USART_init (9600); USART_putstr ("#USART init / n"); // Initiera ADC InitADC (); USART_putstr ("#ADC init / n"); // PC1 -stift av PORTC -utgång, resten ingång. DDRC = 0b00000010; // ställ in initialvärden till PORTC låg. PORTC = 0b00000000; medan (1) {// avläsning av potentiometervärde // läs värde och lagra i val1 val1 = ReadADC (0); _fördröjning_ms (1); // läs nästa värde en store i val2 val2 = ReadADC (0); char str [10]; // ReadADC () ger värdet tillbaka i heltal. Om vi vill felsöka eller se värdet på kitt, // måste värdet konverteras till tecken så att USART kan skriva ut det. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // om de två värdena har en viss skillnad. Ett ljud detekteras och byter port. // MINIMALVÄRDE kan ändras, ökning gör det mindre känsligt. Minskning gör det mer känsligt om (val1-val2> MINIMALVÄRDE || val2-val1> MINIMALVÄRDE) {PORTC ^= 0b00000010; // LJUS PÅ UC _fördröjning_ms (200); }}} void InitADC () {// Select Vref = AVcc ADMUX | = (1 << REFS0); // ställ in prescaller till 128 och aktivera ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// välj ADC -kanal med säkerhetsmask ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // enda konverteringsläge ADCSRA | = (1 << ADSC); // vänta tills ADC -konverteringen är klar medan (ADCSRA & (1 << ADSC)); returnera ADC; }
Steg 4: Lägga till USART
USART är ett seriellt kommunikationsprotokoll som kan användas på mikrokontrollern. Jag använder den på mikrokontrollern för att se analoga data från sensorn.
USART är redan programmerat korrekt och innehåller en rubrik (.h) och källfil (.c). Ladda ner de två filerna och lägg till dem i ditt program i AtmelStudio.
Högerklicka på projektnamnet i Solution Explorer. Klicka på "Lägg till" -> "Befintligt objekt …" och välj de 2 nedladdade filerna.
Steg 5: Kör koden
Anslut mikrokontrollern till datorn. Sök efter "enhetshanterare" på din dator och öppna den. Leta efter "Ports (COM & LPT)" och kom ihåg COM-porten som mikrokontrollern är på.
Öppna PuTTY och klicka på "Serial", skriv COM-porten som du har hittat för mikrokontrollern och klicka på "Öppna". En terminal dyker upp, lämna den för nu.
Gå tillbaka till AtmelStudio för att välja rätt verktyg för programmering av mikrokontrollern.
- Klicka på hammarverktyget.
- Välj "mEDBG*ATML" felsökare/programmerare.
- Välj gränssnittet "debugWIRE".
- Klicka på "starta utan felsökning".
Programmet kommer att bygga och skriva.
När programmet körs korrekt ser du heltalsvärden i puTTY. Med en skruvmejsel kan jag ändra värdet i puTTY genom att vrida på skruven på sensorn. Min sensor ger värdena från 0 till 1000 när skruven vrids hela vägen. Jag vrider skruven till 100 (10%) av det totala värdet. Jag har fått reda på att det här fungerar för mig.
Steg 6: Ändra känslighet
För att justera känsligheten när ljuset tänds kan du använda två alternativ, men välj ett inte båda:
- Byt sensorskruv;
- Ändra kodvärde.
Jag använder alternativ 2. Att öka MINIMALVÄRDET gör det mindre känsligt, minskande gör det mer känsligt.
#define MINIMALVÄRDE 5
Steg 7: Byt vad du vill
VARNING: Se upp när du växlar högre spänningar
När du är nöjd med sensorns känslighet kan du ändra kretsen. Ändra kretsen som bilden ovan. Du kan nu byta vad du vill!
Rekommenderad:
Clap Switch: 4 steg
Clap Switch: Är du trött på att gå upp bara för att vrida omkopplaren för att stänga av/ingen apparat?, Eller trött på att leta efter en switch i mörkret?. Varför inte göra en klappbrytare. Vad är en Clap -switch? En clap -switch -krets är en ljudbasskänslig krets, det var inv
Hand Clap Lights Switch: 4 steg
Hand Clap Lights Switch: Ofta måste du ta några steg i mörkret innan du kan nå ljuskontakten. Nu med en klappande hand kan du tända lamporna, utan problem
Two Clap ON - Clap OFF Circuits - 555 IC - 4017 IC: 3 steg
Two Clap ON - Clap OFF Circuits - 555 IC | 4017 IC: Clap ON - Clap OFF krets är kretsen som kan användas för att styra olika elektroniska utrustningar med bara en CLAP. En klapp slår på lasten och en annan klapp stänger av den. Det är väldigt vanligt och enkelt att göra denna krets med IC 4017, men här
Clap Switch (40 klappar på 5 sekunder): 4 steg (med bilder)
Clap Switch (40 Claps in 5 Second): Clap Switch har möjlighet att slå PÅ/AV vilken elektrisk komponent som helst genom att ansluta kretsens utgång till en reläbrytare. Här ska vi göra en klappbrytare med få komponenter med mycket bra förklaringar. Jämfört med alla andra klappbrytare
Bluetooth Clap Switch: 3 steg (med bilder)
Bluetooth Clap Switch: Detta är ett billigt sätt att återanvända gamla Bluetooth -spakar. Detta är en DIY -enhet som kan tända eller släcka lamporna eller något med stadsspänning genom att klappa i en programvara som är installerad i mobilen. Saker du behöver: .Arduino -kort 5v relä, gammal bluetooth