Mundarija:

Qopqoqni almashtirish: 7 qadam (rasmlar bilan)
Qopqoqni almashtirish: 7 qadam (rasmlar bilan)

Video: Qopqoqni almashtirish: 7 qadam (rasmlar bilan)

Video: Qopqoqni almashtirish: 7 qadam (rasmlar bilan)
Video: Judayam chiroyli kod#3 2024, Noyabr
Anonim
Image
Image

Bir marta qarindoshim mendan sizning qo'llaringizni qarsak chalishga javob beradigan kalitni yaratishim mumkinmi, deb so'radi. Men loyiha yaratish uchun ba'zi narsalarga buyurtma berdim va hamma shunday ajoyib kalitga ega bo'lishi uchun ko'rsatma berishga qaror qildim.

Mikrokontroller - bu loyihaning miyasi. Ovoz sensori mikrokontrollerga ulangan, ovoz aniqlanganda sensor analog ma'lumotlarni yuboradi. Mikrokontroller ovozdagi katta farqlarni aniqlash uchun dasturlashtirilgan. Qachonki, qarsak chalishni anglatadigan etarlicha katta farq aniqlansa, mikrokontroller o'z o'rni signalini yuboradi. O'rnimizni o'chadi va chiroq yonadi. Ikkinchi marta qarsak chalganda, chiroq yana o'chadi.

Ta'minotlar

Jismoniy narsalar:

  • Dasturlash kabeli bo'lgan 1x ATmega328P Xplained Mini
  • 1x 5V o'rni moduli 1 kanalli (KY-019 yoki shunga o'xshash)
  • 1x Ovoz sensori moduli (KY-038 yoki shunga o'xshash)
  • 1x non paneli
  • 6x Erkak-Erkak o'tish kabeli
  • 1x simli yorug'lik rozetkasi (yoki siz yoqmoqchi bo'lgan boshqa qurilma)
  • 1x lampochka
  • 1x qarshilik* (men 220 Ohmdan foydalanaman)
  • 1x LED*

Dasturiy ta'minot (yuklab olish):

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

* Sinov maqsadida

1 -qadam: ulanishlar

Dastur yaratish
Dastur yaratish

Barcha simlarni rasmda ko'rsatilgandek ulang.

2 -qadam: Dastur yaratish

Dastur yaratish
Dastur yaratish
Dastur yaratish
Dastur yaratish

Men C da kod yozishni yaxshi ko'raman, shuning uchun bu loyiha C da yozilgan.

Agar siz hali kerakli dasturiy ta'minotni yuklab olmagan va o'rnatmagan bo'lsangiz, uni hoziroq yuklab oling va o'rnating.

Endi quyidagi qadamlarni bajaring:

  1. AtmelStudio -ni oching.
  2. "Fayl" -"Yangi" -> "Loyiha" ni bosing.
  3. "GCC C Executable Project" ni bosing. Loyihangizni nomini va saqlanadigan joyini bering. "Ok" ni bosing.
  4. ATmega328P -ni qidiring. "ATmega328P" -> "OK" ni bosing.
  5. Asosiy dasturni ochish uchun "main.c" da Solution Explorer -ni bosing.

3 -qadam: Kod qo'shish

Main.c da mavjud bo'lgan kodni o'chirib tashlang

Quyidagi kodni main.c -ga nusxalash va joylashtirish

#F_CPU 16000000 ni aniqlang

#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCannel); er -xotin val1, val2; int main (void) {// USART USART_init (9600) ni ishga tushiring; USART_putstr ("#USART init / n"); // ADC InitADC () ni ishga tushiring; USART_putstr ("#ADC init / n"); // PORTC chiqishining PC1 pimi, qolgan qismi esa. DDRC = 0b00000010; // boshlang'ich qiymatlarni PORTC pastiga qo'ying. PORTC = 0b00000000; while (1) {// potentsiometr qiymatini o'qish // o'qish qiymati va val1da saqlash val1 = ReadADC (0); _delay_ms (1); // val2 da saqlanadigan keyingi qiymatni o'qish val2 = ReadADC (0); char str [10]; // ReadADC () qiymatni butun sonlarga qaytaradi. Agar biz disk raskadrovka qilmoqchi bo'lsak yoki macun qiymatini ko'rishni istasak, // qiymatni belgilarga aylantirish kerak, shunda USART uni chop etishi mumkin. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // agar 2 qiymat ma'lum bir farqga ega bo'lsa. Ovoz aniqlandi va portni o'zgartiradi. // MINIMALVALUE ni o'zgartirish mumkin, bu esa uning sezgirligini pasaytiradi. Kamaytirish uni yanada sezgir qiladi, agar (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Vref = AVcc ADMUX | = (1 << REFS0) ni tanlang; // oldindan yuklovchini 128 ga o'rnating va ADC ADCSRA ni yoqing | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// xavfsizlik niqobli ADC kanalini tanlang ADMUX = (ADMUX & 0xF0) | (AD kanal va 0x0F); // bitta aylantirish rejimi ADCSRA | = (1 << ADSC); // ADC konvertatsiyasi tugashini kuting (ADCSRA & (1 << ADSC)); ADCni qaytarish; }

