INHOUDSOPGAWE:
- Voorrade
- Stap 1: Verbindings
- Stap 2: Skep die program
- Stap 3: Voeg kode by
- Stap 4: Voeg USART by
- Stap 5: Gebruik die kode
- Stap 6: Verander sensitiwiteit
- Stap 7: Skakel alles waarvan u hou
Video: Opklapskakelaar: 7 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
'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
Verbind al die drade soos in die prentjie getoon.
Stap 2: Skep 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:
- Maak AtmelStudio oop.
- Klik op "File" -> "New" -> "Project".
- Klik op "GCC C uitvoerbare projek". Gee jou projek 'n naam en plek om te stoor. Klik op "Ok".
- Soek die ATmega328P. Klik op "ATmega328P" -> "Ok".
- 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
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
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.
- Klik op die hamergereedskap.
- Kies die ontfouter/programmeerder "mEDBG*ATML".
- Kies die koppelvlak "debugWIRE".
- 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:
- Verander sensorskroef;
- 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
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:
Neem wonderlike foto's met 'n iPhone: 9 stappe (met foto's)
Neem wonderlike foto's met 'n iPhone: die meeste van ons dra deesdae 'n slimfoon oral, daarom is dit belangrik om te weet hoe u u slimfoonkamera kan gebruik om fantastiese foto's te neem! Ek het net 'n paar jaar 'n slimfoon gehad, en ek hou daarvan om 'n ordentlike kamera te hê om dinge te dokumenteer wat ek
Raspberry Pi -boks met koelventilator met CPU -temperatuuraanwyser: 10 stappe (met foto's)
Raspberry Pi Box of Cooling FAN Met CPU Temperature Indicator: Ek het framboos pi (Hierna as RPI) CPU temperatuur aanwyser stroombaan in die vorige projek bekendgestel. Die kring wys eenvoudig RPI 4 verskillende CPU temperatuur vlakke soos volg.- Groen LED aangeskakel wanneer CPU temperatuur is binne 30 ~
Howto: Raspberry PI 4 Headless (VNC) installeer met Rpi-imager en foto's: 7 stappe (met foto's)
Howto: Raspberry PI 4 Headless (VNC) installeer met Rpi-imager en foto's: ek is van plan om hierdie Rapsberry PI te gebruik in 'n klomp prettige projekte in my blog. Kyk gerus daarna. Ek wou weer my Raspberry PI gebruik, maar ek het nie 'n sleutelbord of muis op my nuwe plek gehad nie. Dit was 'n rukkie sedert ek 'n Framboos opgestel het
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer