Sisukord:

Klapitav lüliti: 7 sammu (piltidega)
Klapitav lüliti: 7 sammu (piltidega)

Video: Klapitav lüliti: 7 sammu (piltidega)

Video: Klapitav lüliti: 7 sammu (piltidega)
Video: 😬 Кошмарный двигатель для "заряженных" Mazda: чем шокирует форсированный 2.3 DISI Turbo? 2024, Juuli
Anonim
Image
Image

Üks sugulane küsis minult üks kord, kas ma saaksin luua lüliti, mis reageerib teie käte plaksutamisele. Nii et ma tellisin projekti loomiseks mõned asjad ja otsustasin teha juhendatava, et kõigil oleks selline vinge lüliti.

Mikrokontroller on selle projekti aju. Mikrokontrolleriga on ühendatud heliandur, andur saadab heli tuvastamisel analoogandmeid. Mikrokontroller on programmeeritud tuvastama suuri erinevusi helides. Kui tuvastatakse piisavalt suur erinevus, mis tähendab plaksutamist, saadab mikrokontroller releele signaali. Relee lülitub sisse ja valgus süttib. Teist korda plaksutades kustub tuli uuesti.

Tarvikud

Füüsilised asjad:

  • 1x ATmega328P Xplained Mini koos kaabliga programmeerimiseks
  • 1x 5v releemoodul 1 kanal (KY-019 vms)
  • 1x helianduri moodul (KY-038 või sarnane)
  • 1x leivalaud
  • 6x isane-isane hüppaja
  • 1x pistikupesa juhtmega (või mõni muu seade, mille soovite sisse lülitada)
  • 1x lambipirn
  • 1x takisti* (kasutan 220 oomi)
  • 1x LED*

Tarkvara (allalaadimine):

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

* Testimiseks

Samm: ühendused

Programmi loomine
Programmi loomine

Ühendage kõik juhtmed, nagu pildil näidatud.

2. samm: programmi loomine

Programmi loomine
Programmi loomine
Programmi loomine
Programmi loomine

Mulle meeldib koodida C -s, nii et see projekt on kirjutatud C -s.

Kui te pole veel vajalikku tarkvara alla laadinud ja installinud, laadige see kohe alla ja installige.

Nüüd järgige järgmisi samme.

  1. Avage AtmelStudio.
  2. Klõpsake "Fail" -> "Uus" -> "Projekt".
  3. Klõpsake "GCC C käivitatav projekt". Andke oma projektile salvestamiseks nimi ja asukoht. Klõpsake "OK".
  4. Otsi ATmega328P. Klõpsake "ATmega328P" -> "OK".
  5. Põhiprogrammi avamiseks klõpsake "Main.c" lahenduste uurijas.

Samm: koodi lisamine

Kustutage kood, mis on juba main.c

Kopeerige ja kleepige järgmine kood main.c

#define F_CPU 16000000

#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); kahekordne val1, val2; int main (void) {// Initsialiseeri USART USART_init (9600); USART_putstr ("#USART init / n"); // Initsialiseeri ADC InitADC (); USART_putstr ("#ADC init / n"); // PC1 PORTC väljundi pin, ülejäänud sisend. DDRC = 0b00000010; // seadke algväärtused PORTC madalaks. PORTC = 0b00000000; while (1) {// potentsiomeetri väärtuse lugemine // väärtuse lugemine ja salvestamine val1 val1 = ReadADC (0); _viivitus_ms (1); // loe järgmist väärtust en store in val2 val2 = ReadADC (0); char str [10]; // ReadADC () annab väärtuse tagasi täisarvudena. Kui tahame siluda või näha väärtust kittil, // tuleb väärtus teisendada tähemärkideks, et USART saaks selle printida. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // kui kahel väärtusel on teatav erinevus. Tuvastab heli ja lülitab pordi ümber. // MINIMAALVÄÄRTUST saab muuta, suurendamine muudab selle vähem tundlikuks. Vähendamine muudab selle tundlikumaks, kui (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Vali Vref = AVcc ADMUX | = (1 << REFS0); // seadistage eelvalija 128 ja lubage ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// valige ADC -kanal turvamaskiga ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // ühe teisendusrežiimi ADCSRA | = (1 << ADSC); // oodake, kuni ADC teisendamine on lõpule viidud, samas (ADCSRA & (1 << ADSC)); tagasta ADC; }

4. samm: USART -i lisamine

USART -i lisamine
USART -i lisamine

USART on jadaühendusprotokoll, mida saab kasutada mikrokontrolleril. Ma kasutan seda mikrokontrolleril, et näha anduri analoogandmeid.

USART on juba õigesti programmeeritud, sisaldades päise (.h) ja lähtefaili (.c). Laadige need kaks faili alla ja lisage need AtmelStudio programmi.

Paremklõpsake Solution Exploreris projekti nimel. Klõpsake "Lisa" -> "Olemasolev üksus …" ja valige 2 allalaaditud faili.

Samm: koodi käivitamine

Koodi käitamine
Koodi käitamine
Koodi käitamine
Koodi käitamine

Ühendage mikrokontroller arvutiga. Otsige oma arvutist "seadmehaldur" ja avage see. Otsige üles "Ports (COM & LPT)" ja pidage meeles COM-porti, milles mikrokontroller on sisse lülitatud.

Avage PuTTY ja klõpsake "Serial", tippige mikrokontrolleri leitud COM-port ja klõpsake "Open". Ilmub terminal, jätke see praegu.

Minge tagasi AtmelStudio juurde, et valida õige tööriist mikrokontrolleri programmeerimiseks.

  1. Klõpsake haameritööriista.
  2. Valige silur/programmeerija "mEDBG*ATML".
  3. Valige liides "debugWIRE".
  4. Klõpsake "alusta ilma silumiseta".

Programm ehitatakse ja kirjutatakse.

Kui programm töötab õigesti, näeksite puTTY -s täisarvulisi väärtusi. Kruvikeeraja abil saan muuta puTTY -s nähtud väärtust, keerates anduri kruvi. Minu andur annab kruvi lõpuni keerates väärtused 0 kuni 1000. Keeran kruvi 100 (10%) koguväärtusest. Olen avastanud, et see töötab minu jaoks.

6. samm: muutke tundlikkust

Valguse sisselülitamisel tundlikkuse reguleerimiseks võite kasutada kahte võimalust, kuid mitte ühte:

  1. Muutke anduri kruvi;
  2. Muuda koodi väärtust.

Ma kasutan valikut 2. MINIMAALVÄÄRTUSE suurendamine muudab selle vähem tundlikuks, vähendamine muudab selle tundlikumaks.

#defineeri MINIMAALVÄÄRTUS 5

Samm: vahetage kõik, mis teile meeldib

Vaheta kõike, mis sulle meeldib!
Vaheta kõike, mis sulle meeldib!
Vaheta kõike, mis sulle meeldib!
Vaheta kõike, mis sulle meeldib!

HOIATUS: olge kõrgema pinge vahetamisel ettevaatlik

Kui olete anduri tundlikkusega rahul, saate vooluringi muuta. Muutke vooluringi nagu ülaltoodud pildil. Nüüd saate vahetada kõike, mis teile meeldib!

Soovitan: