Mundarija:
- Ta'minotlar
- 1 -qadam: ulanishlar
- 2 -qadam: Dastur yaratish
- 3 -qadam: Kod qo'shish
- 4 -qadam: USART qo'shish
- 5 -qadam: Kodni ishga tushirish
- 6 -qadam: sezgirlikni o'zgartirish
- 7 -qadam: O'zingiz yoqtirgan narsani o'zgartiring
Video: Qopqoqni almashtirish: 7 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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
Barcha simlarni rasmda ko'rsatilgandek ulang.
2 -qadam: 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:
- AtmelStudio -ni oching.
- "Fayl" -"Yangi" -> "Loyiha" ni bosing.
- "GCC C Executable Project" ni bosing. Loyihangizni nomini va saqlanadigan joyini bering. "Ok" ni bosing.
- ATmega328P -ni qidiring. "ATmega328P" -> "OK" ni bosing.
- 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 - 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
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.
- Bolg'a asbobini bosing.
- "MEDBG*ATML" tuzatuvchi/dasturchini tanlang.
- "DebugWIRE" interfeysini tanlang.
- "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:
- Sensor vintini o'zgartiring;
- 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
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:
Batareya bilan ishlaydigan ofis. Quyosh panellari va shamol turbinasi: Sharq/G'arbni avtomatik almashtirish bilan quyosh tizimi: 11 qadam (rasmlar bilan)
Batareya bilan ishlaydigan ofis. Quyosh tizimi Sharq/G'arbning avtomatik panellari va shamol turbinasi bilan almashinuvi bilan: Loyiha: 200 kvadrat metrli ofis batareyali bo'lishi kerak. Ofis, shuningdek, ushbu tizim uchun zarur bo'lgan barcha tekshirgichlar, batareyalar va komponentlarni o'z ichiga olishi kerak. Quyosh va shamol energiyasi batareyalarni zaryad qiladi. Faqat kichik muammo bor
Qopqoqni qanday qilish kerak: 4 qadam
Qanday qilib ilgakni yopishtirish kerak: Common Twist va Lap birikmalarini har doim almashtirishdan charchadingizmi? Men Deion Beardemfl, robototexnika va elektron tizimlar talabasi, va men kuchliroq ta'mirlash uchun ilgakni qanday qilib to'g'ri ulash kerakligini ko'rsataman. bu uzoq umr ko'rishni ta'minlaydi. T ning kamchiliklari
IPhone 6 Plus batareyasini almashtirish: ichki batareyani almashtirish bo'yicha qo'llanma: 12 qadam (rasmlar bilan)
IPhone 6 Plus batareyasini almashtirish: Ichki batareyani almashtirish bo'yicha qo'llanma: Salom bolalar, men bir muddat oldin iPhone 6 batareyasini almashtirish bo'yicha ko'rsatma tayyorladim va bu ko'pchilikka yordam berganga o'xshardi, shuning uchun mana iPhone 6+ uchun qo'llanma. IPhone 6 va 6+ bir xil tuzilishga ega, aniq o'lchamdagi farqdan tashqari. U erda
Mexanik almashtirish bilan Arduino orqali qurilmalarni boshqarish: 8 qadam (rasmlar bilan)
Mexanik kommutatsiya yordamida Arduino orqali qurilmalarni boshqarish: Arduino oddiy mexanik kalitlarni o'rni yordamida qurilmalarni boshqarish uchun ishlatilishi mumkin
Qopqoqni ochmasdan CD pleer batareyalarini zaryadlang: 5 qadam
Qopqoqni ochmasdan CD pleer batareyalarini zaryadlang: Men Sony MP3 CD pleeridan podkastlarni va audio Injilimni, shuningdek MP3 ni tinglash uchun foydalanaman. Menda NiCad AA batareyalari bor. Ular ozod edilar. Ammo, agar men ularni zaryad qilishim kerak bo'lsa, batareya bo'linmasiga kirish uchun qopqog'ini ochishim kerak. Bu mening joyimdagi o'rnimga olib keladi