Inhoudsopgave:
- Benodigdheden
- Stap 1: Aansluitingen
- Stap 2: Het programma maken
- Stap 3: Code toevoegen
- Stap 4: USART toevoegen
- Stap 5: De code uitvoeren
- Stap 6: gevoeligheid wijzigen
- Stap 7: Schakel alles wat je leuk vindt
Video: Clap-on-schakelaar: 7 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Een familielid vroeg me een keer of ik een schakelaar kon maken die reageert op in je handen klappen. Dus ik heb wat spullen besteld om een project te maken en besloot een instructable te maken zodat iedereen zo'n geweldige switch zou kunnen hebben.
De microcontroller is het brein van dit project. Een geluidssensor is aangesloten op de microcontroller, de sensor verzendt analoge gegevens wanneer geluid wordt gedetecteerd. De microcontroller is geprogrammeerd om grote verschillen in geluid te detecteren. Wanneer een voldoende groot verschil wordt gedetecteerd, wat een klap betekent, stuurt de microcontroller een signaal naar het relais. Het relais schakelt en het licht gaat aan. Bij een tweede keer klappen gaat het licht weer uit.
Benodigdheden
Fysieke dingen:
- 1x ATmega328P Xplained Mini met kabel voor programmeren
- 1x 5v relaismodule 1-kanaals (KY-019 of vergelijkbaar)
- 1x Geluidssensormodule (KY-038 of vergelijkbaar)
- 1x Broodplank
- 6x mannelijk-mannelijk doorverbindingsdraad
- 1x lichtcontactdoos met snoer (of een ander apparaat dat je aan wilt zetten)
- 1x gloeilamp
- 1x weerstand* (ik gebruik 220 Ohm)
- 1x LED*
Software download):
- AtmelStudio 7.0(https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Putty (www.putty.org)*
* Voor testdoeleinden
Stap 1: Aansluitingen
Sluit alle draden aan zoals weergegeven in de afbeelding.
Stap 2: Het programma maken
Ik codeer graag in C, dus dit project is geschreven in C.
Als u de benodigde software nog niet hebt gedownload en geïnstalleerd, download en installeer deze dan nu.
Volg nu deze volgende stappen:
- Atmel Studio openen.
- Klik op "Bestand" -> "Nieuw" -> "Project".
- Klik op "GCC C uitvoerbaar project". Geef uw project een naam en locatie om op te slaan. Klik OK".
- Zoek naar de ATmega328P. Klik op "ATmega328P" -> "Ok".
- Klik in de Solution Explorer op "main.c" om het hoofdprogramma te openen.
Stap 3: Code toevoegen
Verwijder de code die al aanwezig is in main.c
Kopieer en plak de volgende code in main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC(); uint16_t ReadADC(uint8_t ADC-kanaal); dubbele val1, val2; int main (void) { // Initialiseer de USART USART_init (9600); USART_putstr("#USART init\n"); // Initialiseer de ADC InitADC(); USART_putstr("#ADC init\n"); // PC1-pin van PORTC-uitgang, de rest-ingang. DDRC = 0b00000010; // stel de beginwaarden in op PORTC laag. PORTC = 0b00000000; while (1) {// potentiometerwaarde lezen // waarde lezen en opslaan in val1 val1 = ReadADC (0); _delay_ms(1); // lees volgende waarde en sla op in val2 val2=ReadADC(0); char str[10]; // de ReadADC() geeft de waarde terug in gehele getallen. Als we fouten willen opsporen of de waarde op stopverf willen zien, // moet de waarde worden geconverteerd naar tekens zodat de USART deze kan afdrukken. itoa(val1, str, 10); USART_putstr(str); USART_putstr("\n"); // als de 2 waarden een bepaald verschil hebben. Een geluid wordt gedetecteerd en schakelt een poort. // MINIMALVALUE kan worden gewijzigd, verhogen maakt het minder gevoelig. Verlagen maakt het gevoeliger if(val1-val2 > MINIMALVALUE || val2-val1 > MINIMALVALUE) { PORTC ^= 0b00000010; // LICHT OP UC _delay_ms (200); } } } void InitADC() {// Selecteer Vref=AVcc ADMUX |= (1<<REFS0); // stel prescaller in op 128 en schakel ADC ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADEN) in; } uint16_t ReadADC(uint8_t ADCchannel) {//selecteer ADC-kanaal met veiligheidsmasker ADMUX = (ADMUX & 0xF0) | (ADC-kanaal & 0x0F); // enkele conversiemodus ADCSRA |= (1<<ADSC); // wacht tot de ADC-conversie is voltooid while(ADCSRA & (1<<ADSC)); retour ADC; }
Stap 4: USART toevoegen
De USART is een serieel communicatieprotocol dat op de microcontroller kan worden gebruikt. Ik gebruik het op de microcontroller om analoge gegevens van de sensor te zien.
De USART is al correct geprogrammeerd en bevat een header(.h) en source(.c)-bestand. Download de 2 bestanden en voeg ze toe aan je programma in AtmelStudio.
Klik met de rechtermuisknop op de projectnaam in de Solution Explorer. Klik op "Toevoegen" -> "Bestaand item…" en selecteer de 2 gedownloade bestanden.
Stap 5: De code uitvoeren
Sluit de microcontroller aan op de computer. Zoek op uw computer naar "apparaatbeheer" en open het. Zoek naar "Poorten (COM & LPT)" en onthoud de COM-poort waarop de microcontroller staat.
Open PuTTY en klik op "Serial" typ de COM-poort die je van de microcontroller hebt gevonden en klik op "Open". Er verschijnt een terminal, laat het voor nu.
Ga terug naar AtmelStudio om de juiste tool te selecteren voor het programmeren van de microcontroller.
- Klik op het hamergereedschap.
- Selecteer de "mEDBG*ATML" debugger/programmeur.
- Selecteer interface "debugWIRE".
- Klik op "start zonder debuggen".
Het programma gaat bouwen en schrijven.
Als het programma correct draait, ziet u gehele waarden in puTTY. Met behulp van een schroevendraaier kan ik de waarde in puTTY veranderen door aan de schroef op de sensor te draaien. Mijn sensor geeft de waarden van 0 tot 1000 bij het volledig draaien van de schroef. Ik draai de schroef naar 100 (10%) van de totale waarde. Ik ben erachter gekomen dat dit voor mij werkt.
Stap 6: gevoeligheid wijzigen
Om de gevoeligheid aan te passen wanneer het licht aangaat, kun je 2 opties gebruiken, maar kies er één niet allebei:
- Sensorschroef vervangen;
- Wijzig codewaarde.
Ik gebruik optie 2. Het verhogen van de MINIMALE WAARDE maakt het minder gevoelig, het verlagen maakt het gevoeliger.
#define MINIMALWAARDE 5
Stap 7: Schakel alles wat je leuk vindt
WAARSCHUWING: Pas op bij het schakelen van hogere spanningen
Als je tevreden bent met de gevoeligheid van de sensor, kun je het circuit veranderen. Verander het circuit zoals de afbeelding hierboven. Je kunt nu alles wisselen wat je maar wilt!
Aanbevolen:
Clap-off-bh: 27 stappen (met afbeeldingen)
Clap-Off Bra: De eerste keer dat ik over Syrische Lingerie las, was ik behoorlijk ontroerd. In het Westen denken we vaak aan Arabische culturen als seksueel onderdrukte samenlevingen, terwijl - in feite - blijkt dat ze duidelijk een grote voorsprong hebben op ons wat betreft vooruitgang in lingerie
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
PCB-ontwerp met eenvoudige en gemakkelijke stappen: 30 stappen (met afbeeldingen)
PCB-ontwerp met eenvoudige en gemakkelijke stappen: HELLO VRIENDEN Het is een zeer nuttige en gemakkelijke tutorial voor diegenen die PCB-ontwerp willen leren, laten we beginnen
Clap Switch (40 klappen in 5 seconden): 4 stappen (met afbeeldingen)
Clap Switch (40 Claps in 5 Second): Clap Switch heeft de mogelijkheid om elk elektrisch onderdeel AAN/UIT te zetten door de uitgang van het circuit aan te sluiten op een relaisschakelaar. Hier gaan we een klapschakelaar maken met weinig componenten met zeer goede uitleg. Vergeleken met alle andere klapschakelaars