خانه

دوره‌ها

بوت کمپ

بلاگ

حساب کاربری

خانه

دوره‌ها

بوت کمپ

بلاگ

حساب کاربری

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

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

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

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

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

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

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

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

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

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

قطعات مورد نیاز ساخت کنترل کننده صدا
  • باتری لیتیوم پلیمر 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 | مقدماتی تا متوسط

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

0
850,000 تومان
آموزش اتوماسیون صنعتی PLC

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

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

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

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

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

0
700,000 تومان
آموزش آنلاین برد آموزشی آردوینو

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

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

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

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

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

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