فرستنده و گیرنده های رادیویی به دلیل سهولت در استفاده و هزینه ساخت کم بسیار محبوب هستند. این نوع فرستنده گیرندهها را در اطراف خود بسیار مشاهده کرده اید. از جمله کاربرد این نوع فرستنده ها در کنترلرهای درب های اتوماتیک و سیستمهای امنیتی ، دزدگیر منازل و خودرو، کنترلر روشنایی و … است. در این پست قصد داریم تا نحوه ساخت گیرنده با ریموت کدلرن ASK استفاده از میکروکنترلر STM32 را آموزش دهیم. در ادامه با مرجع تخصصی بردهای امبدد به زبان فارسی، دیجی اسپارک همراه باشید.
شناخت مدولاسیون در صنعت برق
در رشته ی مهندسی برق و مخابرات به فرایند سوار کردن سیگنال پیام (اطلاعات) بر روی سیگنال حامل (معمولا دارای فرکانس بالا تری است) را مدولاسیون میگویند. این فرایند برای افزایش بهرهوری انتقال و برد سیگنال و همچنین استفاده بهینه تر از پهنای باند صورت میگیرد. مدولاسیون انواع مختلفی دارد. که در تصویر زیر میتوانید انواع مدولاسیون را مشاهده کنید.
در صورتی که سیگنال حامل زمان پیوسته باشد. مدولاسیون به انواع آنالوگ و دیجیتال تقسیم میشود که هر یک دارای زیر شاخه هایی هستند. در این آموزش قصد داریم در مورد مدولاسون ASK که زیر شاخه ای از مدولاسون دیجیتال است صحبت کنیم.
مدولاسیون ASK
ASK مخفف Amplitude-shift keying به معنای کلیدزنی تغییر دامنه، یک روش مدولاسیون دیجیتال است (برای اشاره به مدولاسیون های دیجیتال بیشتر از اصطلاح کلیدزنی استفاده میشود). در این روش مدولاسیون دیتای دیجیتال با تغییر دامنهی سیگنال حامل ارسال میشود. همانطور که گفته شده این نوع مدولاسون زیر شاخه ای از مدولاسیون دیجیتال است و منطق آن صفر و یک است. بنابراین زمانی که سیگنال پیام دارای سطح منطقی یک باشد، فرستنده فرکانس مربوطه را تولید کرده و ارسال میکند. زمانی که سطح منطقی سیگنال پیام صفر باشد، فرستنده خاموش شده و سیگنالی ارسال نمیکند.
ریموت کنترل کدلرن ASK
عمده ترین کاربرد مدولاسیون ASK در ریموت های کنترلر درب اتوماتیک، دزدگیر اماکن و خودرو و … است. این نوع ریموت بصورت آماده در بازار با فرکانس های ۳۱۵ و ۴۳۳ مگاهرتز موجود است. ریموت ها دارای ۲ نوع کد گذاری هستند. نوع اول ریموت های کد فیکس هستند. در این نوع ریموت ها بر روی برد ریموت ۸ پین موجود است که هر یک از این پین ها میتوانند سه حالت داشته باشند (متصل به مثبت، متصل به منفی و بدون اتصال).
این نوع ریموت ها امنیت بالایی ندارند. همچنین به دلیل کد گذاری نسبتا مشکل محبوبیت زیادی ندارند. مورد دیگری که از نظر من برای ریموت های کد فیکس یک عیب به حساب می آید. این است که گیرنده های این نوع ریموت تنها میتوانند یک کد را تشخیص دهند و در صورتی که شما دو ریموت با کد های متفاوت داشته باشید، گیرنده تنها قادر به تشخیص یکی از آنها خواهد بود. نوع دوم ریموت های کد لرن یا همان ریموت کدلرن ASK هستند که امنیت بیشتری نسبت به ریموت های کد فیکس دارند. این نوع ریموت دارای یک کد ۲۰ رقمی منحصر به فرد است. در این نوع ریموت با فشردن هر کلید یک کد ۲۴ رقمی به سمت گیرنده ارسال میشود که ۲۰ آن مربوط به کد امنیتی و ۴ رقم دیگیر برای تشخیص کلید ها است. با استفاده از این ریموت با توجه به حافظه میکروکنترلر استفاده شده در بخش گیرنده شما میتوانید هر تعداد ریموت که در نظر دارید به گیرنده معرفی کنید.
گیرنده ASK
شماتیک مدار گیرنده ASK با یک سرچ ساده در گوگل پیدا میشود. اما در صورتی که اطلاعات کافی درباره طراحی مدار را ندارید پیشنهاد میکنم از ماژول های آماده موجود در بازار استفاده کنید. ماژول های گرینده نیز همانند ریموت ها با فرکانس های ۳۱۵ و ۴۳۳ مگاهرتز در ببازار موجود است. ماژول های گیرنده ASK موحود دربازار را میتوان به دو دسته super regenerative و super heterodyne تقسیم نمود. گیرنده های نوع super regenerative قدیمی تر هستند و دارای دقت، برد انتقال و هزینه کمتری هستند.
نوع دیگر گیرنده های موجود در بازار، گیرند های super heterodyne هستند. که نسبت به گیرنده نوع قبلی جدی تر و دارای حساسیت و کیفیت بیشتری است. و همچنین به دلیل استفاده از کریستال ثبات فرکانس بهتری دارد.
اتصالات پروژه
ماژول های گیرنده دارای ۴ پایه هستند. پایه VCC به ۵+ ولت و پایه GND به زمین متصل میشود. همچنین دو پایه با نام Data موجود است که به یک دیگر متصل هستند. در این آموزش پای دیتا به پایه PB0 میکروکنترلر STM32 متصل شده است. همچنین برای تست برنامه ۳ عدد LED بر روی پایه های PB12 تا PB14 متصل شده است (شما میتوانید از رله بجای LED ها استفاده کنید) همچنین پایه PB15 برای تعریف ریموت جدید به یک کلید متصل شده است.
پیکربندی میکروکنترلر STM32
پس از ساخت پروژه در نرم افزار STM32CubeMX مطابق بخش اول آموزش میکروکنترلر های STM32 بایستی ۳ پایه برای LED ها بعنوان خروجی و یک پایه برای کلید بعنوان ورودی و Pull-up تعریف کنید. پایه PC13 را نیز با لیبل LED خروجی کنید. برای خواندن کد ریموت نیاز به فعال سازی وقفه خروجی بر روی یکی از پایه های میکروکنترلر است. در بخش دوم آموزش میکروکنترلر های STM32 نحوه تعریف پایه بعنوان وقفه خروجی توضیح داده شده است. یک پایه را بعنوان وقفه خارجی تعریف کنید. سپس برای پایه وقفه خارجی لیبیل “RF_IN” را انتخاب کنید. پس از آن به بخش GPIO رفته و در تنظیمات پایه RF_IN قسمت GPIO Mode را بر روی گزینه “External Interrupt Mode with Rising/Falling edge trigger detection” تنظیم کنید. همچنین در بخش NVIC نیز وقفه خارجی را فعال کنید. در این آموزش پایه ها به مطابق تصویر زیر تعریف شدهاند.
آموزش راه اندازی تایمر میکروکنترلرهای STM32 را مطالعه کنید. و سپس یک تایمر های موجود را انتخاب کنید. گزینه Clock Source را بر روی Internal Clock قرار دهید. سپس مقدار ۷۱۹ در قسمت Prescaler قرار دهید. فرکانس میکروکنترلر را بر روی ۷۲ مگاهرتز تنظیم کنید. سپس در بخش Project manager تنظیمات مورد نیاز را انجام دهید. سپس وارد بخش Code Generator شده و در قسمت Generated files تیک مربوط به گزینه Generate pripheral iniialization as a pair of ‘.c/.h’ files per pripheral را بزنید.
در آخر بر روی گزینه GENERATE CODE کلیک کنید و وارد نرم افزار KEIL شوید.
کدنویسی در نرم افزار KEIL
ابتدا از کتابخانه Stm32 Remote decoder را دانلود کنید. سپس کتابخانه را به پروژه ریموت کدلرن ASK اضافه کنید. در صورتی که با نحوه اضافه کردن کتابخانه به پروژه آشنا نیستید. آموزش اضافه کردن کتابخانه به پروژه های STM32 را مطالعه کنید. سپس بایستی وارد فایل askConfig.h شده و شمار تایمر تعریف شده را در قسمت #define _ASK_TIM وارد میکنیم. در این آموزش تایمر شماره ۴ در نظر گرفته شده است. پس این قسمت را مطابق دستور زیر تغییر میدهیم.
#define _ASK_TIM htim4 // 10us tick
سپس وارد فایل main.c شده و کد زیر را به فایل main خود اضافه کنید. همانطور که در آموزش های قبل گفته شده است بایستی بخش های مختلف کد زیر را به بخش های مشخص شده در فایل main اضافه کنید. درصورتی که کد زیر را یکجا کپی کنید. با خطا مواجه خواهید شد.
// ASK Receiver Library #include "ask.h" // ASK Stract ask_t rf; // Intrrupt PB0 Callback void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == RF_IN_Pin) ask_callBackPinChange(&rf); } int main(void) { //Local Variable uint8_t RemoteData[3],Lern_Code[2]; // ASK initialize ask_init(&rf,RF_IN_GPIO_Port,RF_IN_Pin); while (1) { ask_loop(&rf); // Receive Data if(ask_available(&rf)) { if(ask_read(&rf,RemoteData,NULL,NULL)) { // Remote Define if(HAL_GPIO_ReadPin(Lern_GPIO_Port,Lern_Pin) == GPIO_PIN_RESET) { for(uint8_t i=0;i<2;i++)Lern_Code[i]=RemoteData[i]; for(uint8_t i=0;i<6;i++) { HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin); HAL_Delay(250); } } else { // Check Remote Code if(Lern_Code[0] == RemoteData[0] && Lern_Code[1] == RemoteData[1]) { // Output 1 ON if((RemoteData[2]&0x0f)==0x1) { HAL_GPIO_WritePin(OUT1_GPIO_Port,OUT1_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(OUT2_GPIO_Port,OUT2_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(OUT3_GPIO_Port,OUT3_Pin,GPIO_PIN_RESET); } // Output 2 ON else if((RemoteData[2]&0x0f)==0x2) { HAL_GPIO_WritePin(OUT1_GPIO_Port,OUT1_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(OUT2_GPIO_Port,OUT2_Pin,GPIO_PIN_SET); HAL_GPIO_WritePin(OUT3_GPIO_Port,OUT3_Pin,GPIO_PIN_RESET); } // Output 3 ON else if((RemoteData[2]&0x0f)==0x4) { HAL_GPIO_WritePin(OUT1_GPIO_Port,OUT1_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(OUT2_GPIO_Port,OUT2_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(OUT3_GPIO_Port,OUT3_Pin,GPIO_PIN_SET); } // All Outputs OFF else if((RemoteData[2]&0x0f)==0x8) { HAL_GPIO_WritePin(OUT1_GPIO_Port,OUT1_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(OUT2_GPIO_Port,OUT2_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(OUT3_GPIO_Port,OUT3_Pin,GPIO_PIN_RESET); } } } } } } }
در آخر بایستی برنامه را کامپایل کرده و بر روی برد Bluepill پروگرام کنید. در صورتی که با نحوه پروگرام کردن میکروکنترلر های Stm32 آشنا نیستید. لطفا بخش اول آموزش های میکروکنترلر Stm32 را مطالعه نمایید.
توجه داشته باشید که سورس داخل این آموزش مظابق ورژن قدیم این کتابخانه بوده است و برای دسترسی به سورس جدید میتوانید به لینک مراجعه کنید.
نحوه عملکرد پروژه گیرنده کدلرن
هر بار که یکی از کلید های ریموت کدلرن ASK فشرده میشود. ریموت کد ۲۴ رقمی به سمت گیرنده ارسال میکند. زمانی که گیرنده دیتایی دریافت کند. در پایه های Data ماژول گیرنده موج مربعی تولید میشود. این موج مربعی توسط وقه خارجی میکروکنترلر شناسایی میشود و بهمراه تایمر به کد ۲۴ رقمی باینری تبدیل میشود. و در آخر کد دریات شده در آرایه RemoteData بصورت ۳ عدد هگز ذخیره میشود.
در ابتدا پس از روشن شدن سیستم بایستی کلید را نگه متصل به پایه PB15 را نگه داشته و سپس یکی از کلید های ریموت را فشار داده و کلید متصل به پایه PB15 را رها کنید. سپس LED موجود بر روی برد Bluepill چند بار چشمک خوهد زد. حالا ریموت به سیستم معرفی شده است. پس از این با فشردن هر کلید از ریموت یکی از LED ها روشن خواهد شد. همچنین یکی از کلید های ریموت برای خاموش شدن تمامی کلید ها تعریف شده است.
جمع بندی
در این آموزش ابتدا با مدولاسیون و انواع آن آشنا شدیم. سپس درباره ی مدولاسیون ASK صحبت کردیم. پس از آن با ریموت ها و نحوه کدگذاری آن ها آشنا شدیم. در ادامه گیرنده های موجود در بازار مورد بررسی قرار گرفتند. سپس کتابخانه ای برای تشخیص کد ریموت ها بر روی میکروکنترلر های STM32 معرفی شد. در آخر نحوه ساخت گیرنده ریموت کدلرن با میکروکنترلر STM32 توضیح داده شد.
لوازم مورد نیاز
- پروگرامر STC Auto Programmer
- برد STM32 مدل F103C8T6 دارای تراشه ARM
- ماژول گیرنده ۴۳۳Mhz ASK
- ریموت کد لرن ۴۳۳ مگاهرتز بتا Remote transmitter
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی از وبسایت دیجی اسپارک حمایت کنید.
کاربرد این پروزه با STM کجاست؟ چه وجه تمایزی نسبت به اجرا با Arduino و وesp32 , 8266 دارد.
با سلام
تصور کنید شما قرار است یک دزدگیر اماکن طراحی کنید. پس از بررسی امکانات مورد نیاز به نتیجه میرسید که از میکروکنترلر های STM32 استفاده کنید. در این موقع یکی از مهم ترین بخش های مورد نیاز همین پروژه داخل آموزش است.
با سلام و دورد
منظور از Ask چیست؟
با سلام
اگر متن آموزش را با دقت مطالعه کنید. نوشته شده است که ASK یک نوع مدولاسیون دیجیتال است که در ریموت ها بسیار کاربرد دارد.
سلام ممنون بابت زحمتی که کشیدید
فقط یه سوال ، میشه این پروژه رو با STM32F100RBT6 اجرا کرد؟
با سلام از توجه شما سپاسگزارم
بله، امکان پیاده سازی این پروژه روی تمامی میکروکنترلر های STM32 وجود دارد.
متاسفانه میکرو عمل نکرد شاید در تعریف interrupt مشکلی وجود داره ممنون میشم راهنمایی کنید
با سلام
پایه مربوط به اینتراپت را همانند آموزش تنظیم کردید؟
سلام
بله تنظیمات دقیقا همان هستش
ولی چون کریستال میکرو stm32f100rbt بیشتر از ۲۴MHz نمیتونه باشه اون قسمت رو با توجه به میکرو تنظیم کردم ولی کار نکرد
نمیدونم شاید اشتباه تنظیم کردم
با سلام
مشکل دقیقا همین فرکانس است. عدد تنظیم شده برای تایمر در این آموزش برای فرکانس ۷۲ مگاهرتز است. شما بایستی تایمر را طوری تنظیم کنید. در فرکانس مورد نظر روتین تایمر هر ۱۰ میکرو ثانیه اجرا شود. برای آشنایی بیشتر با بخش تایمر میکروکنترلر های STM32 آموزش زیر رو مطالعه کنید.
راه اندازی تایمر میکروکنترلرهای STM32
سلام خسته نباشید
مشکل از جای دیگه بود کلید لرن کار نمیکرد با کد نویسی حل شد
ممنون
با سلام
موفق باشید.
سلام برای ارسال اطلاعات میشه از این روش استفاده کرد؟ من می خوام اطلاعات فریم ده بایتی رو ارسال کنم مثلا با ماژول h3v3e و چند گیرنده دارم در اونها اطلاعات را دریافت کنم میشه؟
با سلام
بله امکان دریافت دیتا از این روش هست اما برای این کار بایستی تغییرات لازم را در کتابخانه ایجاد کنید.
سلام من چند روزی هست درگیر این پروژه هستم متاسفانه مدارم کار نمیکنه و نمیدونم مشکل از کجاست. اگه میشه بصورت مستقیم در ارتباط باشم باهاتون ممنون میشم
با سلام
لطفا مشکل را از طریق بخش نظرات بیان کنید تا در آینده دیگر دوستان نیز بتوانند زودتر به پاسخ مشکلات برسند.
برای شروع دیباگ با استفاده از یک LED بررسی کنید تا زمانی که کلید ریموت زده میشود. پایه دیتا گیرنده پالسی دریافت میکند یا خیر؟
سلام و تشکر ازشما
اگر بخواهیم که با یک ریموت به چندین گیرنده فرمان بدیم راهکار چیه؟
با سلام
برای این که با استفاده از یک ریموت، چند گیرنده را کنترل کنیم. بایستی برای مثال ۴ عدد ماژول گیرنده به همراه میکروکنترلر قرار دهیم و در کد، قسمت مربوط به فعال کردن یکی از خروجی ها را در یکی از میکروکنترلر ها بنویسیم و باقی خروجی ها را پاک کنیم. و همچنین برای دیگر خروجی ها در میکروکنترلر های دیگر همین کار را انجام دهیم. تا با فشار دادن هر کلید دستور مربوط به آن خروجی در میکروکنترلر مربوطه اجرا شود.
سلام مهندس بابت لایو امشب تشکر میکنم. فوق العاده بود.
راجع به سوالی که در لایو مطرح شد، به نظر شما چرا استفاده از فرکانس ۴۳۳ مگاهرتز بیشتر روال پروژهها است؟
با سلام از توجه شما سپاسگزارم
من این مورد را بررسی کردم، دلیل استفاده از باند ۴۳۳ مگاهرتز این است که این باند در اکثر کشور ها (مخصوصا کشور های اروپایی) این باند آزاد است و همه میتواند از این باند استفاده کنند. برای فرکانس های دیگر باید مجوز هایی تهیه شود که این مجوز ها هزینه سالیانه تقریبا بالایی دارند. دلیل محبوبیت و استفاده زیاد از باند ۴۳۳ مگاهرتز این است.
آقا سلام، لایو عالی بود، خسته نباشید هم شما و هم آقای طباطبایی
میخواستم بدونم که با یه برد دیگه که خودش از تراشه STM تهیه شده، باید این برد را پروگرام کنیم؟
با سلام از توجه شما سپاسگزارم.
بله عموم پروگرامر های میکروکنترلر های STM32 از همین میکروکنترلر های STM32 ساخته شده اند. البته راه های دیگری هم برای پروگرام میکروکنترلر وجود دارد. ولی پیشنهاد بنده استفاده از پروگرامر های STLINK است. در انتهای آموزش لینک تهیه این پروگرامر را در قسمت لوازم مورد نیاز قرار دادم.
با تشکر. اگر تغذیه خاموش بشه و مجدد روشن بشه داده های که معرفی شده داخل آرایه پاک خواهد شد
با سلام
بله عملکرد این صورت است که با قطعی برق بایستی دوباره کد تعریف شود. اما با ترکیب این آموزش و آموزش EEPROM مجازی میتوانید این مشکل را رفع کنید. لینک آموزش استفاده از EEPROM مجازی در زیر قرار داده شده است.
شبیه سازی حافظه EEPROM در میکروکنترلر STM32 با برد Bluepill
سلام. ممنون از مطالب خوبتان. ظاهرا کتابخانه ask stm32 تغییر کرده. خیلی چیزی از اون نفهمیدم. rx433 , tx433 , ….
با سلام با تشکر از توجه شما
بله کتابخانه ASK قرار گرفته در گیتهاب به کلی تغییر کرده است. به زودی آموزش مطابق اخرین ورژن کتابخانه بروزرسانی خواهد شد.
سلام وقت شما بخیر
با تشکر از مقاله جذابتون، من دقیقا همین گیرنده رو دارم که فرکانس ۳۱۵mhz داره و یه فرستنده فیکس کد دارم که یه کنترل آماده اس . من خروجی گیرنده رو با ماژول usb/TTL توو نرم افزار realterm دیدم( فقط محض اینکه بدونم گیرنده کار میکنه) ولی گیرنده بدون وقفه روی پایه دیتا اطلاعات داره. از همین جهت هم بعد از پروگرام میکرو با کد شما، به صورت پیوسته اینتراپت زده میشه .
از اطلاعات دیگه ای که میتونم بدم اینه که شرط if(GPIO_Pin == RF_IN_Pin) همیشه برقراره . شرط if(ask_available(&rf)) اصلا برقرار نمیشه ،حتی وقتی با فرستنده چیزی میفرستم.
حدس خودم اینه که:
۱- یا کیفیت گیرنده پایینه و یا خرابه
۲- کلا یه الگوی خاصی اول هر دیتا هست که باعث میشه الگوریتم شما فقط همونو بخونه که من از کد متوجه نشدم.
۳- توی محیط نویز هست و یا فرستنده دیگه ای داره روی این فرکانس این نزدیکیا کار میکنه که بعید میدونم.
ممنون میشم اگه راهنماییم کنین .
با سلام
کتابخانه ASK موجود در Github به تازگی بروزرسانی شده و بسیاری از دستورات در این کتابخانه تغییرات اساسی داشته است. بزودی این آموزش نیز مطابق بروزرسانی جدید این کتابخانه بروزرسانی خواهد شد.
سلام و وقت بخیر مهندس زاهدی. میشه فایل کتابخانه قبلی را برای بنده ایمیل کنید. کتابخانه جدید خیلی کار میبره.
سلام موقع کامپایل ارور میده
خط ۱۹برنامه بالا موقع کپی کردن به تابع هم ارور داره من که هر کار کردم راه نیفتاد دوستان تونستن راه اندازی کنم با این کتابخانه
با سلام
کتابخانه قرار گرفته در Github بروز رسانی شده و بایستی آموزش نیز بروز رسانی شود. بزودی بروز رسانی کتابانه جدید قرار میگیرد.
سلام وقت بخیر
من نتونستم از برنامه استفاده کتم امکان دارد پروژه kiel و یا stm32cubeide را برا گذاری کنید
من لینک دانلود نتونستم پیدا کنم
ممنون
با سلام
کتابخانه بروزرسانی هایی داشته که باعث شده کد قرار گرفته در این آموزش با کتابخانه ورژن جدید سازگار نباشد. به زودی آموزش همانند آخرین ورژن کتابخانه بروز رسانی خواهد شد.
سلام جناب مهندس زاهدی
الان کدها روی مقاله با کتابخانه جدید سایت Github مطابقت دارد؟
با سلام
در حال حاظر خیر، کتابخانه موجود در Github درحال برروز رسانی است و مقاله بایستی پس از هربار برروزرسانی مظابق آپدیت جدید بروزرسانی شود.
خب نمیشه کتابخانه های قدیمی را روی سایت قرار بدید دانلود کنیم
یا راهنمایی کنید چگونه تغییر داده بشه تا خود کاربران تغییر دهند از کدها و مقاله استفاده کنند
سلام
مهندس آموزش سورس جدید رو کی زحمتش رو میکشید ؟
با سلام
برای دسترسی به سورس جدید این کد میتوانید از لینک زیر استفاده کنید.
https://github.com/alixahedi/ASK_STM32
سلام آقای زاهدی میشه لطفا کتابخانه قبلی رو قرار بدید
یا ایمیل کنید
با سلام
در متن آموزش قرار دارد.
سلام وقتتون بخیر
مهندس زاهدی میشه لطفا فایل کتابخانه قبلی این پروژه رو برای من ایمیل کند، ممنون میشم.
لینک دانلود در پاسخ قبلی برای شما ارسال شده است.
با سلام و خسته نباشید
آیا می توان این گیرنده را با آردوینو نیز اجرا کرد؟
سلام من کتابخانه و کد ها رو در cubeide اوردم و تایمر و پین ها ر تنظیم کردم ولی خطا دارم در ask_loop(&rf); و ask_init(&rf,RF_IN_GPIO_Port,RF_IN_Pin);
کتابخانه قدیمی کجاست شاید از اون باشه
سلام فایل ask.h و ask.c ورژن قبلی رو میخواستم ممنون میشم برام ایمیل کنید لینک دانلود شو
سلام مهندس زاهدی میشه لطفا فایل کتابخانه قبلی ask این پروژه رو برای من ایمیل کند، ممنون میشم.
سلام فایل کتابخانه قدیمی این پروژه رو میخواستم برایم ایمیل کنید
سلام مهندس وقت بخیر ممنون از آموزش خوبتون
خروجی گیرنده من یکسره روش دیتا داره (صفرو یک میشه ) و اصلا صفر نمیشه حتی زمانی که فرستنده ندارم برای همین یکسره فقفه فعال میشه و میکرو کاردیگه ای انجام نمیده
با سلام و تشکر از اینکه کد و توضیحات را در سایتتون قرار دادین.
سوالم در مورد کد این هست که یه سری توابع در تابع main فراخوانی شده که در جایی تعریف نشده .برای مثال:
ask_loop، ask_read، ask_callBackPinChange
و تعدادی تابع هم آرگومان ورودیش بیش از چیزی هست که تعریف شده برای مثال: ask_init
ممنون میشم اگر راهنمایی بفرمایید
سلام خیلی خوشحالم که فردی را شناختم که از اطلاعاتشون همیشه برا دیگران مطالبی را تولید میکنند و به اشتراک میگذارند از این بابت ممنون _
دو تاسوال داشتم از خدمتتون : من میخوام تعداد ۸ یا ۱۲ رله به عنوان خروجی با یک ریموت ۱۲ کاناله روشن و خاموش کنم سوالم اینجاست که میتونم با این میکروکنترلر این کار را انجام بدم ؟
سوال دو : من میخواهم بتوانم با استفاده از موبایل کنترلر این رله ها را داشته باشم حالا چه در فاصله نزدیک چه در فاصله خیلی دور ، برای این منظور باید از چه میکروکنترلری استفاده کنم و باید از کجا برای این یاد گیری شروع کنم و استفاده کنم
از توجه شما سپاسگزارم
با سلام و تشکر از همراهی شما
۱- بله میتوانید
۲- میتوانید از یک ماژول esp8266 در کنار این میکرو استفاده کنید و ازطریق وای فای و یا اینترنت به آن فرمان دهید.
درود بر شما
من قبلاً به کد در avr نوشتم برا ربموت، و حالا میخوام تبدیلش کنم برا stm32.تنها چیزی که میخوام دو تا دستور برا روشن کردن و خاموش کردن یکی از. تایمرها.
شما چه دستوری پیشنهاد میکنید
با سلام
برای STM بایستی کدنویسی مجزایی مرتبط با همین تراشه انجام بدهید.