فهرست مطالب:

سوئیچ Clap-on: 7 مرحله (همراه با تصاویر)
سوئیچ Clap-on: 7 مرحله (همراه با تصاویر)

تصویری: سوئیچ Clap-on: 7 مرحله (همراه با تصاویر)

تصویری: سوئیچ Clap-on: 7 مرحله (همراه با تصاویر)
تصویری: اینو اصلا به جیدال نشون ندین 🥲😐🥲 #مدگل #جیدال 2024, نوامبر
Anonim
Image
Image

یکی از اقوام من یک بار از من پرسید که آیا می توانم سوئیچی ایجاد کنم که در برابر زدن دست شما واکنش نشان دهد. بنابراین من برخی چیزها را برای ایجاد یک پروژه سفارش دادم و تصمیم گرفتم که یک برنامه آموزشی را ایجاد کنم تا همه بتوانند یک سوئیچ عالی مانند آن داشته باشند.

میکروکنترلر مغز این پروژه است. یک سنسور صدا به میکروکنترلر متصل است ، هنگامی که صدا تشخیص داده می شود ، اطلاعات آنالوگ را ارسال می کند. میکروکنترلر طوری برنامه ریزی شده است که تفاوت های زیادی در صدا تشخیص دهد. هنگامی که تفاوت به اندازه کافی بالا تشخیص داده شود ، به معنی کف زدن ، میکروکنترلر سیگنالی را به رله ارسال می کند. رله روشن می شود و چراغ روشن می شود. وقتی برای بار دوم دست می زنید ، چراغ دوباره خاموش می شود.

تدارکات

موارد فیزیکی:

  • 1x ATmega328P Xplained Mini با کابل برای برنامه نویسی
  • ماژول رله 1x 5V 1 کانال (KY-019 یا مشابه)
  • ماژول سنسور صدا 1x (KY-038 یا مشابه)
  • 1x تخته نان
  • 6 بار سیم بلوز مردانه و مردانه
  • 1 برابر سوکت نور با سیم (یا هر دستگاه دیگری که می خواهید روشن کنید)
  • 1 برابر لامپ
  • مقاومت 1 برابر* (من از 220 اهم استفاده می کنم)
  • 1x LED*

نرم افزار (بارگیری):

  • AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
  • بتونه (www.putty.org)*

* جهت آزمایش

مرحله 1: اتصالات

ایجاد برنامه
ایجاد برنامه

تمام سیمها را همانطور که در تصویر نشان داده شده است وصل کنید.

مرحله 2: ایجاد برنامه

ایجاد برنامه
ایجاد برنامه
ایجاد برنامه
ایجاد برنامه

من دوست دارم در C کد کنم بنابراین این پروژه با C نوشته شده است.

اگر هنوز نرم افزار مورد نیاز را بارگیری و نصب نکرده اید ، اکنون آن را بارگیری و نصب کنید.

حالا مراحل بعدی را دنبال کنید:

  1. AtmelStudio را باز کنید.
  2. روی "پرونده" -> "جدید" -> "پروژه" کلیک کنید.
  3. روی "پروژه اجرایی GCC C" کلیک کنید. به پروژه خود نام و مکان ذخیره بدهید. روی "Ok" کلیک کنید.
  4. ATmega328P را جستجو کنید. روی "ATmega328P" -> "خوب" کلیک کنید.
  5. روی Solution Explorer در "main.c" کلیک کنید تا برنامه اصلی باز شود.

مرحله 3: اضافه کردن کد

کد موجود در main.c را حذف کنید

کد زیر را در main.c کپی و جایگذاری کنید

#تعریف F_CPU 16000000

