ماژول DTMF برای رمزگشایی تونهای اعداد تلفن که با تراشه MT8870 کار می کند و سازگاری کامل با آردوینو نیز دارد.
تونهای صفحه کلید را از طریق ورودی صدای روی برد دریافت می کند و بعد از پردازش اطلاعات را به خروجی ارسال می کند.
همچنین 5 دیود LED روی برد وضعیت خروجی را نشان می دهند.
این ماژول کاربردهای فراوانی دارد که همگی بر پایه تشخیص دستورات از راه دور می باشند.
مثال متداول آن سیستمهای منشی کامپیوتری می باشد که شماره گیری کاربر را تشخیص داده و متناسب با آن پاسخ مناسبی می دهد.
همچنین در خانه های هوشمند می توانید با شماره گیریی منزل و ورود رمز ، به اطلاعات وضعیت منزل دسترسی پیدا کنید که این کار با کمک ماژول تشخیص کد های تلفن امکانپذیر می باشد.
کار با این ماژول بسیار ساده است. مانند شکل زیر اتصالات مربوطه را انجام دهید
پین های منبع تغذیه ماژول به 5 ولت آردوینو وصل کنید.
پین 8 آردوینو به StD ماژول
پین 12 آردوینو به Q1 ماژول
پین 11 آردوینو به Q2 ماژول
پین 10 آردوینو به Q3 ماژول
پین 9 آردوینو به Q4 ماژول
با کمک یک سیم با دوسرفیش 3.5 تلفن همراه را به DTMF وصل کنید.
با اجرای برنامه نمونه و شماره گیری تلفن همراه میتوانید اعداد شماره گیری شده را روی پنجره سریال ببینید.
void setup() {
Serial.begin(9600);
pinMode(8, INPUT); // connect to Std pin
pinMode(9, INPUT); // connect to Q4 pin
pinMode(10, INPUT); // connect to Q3 pin
pinMode(11, INPUT); // connect to Q2 pin
pinMode(12, INPUT); // connect to Q1 pin
}
void loop() {
uint8_t number_pressed;
bool signal ;
signal = digitalRead(3);
if(signal == HIGH) /* If new pin pressed */
{
delay(250);
number_pressed = ( 0x00 | (digitalRead(7)<<0) | (digitalRead(6)<<1) | (digitalRead(5)<<2) | (digitalRead(4)<<3) );
switch (number_pressed)
{
case 0x01:
Serial.println("Button Pressed = 1");
break;
case 0x02:
Serial.println("Button Pressed = 2");
break;
case 0x03:
Serial.println("Button Pressed = 3");
break;
case 0x04:
Serial.println("Button Pressed = 4");
break;
case 0x05:
Serial.println("Button Pressed = 5");
break;
case 0x06:
Serial.println("Button Pressed = 6");
break;
case 7:
Serial.println("Button Pressed = 7");
break;
case 0x08:
Serial.println("Button Pressed = 8");
break;
case 0x09:
Serial.println("Button Pressed = 9");
break;
case 0x0A:
Serial.println("Button Pressed = 0");
break;
case 0x0B:
Serial.println("Button Pressed = *");
break;
case 0x0C:
Serial.println("Button Pressed = #");
break;
}
}
}