تنظیم کننده خودکار صدا با آردوینو بسازید
تنظیم کننده خودکار صدا با آردوینو بسازید
بسیاری از ما شاید با کم و زیاد کردن صدای تلویزیون در هنگام مشاهده فیلم ها داشته باشیم.
بسیاری دیده ایم که در هنگام مشاهده فیلم در زمان پخش شدن آهنگ صدا بسیار زیاد میشود و در بخش هایی کم میشود.
اما در پروژه امروز کارگاه کامپیوترونیک میخواهیم با کمک آردوینو یک دستگاه ساده اما کارآمد بسازیم و طراحی کنیم.
جدول مراحل ساخت
مرحله اول : قطعات مورد نیاز
قطعات مورد نیاز
قطعات مورد نیاز ساخت کنترل کننده صدا-
باتری لیتیوم پلیمر 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;
}
}
}
میتوانید کدها را در انتهای این مقاله به صورت کامل دانلود نمایید.
مرحله چهارم : پایان کار و تست مدار
حال نوبت این است که شما مدار را تست کنید و دیگر نگران کم و زیاد صداهای تلویزیون نباشید و از دیدن فیلم ها لذت ببرید.
به این مقاله امتیاز دهید
برای دسترسی به لینک های دانلود وارد حساب کابری خود شوید.
ورود به حسابگزارش خرابی لینک پسورد فایل : ندارد
دیدگاهتان را بنویسید