INHOUDSOPGAWE:

Opklapskakelaar: 7 stappe (met foto's)
Opklapskakelaar: 7 stappe (met foto's)

Video: Opklapskakelaar: 7 stappe (met foto's)

Video: Opklapskakelaar: 7 stappe (met foto's)
Video: MIJN GEHEIM BIJ RENOVLIES BEHANG AANBRENGEN die GEEN SCHILDER met je wilt delen. ALLE STAPPEN! 2024, November
Anonim
Image
Image

'N Familielid het my 'n keer gevra of ek 'n skakelaar kan maak wat reageer op hande klap. Dus het ek 'n paar dinge bestel om 'n projek te skep en besluit om 'n instruksie te maak sodat almal 'n wonderlike skakelaar kan hê.

Die mikrobeheerder is die brein van hierdie projek. 'N Klanksensor is aan die mikrobeheerder gekoppel, die sensor stuur analoog data wanneer klank bespeur word. Die mikrobeheerder is geprogrammeer om groot klankverskille op te spoor. As 'n groot genoeg verskil opgespoor word, wat 'n klap beteken, stuur die mikrobeheerder 'n sein na die aflos. Die aflos skakel en die lig brand. As 'n tweede keer geklap word, sal die lig weer afskakel.

Voorrade

Fisiese dinge:

  • 1x ATmega328P Xplained Mini met kabel vir programmering
  • 1x 5v aflosmodule 1-kanaals (KY-019 of soortgelyk)
  • 1x Klanksensormodule (KY-038 of soortgelyk)
  • 1x broodbord
  • 6x man-man trui
  • 1x ligaansluiting met koord (of enige ander toestel wat u wil aanskakel)
  • 1x gloeilamp
  • 1x weerstand* (ek gebruik 220 Ohm)
  • 1x LED*

Sagteware (aflaai):

  • AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
  • Putty (www.putty.org)*

* Vir toetsdoeleindes

Stap 1: Verbindings

Die skep van die program
Die skep van die program

Verbind al die drade soos in die prentjie getoon.

Stap 2: Skep die program

Die skep van die program
Die skep van die program
Die skep van die program
Die skep van die program

Ek hou daarvan om in C te kodeer, sodat hierdie projek in C geskryf word.

As u nog nie die nodige sagteware afgelaai en geïnstalleer het nie, laai dit af en installeer dit nou.

Volg nou die volgende stappe:

  1. Maak AtmelStudio oop.
  2. Klik op "File" -> "New" -> "Project".
  3. Klik op "GCC C uitvoerbare projek". Gee jou projek 'n naam en plek om te stoor. Klik op "Ok".
  4. Soek die ATmega328P. Klik op "ATmega328P" -> "Ok".
  5. Klik in die Solution Explorer op "main.c" om die hoofprogram oop te maak.

Stap 3: Voeg kode by

Vee die kode wat reeds in die hoofrol voorkom, uit. C

Kopieer en plak die volgende kode in main.c

#definieer F_CPU 16000000

#include #include #include #include "usart.h" #define MINIMALWALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); dubbel val1, val2; int main (void) {// Initialiseer die USART USART_init (9600); USART_putstr ("#USART init / n"); // Initialiseer die ADC InitADC (); USART_putstr ("#ADC init / n"); // PC1 -pen van PORTC -uitset, die res -invoer. DDRC = 0b00000010; // stel aanvanklike waardes op PORTC laag. PORTC = 0b00000000; terwyl (1) {// potensiometerwaarde lees // waarde lees en stoor in val1 val1 = ReadADC (0); _vertraging_ms (1); // lees die volgende waarde en slaan in val2 val2 = ReadADC (0); char str [10]; // die ReadADC () gee die waarde terug in heelgetalle. As ons wil ontfout of die waarde op stopverf wil sien, // moet die waarde na karakters omgeskakel word sodat die USART dit kan druk. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // as die 2 waardes 'n sekere verskil het. 'N Klank word opgespoor en skakel 'n poort oor. // MINIMAALWAARDE kan verander word, as u dit verhoog, word dit minder sensitief. Deur af te neem, sal dit meer sensitief wees as (val1-val2> MINIMALWAARDE || val2-val1> MINIMALWAARDE) {PORTC ^= 0b00000010; // LIG OP UC _ vertraging_ms (200); }}} ongeldig InitADC () {// Select Vref = AVcc ADMUX | = (1 << REFS0); // stel prescaller op 128 en aktiveer ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// kies ADC -kanaal met veiligheidsmasker ADMUX = (ADMUX & 0xF0) | (ADKanaal & 0x0F); // enkele omskakelingsmodus ADCSRA | = (1 << ADSC); // wag totdat die ADC -omskakeling voltooi is terwyl (ADCSRA & (1 << ADSC)); stuur ADC terug; }

Stap 4: Voeg USART by

Voeg USART by
Voeg USART by

Die USART is 'n seriële kommunikasieprotokol wat op die mikrobeheerder gebruik kan word. Ek gebruik dit op die mikrobeheerder om analoog data van die sensor te sien.

Die USART is reeds korrek geprogrammeer, met 'n kop (.h) en bron (.c) lêer. Laai die 2 lêers af en voeg dit by u program in AtmelStudio.

Klik met die rechtermuisknop op die projeknaam in die Solution Explorer. Klik op "Voeg by" -> "Bestaande item …" en kies die 2 afgelaaide lêers.

Stap 5: Gebruik die kode

Die bestuur van die kode
Die bestuur van die kode
Die bestuur van die kode
Die bestuur van die kode

Koppel die mikrobeheerder aan op die rekenaar. Soek 'apparaatbestuurder' op u rekenaar en maak dit oop. Soek "Ports (COM & LPT)" en onthou die COM-poort waarop die mikrokontroleerder is.

Maak PuTTY oop en klik op "Serial", tik die COM-poort wat u van die mikrobeheerder gevind het en klik op "Open". 'N Terminaal verskyn, laat dit vir eers.

Gaan terug na AtmelStudio om die regte hulpmiddel vir die programmering van die mikrobeheerder te kies.

  1. Klik op die hamergereedskap.
  2. Kies die ontfouter/programmeerder "mEDBG*ATML".
  3. Kies die koppelvlak "debugWIRE".
  4. Klik op "begin sonder ontfouting".

Die program sal bou en skryf.

As die program korrek loop, sal u heelgetalwaardes in puTTY sien. Met 'n skroewedraaier kan ek die waarde wat in puTTY gesien word, verander deur die skroef op die sensor te draai. My sensor gee die waardes van 0 tot 1000 wanneer ek die skroef heeltemal draai. Ek draai die skroef na 100 (10%) van die totale waarde. Ek het uitgevind dat dit vir my werk.

Stap 6: Verander sensitiwiteit

Om die gevoeligheid aan te pas wanneer die lig aanskakel, kan u 2 opsies gebruik, maar kies een, nie albei:

  1. Verander sensorskroef;
  2. Verander kodewaarde.

Ek gebruik opsie 2. Die verhoging van die MINIMALWAARDE sal dit minder sensitief maak, afnemend maak dit meer sensitief.

#definieer MINIMAALWAARDE 5

Stap 7: Skakel alles waarvan u hou

Verander enigiets waarvan u hou!
Verander enigiets waarvan u hou!
Verander enigiets waarvan u hou!
Verander enigiets waarvan u hou!

WAARSKUWING: Pas op as u hoër spanning oorskakel

As u tevrede is met die sensitiwiteit van die sensor, kan u die kring verander. Verander die stroombaan soos die prent hierbo. U kan nou alles verander wat u wil!

Aanbeveel: