ویژگیهای ماژول MT8870 دریافت کدهای DTMF
کلمه DTMF مخفف عبارت Dual-tone-multi-frequency میباشد. این سیستم جهت ارسال سیگنال از طریق خطوط تلفن به مراکز سوئیچینگ در باند فرکانس صوتی میباشد. این سیستم دو کاربرد مهم دارد: اولا برای مشخص کردن شمارهی موردنظر جهت ایجاد ارتباط از طریق مراکز سوئیچینگ و دوما نقش انتقال فرامین را به این مرکز و سایر دستگاههای مخابراتی دارد.
مشخصات فنی این ماژول :
- ولتاژ ورودی: 5 ولت
- دارای جک ورودی 5mm
- LED برای نشان دادن وضعیت خروجی های باینری
- تشخیص اعداد 0-9، حروف A-D و علائم *,#
معرفی پایه های (Pinout) ماژول MT8870 دریافت کدهای DTMF
این ماژول دارای پایههایی به شرح زیر است:
- VCC: تغذیه ماژول
- GND: زمین
- Binary Output :Q[1-4]
- Early Steering (Output) :EST
- Inhibit (Input) :INH
- Three State Output Enable (Input) :TOE
پین اوت (Pinout) این ماژول را میتوانید در تصویر زیر مشاهده کنید.
وضعیتهای متفاوت در هر یک از پایههای بیان شده، بیانگر دادههای مختلف میباشد. جدول زیر حالت های مختلف آن را نشان میدهد:
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
تذکر
برای تکمیل راه اندازی این ماژول، نیاز به کابل AUX دارید.
راه اندازی ماژول MT8870 دریافت کدهای DTMF
گام اول: سیم بندی
مطابق مدار زیر ماژول را به آردوینو و همچنین از طریق کابل AUX به تلفن همراه وصل کنید.
گام دوم: کد
کد زیر را روی آردوینو خود آپلود کنید.
/*
MT8870-DTMF-Receiver-Module
Made on 09 Feb, 2021
Home
*/
void setup() {
Serial.begin(9600);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
}
void loop() {
uint8_t number;
bool signal;
signal = digitalRead(7);
if (signal == HIGH) /*When DTMF tone is detected, STQ will read HIGH for the duration of the tone*/
{
delay(100);
number = ( 0x00 | (digitalRead(3) << 0) | (digitalRead(4) << 1) | (digitalRead(5) << 2) | (digitalRead(6) << 3) );
switch (number)
{
case 0x01:
Serial.println("Pin Pressed: 1");
break;
case 0x02:
Serial.println("Pin Pressed: 2");
break;
case 0x03:
Serial.println("Pin Pressed: 3");
break;
case 0x04:
Serial.println("Pin Pressed: 4");
break;
case 0x05:
Serial.println("Pin Pressed: 5");
break;
case 0x06:
Serial.println("Pin Pressed: 6");
break;
case 7:
Serial.println("Pin Pressed: 7");
break;
case 0x08:
Serial.println("Pin Pressed: 8");
break;
case 0x09:
Serial.println("Pin Pressed: 9");
break;
case 0x0A:
Serial.println("Pin Pressed: 0");
break;
case 0x0B:
Serial.println("Pin Pressed: *");
break;
case 0x0C:
Serial.println("Pin Pressed: #");
break;
}
}
}
در این برنامه شما میتوانید با استفاده از کیبورد تماس تلفن همراه، عملکرد این ماژول را ارزیابی کنید. بدین صورت که با لمس هر یک از اعداد 0 تا 9 و همچنین علائم # و *، میتوانید آنها را در قسمت سریال مانیتور نرمافزار مشاهده کنید.
خروجی برنامه به شکل زیر است.
Comments (2)
سلام و ممنون بابت درج مطالب ارزشمند
سوال من اینه که به این پروژه میتونیم یک سنسور فروسرخ متصل کنیم و یک فرکانسی رو از طریق سنسور ارسال کنیم و در صورت تشخیص جسم مورد نظر هدف توسط فرکانس اعمال شده ، دریافت تائیدیه رو روی گوشی داشته باشیم ؟
سلام.
این ماژول در واقع میتونه به عنوان فرستنده اطلاعات از گوشی به میکروکنترلر استفاده بشه و نه برعکس. در نتیجه کاری که شما میخواید صرفا با اضافه کردن یک سنسور فروسرخ به این پروژه امکانپذیر نیست. چون شما میخواید اطلاعاتی رو از میکروکنترلر به گوشی بفرستید. برای این کار گزینههای متفاوتی رو دارید، مثلا میتونید از ماژولهای بلوتوث استفاده کنید و یا حتی از میکروکنترلرهای ESP32 و یا ESP8266 استفاده کنید که خودشون توانایی ارتباط بلوتوثی رو هم دارن.