خانه

دوره‌ها

بوت کمپ

بلاگ

حساب کاربری

خانه

دوره‌ها

بوت کمپ

بلاگ

حساب کاربری

تنظیم کننده خودکار صدا با آردوینو بسازید

کارگاه کامپیوترونیک ، مقالات
ارسال شده توسط siavash.nasaj@gmail.com
1403/08/24
6.97k بازدید
پروژه تنظیم کننده خودکار صدا با آردوینو بسازید کامپیوترونیک

تنظیم کننده خودکار صدا با آردوینو بسازید

بسیاری از ما شاید با کم و زیاد کردن صدای تلویزیون در هنگام مشاهده فیلم ها داشته باشیم.

بسیاری دیده ایم که در هنگام مشاهده فیلم در زمان پخش شدن آهنگ صدا بسیار زیاد میشود و در بخش هایی کم میشود.

اما در پروژه امروز کارگاه کامپیوترونیک میخواهیم با کمک آردوینو یک دستگاه ساده اما کارآمد بسازیم و طراحی کنیم.

تنظیم کننده خودکار صدا با آردوینو بسازید

جدول مراحل ساخت

مرحله اول : قطعات مورد نیاز

قطعات مورد نیاز

قطعات مورد نیاز ساخت کنترل کننده صدا
  • باتری لیتیوم پلیمر 3.7 ولت ، 600 میلی آمپر
  • ماژول شارژر باتری لیتیومی TP4056
  • سوییچ خاموش و روشن کردن کشویی
  • رگولاتور 3.3 ولت MCP1700
  • خازن 1 میکروفاراد
  • مجموعه ای از مقاومت ها به مدار توجه کنید
  • میکروفون
  • آپ امپ MCP602
  • پتانسیومتر با توجه به مدار
  • LED IR مادون قرمز فرستنده3 میلی متری
  • چراغ LED کلاهی 3 میلی متری قرمز
  • آردوینو Pro mini
جهت سفارش قطعات کلیک نمایید

مرحله دوم : مدار را بسازید

با توجه به مدار زیر و عکس های مربوط به آن به آسانس مدار را بسازید.

پیشنهاد میکنم ابتدا بر روی برد بورد تست نمایید و سپس بر روی فیبر مدار چاپی انجام دهید.

مرحله سوم : کد های آردوینو آپلود نمایید

در این مرحله کدهای زیر را بر روی آردوینو از طریق FTDI آپلود نمایید.

توجه کنید تنظیمات باید بر روی 3.3 ولت و 8MHz باشد.

برای کا با کد ها به کتابخانه زیر هم نیاز دارید :

دانلود کتابخانه

				
					//https://computeronic.ir

#include <IRremote.h>
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
int deadband;
int react;
int audio;
byte audiocounter = 0;
byte loudercounter = 0;
byte volcounter = 0;
byte timercounter = 0;
byte timercountervol = 0;
byte silencecounter = 0;
bool trig = 0;
bool lowertrig = 0;
bool lowertrigtimer = 0;
bool volup = 0;
byte i = 0;


void setup() {
  Serial.begin(250000);
  sbi(ADCSRA, ADPS2);
  cbi(ADCSRA, ADPS1);
  cbi(ADCSRA, ADPS0);
  TCCR1A = 0;
  TCCR1B = 0;
  TCCR1B |= (1 << CS12) | (1 << WGM12);
  TIMSK1 |= (1 << OCIE1A);
  OCR1A = 31250;
  TCCR2A = 0;
  TCCR2B = 0;
  TCCR2A |= (1 << WGM21);
  TCCR2B |= (1 << CS20) | (1 << CS21) | (1 << CS22) ;
  TIMSK2 |= (1 << OCIE2A);
  IrSender.begin(9, DISABLE_LED_FEEDBACK); //IR LED
  pinMode(8, OUTPUT); //Status
  digitalWrite(8, LOW);
  pinMode(A1, INPUT); //Audio
  pinMode(A2, INPUT); //Deadband
  pinMode(A3, INPUT); //React
  pinMode(A7, INPUT); //undervoltage
  deadband = map(analogRead(A2), 0, 1023, 511, 0);
  OCR2A = map(analogRead(A3), 1023, 0, 255, 127);
}

void loop() {

  Serial.print(0);
  Serial.print(" ");
  Serial.print(1023);
  Serial.print(" ");
  Serial.print(analogRead(A1));
  Serial.print(" ");
  Serial.print(511 + deadband);
  Serial.print(" ");
  Serial.println(511 - deadband);

  if (audiocounter > 10) {
    lowertrig = 1;
    audiocounter = 0;
  }

  if (loudercounter > 20) {
    while (i < volcounter) {
      IrSender.sendSAMSUNG(0x3434E817, 32); // Vol+
      i++;
      delay(200);
    }
    volup = 0;
    i = 0;
    volcounter = 0;
    loudercounter = 0;
  }

  audio = analogRead(A1);

  if ((volup == 1) && (audio < 540) && (audio > 480) && (trig == 0)) {
    TCNT2 = 0;
    trig = 1;
  }

  if ((volup == 1) && ((audio > 540) || (audio < 480))){
    loudercounter = 0;
  }

  if ((audio > (511 + deadband)) || (audio < (511 - deadband))) {
    if ((trig == 0) && (lowertrig == 0) && (volup == 0)) {
      TCNT2 = 0;
      trig = 1;
    }
    if (lowertrig == 1) {
      volcounter++;
      IrSender.sendSAMSUNG(0x34346897, 32); //Vol-
      delay(200);
      lowertrigtimer = 1;
    }
  }
}

ISR(TIMER1_COMPA_vect) {
  deadband = map(analogRead(A2), 0, 1023, 511, 0);
  OCR2A = map(analogRead(A3), 1023, 0, 255, 127); //200ms - 100ms
  if (analogRead(A7) < 540) {
    digitalWrite(8, HIGH);
  }
}

ISR(TIMER2_COMPA_vect) {
  if (trig == 1) {
    timercounter++;
    silencecounter = 0;
  }
  if ((timercounter > 6) && (volup == 0)) {
    audiocounter++;
    timercounter = 0;
    trig = 0;
  }

  if ((timercounter > 6) && (volup == 1)) {
    loudercounter++;
    timercounter = 0;
    trig = 0;
  }

  if ((audiocounter > 0) && (trig == 0) ) {
    silencecounter++;
    if (silencecounter > 50) {
      audiocounter = 0;
      silencecounter = 0;
    }
  }
  if (lowertrig == 1) {
    if (lowertrigtimer == 0) {
      timercountervol++;
    }
    if (lowertrigtimer == 1) {
      timercountervol = 0;
      lowertrigtimer = 0;
    }
    if (timercountervol > 100) {
      volup = 1;
      lowertrig = 0;
    }
  }
}
				
			

میتوانید کدها را در انتهای این مقاله به صورت کامل دانلود نمایید.

مرحله چهارم : پایان کار و تست مدار

حال نوبت این است که شما مدار را تست کنید و دیگر نگران کم و زیاد صداهای تلویزیون نباشید و از دیدن فیلم ها لذت ببرید.

مدار تنظیم کننده خودکار صدا با آردوینو بسازید کامپیوترونیک

به این مقاله امتیاز دهید
★★★★★ 5/5
اشتراک گذاری:
فایل های مربوط به دانلود کدهای آردوینو
دانلود فایل

برای دسترسی به لینک های دانلود وارد حساب کابری خود شوید.

ورود به حساب

گزارش خرابی لینک پسورد فایل : ندارد

[gravityform id="2" ajax="true"]
برچسب ها: arduinoآردوینوالکترونیکمدارمدار الکتریکی

مطالب زیر را حتما مطالعه کنید

تفاوت CPU با GPU

تفاوت GPU با CPU

CPU یا GPU؟ دوتا از اجزای اصلی کامپیوترها یعنی CPU...
الگوریتم های گوگل چیست؟ کامپیوترونیک

الگوریتم های گوگل چیست؟

الگوریتم گوگل تمامی شرکت های بزرگ و کوچک برای بهتر...
نقشه راه فول استک کامپیوترونیک

نقشه راه فول استک

فول استک شاید امروزه در حوزه برنامه نویسی این کلمه...
داکر چیست کامپیوترونیک

داکر چیست؟

داکر چیست؟ داکر (Docker) یک پلتفرم نرم افزاری برای ساخت...
ویژوال استودیو 2022

آشنایی با ویژوال استودیو 2022

ویژوال استودیو 2022 خبری هیجان انگیز از سمت تیم توسعه...
آشنایی با گیت هاب کوپایلت کامپیوترونیک

آشنایی با گیت هاب کوپایلت

گیت هاب کوپایلت به تازگی ویژگی جدید به کمک هوش...

دوره های آموزشی مرتبط

آموزش میکروکنترلرهای ARM | مقدماتی تا متوسط

0
850,000 تومان

آموزش اتوماسیون صنعتی PLC

0
850,000 تومان

آموزش آنلاین طراحی سایت با وردپرس

0
800,000 تومان

آموزش آنلاین میکروکنترلرهای آرم (ARM) پیشرفته

0
700,000 تومان

آموزش آنلاین برد آموزشی آردوینو

0
500,000 تومان
قدیمی تر 10 زبان برتر برنامه نویسی سال 2021
جدیدتر الگوریتم های گوگل چیست؟

2 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • homepage گفت:
    1403/04/17 در 9:48 ق.ظ

    Thank you for any other wonderful post. Where else could anyone get that type of info in such an ideal
    method of writing? I have a presentation subsequent week, and I am on the look
    for such information.

    برای پاسخ دادن وارد شوید
  • escape rooms hub گفت:
    1403/04/15 در 11:44 ب.ظ

    Very nice post and straight to the point. I am not sure if this is truly
    the best place to ask but do you people have any thoughts on where to employ some professional writers?
    Thank you 🙂

    برای پاسخ دادن وارد شوید

دیدگاهتان را بنویسید لغو پاسخ

برای نوشتن دیدگاه باید وارد بشوید.

محصولات فروش ویژه
  • Placeholder
    کلاس آنلاین تحلیل داده و یادگیری ماشین
  • آموزش آنلاین میکروکنترلرهای ARM | تابستان 1403
  • آموزش آنلاین اینترنت اشیا IOT | تابستان 1403
  • آموزش الکترونیک با محوریت میکروکنترلرها | تابستان 1403
  • آموزش آنلاین نرم افزار طراحی مدارات الکترونیکی آلتیوم | تابستان 1403
دسته‌ها
  • دسته‌بندی نشده
  • کارگاه کامپیوترونیک
  • مقالات
  • مقالات آموزشی
  • ویدئوها
جستجو

جستجو با زدن Enter و بستن با زدن ESC