#include #include #include #include "usart.h" #deinine MINIMALVALUE 5 void InitADC ()؛ uint16_t ReadADC (uint8_t ADCchannel) ؛ دوگانه val1، val2؛ int main (void) {// مقداردهی اولیه USART USART_init (9600) ؛ USART_putstr ("#USART init / n")؛ // مقداردهی اولیه ADC InitADC ()؛ USART_putstr ("#ADC init / n")؛ // پین PC1 خروجی PORTC ، بقیه ورودی. DDRC = 0b00000010 ؛ // مقادیر اولیه را روی PORTC low تنظیم کنید. PORTC = 0b00000000؛ while (1) {// خواندن مقدار پتانسیومتر // خواندن مقدار و ذخیره در val1 val1 = ReadADC (0)؛ _delay_ms (1) ؛ // read next value en store in val2 val2 = ReadADC (0)؛ خیابان شار [10]؛ // ReadADC () مقدار را در اعداد صحیح باز می گرداند. اگر می خواهیم مقدار بتونه را اشکال زدایی کنیم یا ببینیم ، // مقدار باید به نویسه تبدیل شود تا USART بتواند آن را چاپ کند. itoa (val1، str، 10)؛ USART_putstr (خیابان) ؛ USART_putstr ("\ n")؛ // اگر دو مقدار تفاوت خاصی داشته باشند. صدا تشخیص داده می شود و پورت را تغییر می دهد. // MINIMALVALUE را می توان تغییر داد ، افزایش آن باعث می شود حساسیت کمتری ایجاد شود. کاهش آن را حساس تر می کند اگر (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010؛ // LIGHT ON UC _delay_ms (200) ؛ }}} void InitADC () {// Vref = AVcc ADMUX | = (1 << REFS0) را انتخاب کنید ؛ // prescaller را روی 128 تنظیم کنید و ADC ADCSRA را فعال کنید = = (1 << ADPS2] | (1 << ADPS1] | (1 << ADPS0] | (1 << ADEN) ؛ } uint16_t ReadADC (uint8_t ADCchannel) {// انتخاب کانال ADC با ماسک ایمنی ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F) ؛ // حالت تبدیل واحد ADCSRA | = (1 << ADSC) ؛ // منتظر بمانید تا تبدیل ADC کامل شود (ADCSRA & (1 << ADSC))؛ ADC بازگشت؛ }

مرحله 4: اضافه کردن USART

در حال افزودن USART
در حال افزودن USART

USART یک پروتکل ارتباطی سریالی است که می تواند روی میکروکنترلر استفاده شود. من برای مشاهده داده های آنالوگ از سنسور روی میکروکنترلر از آن استفاده می کنم.

USART در حال حاضر به درستی برنامه ریزی شده است ، حاوی یک سربرگ (.h) و فایل منبع (.c). 2 فایل را بارگیری کرده و در AtmelStudio به برنامه خود اضافه کنید.

روی نام پروژه در Solution Explorer راست کلیک کنید. روی "افزودن" -> "مورد موجود …" کلیک کنید و 2 فایل بارگیری شده را انتخاب کنید.

مرحله 5: اجرای کد

اجرای کد
اجرای کد
اجرای کد
اجرای کد

میکروکنترلر را به کامپیوتر وصل کنید. "مدیر دستگاه" را در رایانه خود جستجو کرده و آن را باز کنید. به دنبال "Ports (COM & LPT)" بگردید و پورت COM را که میکروکنترلر روشن است به خاطر بسپارید.

PuTTY را باز کرده و روی "Serial" کلیک کنید ، پورت COM را که از میکروکنترلر پیدا کرده اید تایپ کرده و روی "باز" کلیک کنید. پایانه ای ظاهر می شود ، فعلاً بگذارید.

برای انتخاب ابزار مناسب برای برنامه نویسی میکروکنترلر ، به AtmelStudio بازگردید.

  1. روی ابزار چکش کلیک کنید.
  2. اشکال زدایی/برنامه نویس "mEDBG*ATML" را انتخاب کنید.
  3. رابط "debugWIRE" را انتخاب کنید.
  4. روی "شروع بدون اشکال زدایی" کلیک کنید.

برنامه می سازد و می نویسد.

وقتی برنامه به درستی اجرا شود ، مقادیر صحیح را در puTTY مشاهده خواهید کرد. با استفاده از پیچ گوشتی می توان با چرخاندن پیچ روی سنسور مقدار مشاهده شده در puTTY را تغییر داد. سنسور من هنگام چرخاندن پیچ تا انتها مقادیر 0 تا 1000 را می دهد. من پیچ را به 100 (10)) از مقدار کل می چرخانم. من متوجه شده ام که این برای من کار می کند.

مرحله 6: تغییر حساسیت

برای تنظیم حساسیت هنگام روشن شدن چراغ می توانید از 2 گزینه استفاده کنید ، اما یکی را انتخاب کنید نه هر دو:

  1. تغییر پیچ سنسور ؛
  2. تغییر مقدار کد

من از گزینه 2 استفاده می کنم. افزایش MINIMALVALUE باعث می شود حساسیت آن کمتر شود ، کاهش آن باعث حساسیت بیشتر می شود.

#تعریف MINIMALVALUE 5

مرحله 7: هر چیزی را که دوست دارید تغییر دهید

هر چیزی را که دوست دارید تغییر دهید!
هر چیزی را که دوست دارید تغییر دهید!
هر چیزی را که دوست دارید تغییر دهید!
هر چیزی را که دوست دارید تغییر دهید!

هشدار: هنگام تعویض ولتاژهای بالاتر مراقب باشید

وقتی از حساسیت سنسور راضی هستید می توانید مدار را تغییر دهید. مدار را مانند تصویر بالا تغییر دهید. اکنون می توانید هر چیزی را که دوست دارید تغییر دهید!

توصیه شده: