اطلاعیه

Collapse
No announcement yet.

راه اندازی ماژول DY-SV17F با one line تک سیم

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راه اندازی ماژول DY-SV17F با one line تک سیم

    ماژول DY-SV17F با کد کالای 3011017050 و لینک
    ​
    این ماژول با چندین روش راه اندازی میشه اما روش one line میتونه خیلی محبوب باشه چون فقط یک پایه از میکرو را درگیر میکنه و پورت UART درگیر نمیکنه، چندین ماژول مشابه هم از همین روش پشتیبانی میکنند ، پس این روش فقط خاص این ماژول میتونه نباشه
    در این روش فقط با 0 و 1 کردن پایه و ایجاد تاخیر مناسب پیام ارسال میشود پس به راحتی میتونید کد را به هر زبانی تبدیل کنید و هیچ چیز پیچیده ای نداره

    مطابق دیتاشیت اتصال سه پایه زیر باید بصورت جدول زیر تنظیم شود تا ماژول در حالت one line قرار بگیره ، دقت داشته باشید در لحظه روشن شدن ماژول باید وضعیت پایه ها به شکل زیر باشه و در زمان روشن بودن اگر این حالت انتخاب شود ماژول به این مد نمیرود
    Con1 Con2 Con3
    0 0 3.3V
    مهمترین بخش ارسال دیتا به ماژول هست که فانشن زیر این کار رو میکنه و پایه شماره 14 از میکرو برای ارسال دیتا انتخاب شده

    [HASHTAG="t25971"]define[/HASHTAG] ONE_LINE_PIN 14
    void sendCmd(uint8_t cmd)
    {
    digitalWrite(ONE_LINE_PIN, LOW);
    delayMicroseconds(3000);
    for (uint8_t i = 0; i < 8; i++)
    {
    if (cmd & (1 << i)){
    digitalWrite(ONE_LINE_PIN, HIGH);
    delayMicroseconds(1200);
    digitalWrite(ONE_LINE_PIN, LOW);
    delayMicroseconds(400);
    }else{
    digitalWrite(ONE_LINE_PIN, HIGH);
    delayMicroseconds(400);
    digitalWrite(ONE_LINE_PIN, LOW);
    delayMicroseconds(1200);
    }
    }
    digitalWrite(ONE_LINE_PIN, HIGH);
    delayMicroseconds(3000);
    }​


    حالا راحت میتونیم هر درخواستی را به ماژول ارسال کنیم
    تنظیم صدا روی 20 به ترتیب اول 2 بعد 0 را ارسال میکنیم و در آخر مطابق دیتاشیت برای ست شدن صدا رو عددی که ارسال کردیم کد 0x0C را ارسال میکنیم

    sendCmd(0x02);
    sendCmd(0x00);
    sendCmd(0x0C); // تنظیم صدا روی 20


    تنظیم صدا روی حداکثر که مقدار اون 30 هستف ابتدا 3 بعد 0 و در اخر 0x0C را ارسال میکنیم

    sendCmd(0x03);
    sendCmd(0x00);
    sendCmd(0x0C); // تنظیم صدا روی 30
    ​

    پخش فایل 00001.mp3
    روش نام گذاری در این ماژول با 5 رقم عدد هست و هنگام پخش اهنگ نیازی نیست صفرهای قبل را ارسال کنیم
    عدد 0x01 را ارسال میکنیم به عنوان شماره یا نام فایل بعد مقدار 0x0B به عنوان انتخاب شدن این فایل ، حالا هر زمانی 0x11 را ارسال کنیم اهنگ شروع به پخش شدن میکند

    sendCmd(0x01);
    sendCmd(0x0B);
    sendCmd(0x11);​
    ​​

    ارسال 0x11 به تنهایی کلید play و آخرین آهنگ انتخاب شده را پخش میکند
    ارسال 0x12 باعث pause شدن آهنگ میشه
    ارسال 0x13 باعت stop شدن پخش میشه

    ارسال 0x0E باعث میشه هنگامی که با 0x11 دستور play شدن را ارسال کردید همه آهنگها در یک حلقه بی نهایت تکرار و پخش شوند

    ارسال 0x02 و بعد 0x0E باعث مشود از حلقه تکرار خارج شود

    برای تکرار شدن یک آهنگ روش زیر
    این روش باعث مشود آهنگ شماره 2 تکرار شود


    sendCmd(0x01); // انتخاب حالت تکرار تک‌آهنگ
    sendCmd(0x0E); // ثبت حالت تکرار
    sendCmd(0x02); // انتخاب آهنگ شماره 2
    sendCmd(0x0B); // تأیید انتخاب
    sendCmd(0x11); // پخش​


    اگر به دیتاشیت این ماژول مراجعه کنید متوجه میشید در مورد ارتباط تک سیم ناقص هست ، هوش مصنوعی هم نتونست کمک کنه و با سعی و خطا و حدس زدن من روش صحیح ارسال رو پیدا کردم ، امیدوارم مفید بوده باشه​
لطفا صبر کنید...
X