4 -qadam: USART qo'shish

USART qo'shilmoqda
USART qo'shilmoqda

USART - bu mikrokontrolderda ishlatilishi mumkin bo'lgan ketma -ket aloqa protokoli. Sensordan analog ma'lumotlarni ko'rish uchun men uni mikrokontrollerda ishlataman.

USART sarlavhasi (.h) va manba (.c) faylini o'z ichiga olgan holda allaqachon to'g'ri dasturlashtirilgan. 2 ta faylni yuklab oling va ularni AtmelStudio dasturiga qo'shing.

Solution Explorer-da loyiha nomini o'ng tugmasini bosing. "Qo'shish" -> "Mavjud element …" ni bosing va yuklab olingan 2 ta faylni tanlang.

5 -qadam: Kodni ishga tushirish

Kodni ishga tushirish
Kodni ishga tushirish
Kodni ishga tushirish
Kodni ishga tushirish

Mikrokontrollerni kompyuterga ulang. Kompyuteringizda "qurilma menejeri" ni toping va oching. "Portlar (COM & LPT)" ni toping va mikrokontrollerning COM-portini eslang.

PuTTY-ni oching va "ketma-ket" ni bosing, siz mikrokontrollerdan topilgan COM-portini kiriting va "Ochish" tugmasini bosing. Terminal ochiladi, hozircha qoldiring.

AtmelStudio -ga qaytib, mikrokontrollerni dasturlash uchun to'g'ri vositani tanlang.

  1. Bolg'a asbobini bosing.
  2. "MEDBG*ATML" tuzatuvchi/dasturchini tanlang.
  3. "DebugWIRE" interfeysini tanlang.
  4. "Tuzatishsiz boshlash" ni bosing.

Dastur tuzadi va yozadi.

Agar dastur to'g'ri ishlayotgan bo'lsa, puTTY -da butun sonlarni ko'rasiz. Tornavida yordamida men sensordagi vintni burab puTTY -da ko'rsatilgan qiymatni o'zgartiraman. Vintni oxirigacha aylantirganda sensori 0 dan 1000 gacha qiymatlarni beradi. Men vintni umumiy qiymatning 100 (10%) ga aylantiraman. Bu men uchun ishlayotganini bilib oldim.

6 -qadam: sezgirlikni o'zgartirish

Chiroq yoqilganda sezuvchanlikni sozlash uchun siz 2 variantni ishlatishingiz mumkin, lekin ikkalasini ham emas, birini tanlang:

  1. Sensor vintini o'zgartiring;
  2. Kod qiymatini o'zgartirish.

Men 2 -variantni ishlataman. MINIMALVALUE ni oshirish sezgirlikni kamaytiradi, kamaytirsa sezgir qiladi.

#MINIMALVALUE 5 ni aniqlang

7 -qadam: O'zingiz yoqtirgan narsani o'zgartiring

O'zingiz yoqtirgan narsani o'zgartiring!
O'zingiz yoqtirgan narsani o'zgartiring!
O'zingiz yoqtirgan narsani o'zgartiring!
O'zingiz yoqtirgan narsani o'zgartiring!

OGOHLANTIRISH: yuqori kuchlanishni o'zgartirganda ehtiyot bo'ling

Sensorning sezgirligidan mamnun bo'lsangiz, siz sxemani o'zgartirishingiz mumkin. Yuqoridagi rasmdagi kabi sxemani o'zgartiring. Endi siz xohlagan narsani o'zgartirishingiz mumkin!

Tavsiya: