Turinys:

„Clap-on“jungiklis: 7 žingsniai (su nuotraukomis)
„Clap-on“jungiklis: 7 žingsniai (su nuotraukomis)

Video: „Clap-on“jungiklis: 7 žingsniai (su nuotraukomis)

Video: „Clap-on“jungiklis: 7 žingsniai (su nuotraukomis)
Video: Part 1 - Tom Swift and his Electric Runabout Audiobook by Victor Appleton (Chs 1-12) 2024, Lapkritis
Anonim
Image
Image

Giminaitis vieną kartą manęs paklausė, ar galėčiau sukurti jungiklį, kuris reaguotų į plojimą rankomis. Taigi aš užsisakiau tam tikrų dalykų, kad galėčiau sukurti projektą, ir nusprendžiau padaryti pamokomą, kad kiekvienas galėtų turėti tokį nuostabų jungiklį.

Mikrovaldiklis yra šio projekto smegenys. Garso jutiklis prijungtas prie mikrovaldiklio, jutiklis siunčia analoginius duomenis, kai aptinkamas garsas. Mikrovaldiklis yra užprogramuotas aptikti didelius garso skirtumus. Kai aptinkamas pakankamai didelis skirtumas, ty plojimas, mikrovaldiklis siunčia signalą į relę. Relė įsijungia ir lemputė įsijungia. Plojant antrą kartą, lemputė vėl užges.

Prekės

Fiziniai dalykai:

  • 1x „ATmega328P Xplained Mini“su kabeliu programavimui
  • 1x 5 V relės modulis 1 kanalas (KY-019 arba panašus)
  • 1x garso jutiklio modulis (KY-038 ar panašus)
  • 1x duonos lenta
  • 6x vyriškas-vyriškas trumpiklis
  • 1x šviesos lizdas su laidu (arba bet kuris kitas prietaisas, kurį norite įjungti)
  • 1x lemputė
  • 1x rezistorius* (naudoju 220 omų)
  • 1x LED*

Programinė įranga (atsisiųsti):

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

* Bandymo tikslais

1 žingsnis: jungtys

Programos kūrimas
Programos kūrimas

Prijunkite visus laidus, kaip parodyta paveikslėlyje.

2 žingsnis: programos sukūrimas

Programos kūrimas
Programos kūrimas
Programos kūrimas
Programos kūrimas

Man patinka koduoti C, todėl šis projektas parašytas C.

Jei dar neatsisiuntėte ir neįdiegėte reikiamos programinės įrangos, atsisiųskite ir įdiekite ją dabar.

Dabar atlikite šiuos veiksmus:

  1. Atidarykite „AtmelStudio“.
  2. Spustelėkite „Failas“-> „Naujas“-> „Projektas“.
  3. Spustelėkite „GCC C vykdomąjį projektą“. Suteikite savo projektui pavadinimą ir vietą, kurią norite saugoti. Spustelėkite „Gerai“.
  4. Ieškokite ATmega328P. Spustelėkite „ATmega328P“-> „Gerai“.
  5. Spustelėkite Sprendimų naršyklę „main.c“, kad atidarytumėte pagrindinę programą.

3 žingsnis: kodo pridėjimas

Ištrinkite kodą, jau esantį main.c

Nukopijuokite ir įklijuokite šį kodą į main.c

#define F_CPU 16000000

#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); dvigubas val1, val2; int main (void) {// Inicijuokite USART USART_init (9600); USART_putstr ("#USART init / n"); // Inicijuoti ADC InitADC (); USART_putstr ("#ADC init / n"); // PORTC išvesties PC1 kaištis, likusi įvestis. DDRC = 0b00000010; // nustatyti pradines vertes kaip PORTC low. PORTC = 0b00000000; while (1) {// skaitymo potenciometro reikšmė // skaityti reikšmę ir saugoti val1 val1 = ReadADC (0); _delay_ms (1); // skaityti kitą reikšmę en store in val2 val2 = ReadADC (0); char str [10]; // ReadADC () grąžina vertę sveikais skaičiais. Jei norime derinti arba pamatyti glaisto reikšmę, // reikšmę reikia konvertuoti į simbolius, kad USART galėtų ją atspausdinti. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // jei 2 reikšmės turi tam tikrą skirtumą. Aptiktas garsas ir perjungiamas prievadas. // MINIMALVALUE galima pakeisti, padidinus, jis bus mažiau jautrus. Sumažinus, jis taps jautresnis, jei (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Pasirinkite Vref = AVcc ADMUX | = (1 << REFS0); // nustatykite prescaller į 128 ir įgalinkite ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// pasirinkite ADC kanalą su apsaugine kauke ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // vieno konvertavimo režimas ADCSRA | = (1 << ADSC); // palaukti, kol ADC konvertavimas bus baigtas, o (ADCSRA & (1 << ADSC)); grąžinti ADC; }

4 veiksmas: pridėkite USART

Pridedamas USART
Pridedamas USART

USART yra nuoseklaus ryšio protokolas, kurį galima naudoti mikrovaldiklyje. Aš naudoju jį mikrovaldiklyje, kad matyčiau jutiklio analoginius duomenis.

USART jau yra teisingai užprogramuotas, jame yra antraštės (.h) ir šaltinio (.c) failas. Atsisiųskite 2 failus ir pridėkite juos prie savo programos „AtmelStudio“.

Sprendimų naršyklėje dešiniuoju pelės mygtuku spustelėkite projekto pavadinimą. Spustelėkite „Pridėti“-> „Esamas elementas…“ir pasirinkite 2 atsisiųstus failus.

5 žingsnis: paleiskite kodą

Kodo vykdymas
Kodo vykdymas
Kodo vykdymas
Kodo vykdymas

Prijunkite mikrovaldiklį prie kompiuterio. Kompiuteryje ieškokite „Device Manager“ir atidarykite. Ieškokite „Uostai (COM ir LPT)“ir prisiminkite, koks COM prievadas yra įjungtas.

Atidarykite „PuTTY“ir spustelėkite „Serial“, įveskite mikrovaldiklio COM prievadą ir spustelėkite „Open“. Pasirodo terminalas, palikite jį kol kas.

Grįžkite į „AtmelStudio“ir pasirinkite tinkamą mikrovaldiklio programavimo įrankį.

  1. Spustelėkite plaktuko įrankį.
  2. Pasirinkite „mEDBG*ATML“derintuvą/programuotoją.
  3. Pasirinkite sąsają „debugWIRE“.
  4. Spustelėkite „pradėti be derinimo“.

Programa bus sukurta ir parašyta.

Kai programa veikia teisingai, matysite sveiko skaičiaus reikšmes puTTY. Naudodamas atsuktuvą, aš galiu pakeisti vertę, matomą puTTY, sukdamas jutiklio varžtą. Mano jutiklis duoda vertes nuo 0 iki 1000, kai sukamas varžtas iki galo. Aš pasuku varžtą iki 100 (10%) visos vertės. Aš sužinojau, kad tai man tinka.

6 žingsnis: pakeiskite jautrumą

Norėdami reguliuoti jautrumą įjungus šviesą, galite naudoti 2 parinktis, bet pasirinkti vieną, o ne abu:

  1. Keisti jutiklio varžtą;
  2. Pakeiskite kodo vertę.

Aš naudoju 2 variantą. Padidinus MINIMALVALUE, jis tampa mažiau jautrus, o sumažinus - jautresnis.

#define MINIMALVALUE 5

7 žingsnis: pakeiskite viską, kas jums patinka

Keisk viską, kas tau patinka!
Keisk viską, kas tau patinka!
Keisk viską, kas tau patinka!
Keisk viską, kas tau patinka!

ĮSPĖJIMAS: Būkite atsargūs, kai perjungiate aukštesnę įtampą

Kai esate patenkinti jutiklio jautrumu, galite pakeisti grandinę. Pakeiskite grandinę, kaip parodyta aukščiau. Dabar galite pakeisti viską, kas jums patinka!

Rekomenduojamas: