تنظیم کننده خودکار صدا با آردوینو بسازید
تنظیم کننده خودکار صدا با آردوینو بسازید
بسیاری از ما شاید با کم و زیاد کردن صدای تلویزیون در هنگام مشاهده فیلم ها داشته باشیم.
بسیاری دیده ایم که در هنگام مشاهده فیلم در زمان پخش شدن آهنگ صدا بسیار زیاد میشود و در بخش هایی کم میشود.
اما در پروژه امروز کارگاه کامپیوترونیک میخواهیم با کمک آردوینو یک دستگاه ساده اما کارآمد بسازیم و طراحی کنیم.
جدول مراحل ساخت
مرحله اول : قطعات مورد نیاز
قطعات مورد نیاز
قطعات مورد نیاز ساخت کنترل کننده صدا-
باتری لیتیوم پلیمر 3.7 ولت ، 600 میلی آمپر
-
ماژول شارژر باتری لیتیومی TP4056
-
سوییچ خاموش و روشن کردن کشویی
-
رگولاتور 3.3 ولت MCP1700
-
خازن 1 میکروفاراد
-
مجموعه ای از مقاومت ها به مدار توجه کنید
-
میکروفون
-
آپ امپ MCP602
-
پتانسیومتر با توجه به مدار
-
LED IR مادون قرمز فرستنده3 میلی متری
-
چراغ LED کلاهی 3 میلی متری قرمز
-
آردوینو Pro mini
مرحله دوم : مدار را بسازید
با توجه به مدار زیر و عکس های مربوط به آن به آسانس مدار را بسازید.
پیشنهاد میکنم ابتدا بر روی برد بورد تست نمایید و سپس بر روی فیبر مدار چاپی انجام دهید.
مرحله سوم : کد های آردوینو آپلود نمایید
در این مرحله کدهای زیر را بر روی آردوینو از طریق FTDI آپلود نمایید.
توجه کنید تنظیمات باید بر روی 3.3 ولت و 8MHz باشد.
برای کا با کد ها به کتابخانه زیر هم نیاز دارید :
//https://computeronic.ir
#include
#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;
}
}
}
میتوانید کدها را در انتهای این مقاله به صورت کامل دانلود نمایید.
مرحله چهارم : پایان کار و تست مدار
حال نوبت این است که شما مدار را تست کنید و دیگر نگران کم و زیاد صداهای تلویزیون نباشید و از دیدن فیلم ها لذت ببرید.
به این مقاله امتیاز دهید
برای دسترسی به لینک های دانلود وارد حساب کابری خود شوید.
ورود به حسابگزارش خرابی لینک پسورد فایل : ندارد
مطالب زیر را حتما مطالعه کنید
بوت کمپ آموزشی نرم افزار altium
آموزش تولید محتوا
آموزش سئو
آموزش وردپرس
آموزش network+
آموزش میکروکنترلرهای ARM
دوره های آموزشی مرتبط
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
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.
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 🙂 Escape rooms