نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

آموزش جامع میکروکنترلر avr جلسه6

به نام خدا : آموزش جامع میکروکنترلر avr جلسه6 ؛ موضوع این جلسه : ۳ تا پروژه در مورد ” ارتباط سریال USART ” از سری مطالب آموزش avr
آموزش جامع میکروکنترلر avr جلسه6

آموزش جامع میکروکنترلر avr جلسه6


توجه ۱ : تا اونجایی که بتونم کد ها و ریجستر های مربوط به "ارتباط سریال USART" رو توضیح میدم و اگه جاییش رو نفهمیدید به مطلب قبلی مراجعه کنید و ببینید هر بیت مربوط به هر ریجستر کارش چیه.

آموزش جامع میکروکنترلر AVR جلسه۵

توجه ۲ : فایل های مربوط به هر سه تا پروژه رو به صورت یک جا در آخر برا دانلود میزارم.
توجه ۳ : این پروژه ها در ظاهر سادس ولی ممکنه تازه کارا به مشکل بخورن همون طور که بعضی از دوستان... ، به هر حال نظر من اینه که  موقع آموزش  باید پروژه های آسون بزارم و قشنگ توضیح بدم تا... قرار نیست که موقع آموزش پروژه ای در سطح پارس جنوبی بزارم که....) pardon
توجه ۴ : نحوه کار با LCD رو هم تو پروژه های مربوط به LCD باید خوب یاد گرفته باشید. فقط اینو بگم  که همیشه تا اونجایی ک میشه سعی کنید که LCD رو به PORTC وصل نکنید.و از پورت های دیگه استفاده کنید.
توجه ۵ : مطلب زیر رو حتما حتما بخونید>>>ادامه ی همین بحث هستش ولی تو قسمت مربوط به آموزش پروتئوس قرارش دادم.
آموزش جامع کار با پروتئوس جلسه۱

———–پروژه avr یک———–

آموزش جامع میکروکنترلر AVR جلسه6
همون طور که رد عکس بالا میبینید یه فرستنده داریم و یه گیرنده که با روشن خاموش کردن کلید ها  ، led ها روشن و خاموش میشوند.
و همون طور که مشاهده میکنید توسط پایه های RXD و TXD  که در PORTD هست این دو میکرو کنترلر به هم وصل شده اند.
این از کد های مربوط به میکرو کنترلر فرستنده

و اینم از کدهای مربوط به میکروکنترلر  گیرنده :

اگه توجه کنید کد های مربوط به “ارتباط سریال USART” در هر دو برنامه (هم فرستنده و هم گیرنده) تقریبا یکی هست غیر از ریجستر UCSRB که توسط بیت ۴ و ۵ همین ریجستر فرستنده گیرنده بودن میکروکنترلر رو تعیین میکنیم.(حالا دو هزاریت اوفتاد که چرا این دو کد با هم متفاوت اند.)

 ——-پروژه avr دو——-

اینم از پروژه ساده دوم>>> کار این پروژه اینه که با صفر یا یک کردن کلید مقدار اون در LCD نمایش داده میشود.
اینم از کد های برنامه فرستنده (تقریبا مثل پروژه قبلی هست فقط یه LCD اضافه شده)

اینم از کد های گیرنده :

 ————پروژه avr سه————

آموزش میکروکنترلر avr
تو این پروژه هر دو تا میکروکنترلر هم فرستنده هستن و هم گیرنده.
اینم از کد های برنامه که تو ه دو تا میکروکنترلر یکسان هست و هر دو میکرو کنترل از همین کد استفاده میکنن

اگه توجه کرده باشید کد های مربوط به  “ارتباط سریال USART”  تو این پروژه مثل دو پروژه قبل هستش فقط با این تفاوت که تو دو پروژه قبل ریجستر UCSRB ، مثلا فقط به صورت فرستنده یا گیرنده تعریف شده بود اما تو این پروژه هم به صورت فرستنده و هم به صورت گیرنده تعریف شده و اگه بازم دقت! کنید میبینید که بیت ۴ و ۵ این ریجستر یک هست که دلیلش رو گفتم.

عملی بستن مدار(مدار مربوط به پروژه ۲)

این پروژه دو که در بالا گزاشتم رو من به صورت عملی بستمش ولی چون میکروکنترلر مگا ۱۶ فقط یکی داشتم مجبور شدم از مگا ۸ استفاده کنم.
فیلمی هم که در زیر میبینید مربوط به همین پروژه هستش که فیلمش رو گرفتم.
اگه فیلم در زیر نمایش داده نشد از لینک زیر استفاده کنید.
http://www.aparat.com/v/j0KEw

دانلود ۳ پروژه این جلسه | حجم : ۳۶۰ کیلوبایت!

سوال موالی بود در خدمتیم. smile


بروزرسانی در یکشنبه – ۲۱ خرداد ۱۳۹۶
یه کتابخونه نوشتم برا مگا 16/32 ( فک کنم ) که برا ساده شدن کارتون میتونید ازش استفاده کنید؛ که شامل توابع زیر هستش :

که شما فقط کافیه :

  1. اول پروژه کتابخونه رو فراخونی کنید.
  2. اولای تابع main تابع uartInit رو فراخونی کنید و BaudRate مد نظرتون رو به این تابع بدید.
  3. از توابع ارسال و دریافت اطلاعات استفاده کنید؛ وسلام.

با استفاده از این کتابخونه دیگه نیاز نیست هر دقیقه کد نویسی مربوط به ارتباط سریال رو انجام بدید. good فایل این کتابخونه رو از زیر میتویند دانلود کنید :

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ الساچِرین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
189

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    جوادی

    Mahdi Javadi:
    با سلام مشکلی درخصوص کار با سریال AVR دارم کدی که نوشتم قبلا جواب ميداد ولی الان نه، احتمال داره کدویژن ایرادی داشته باشه؟ نسخه کاملشو دارین؟ تشکر

  2. Avatar

    مهمان

    سالار

    باسلام و عرض ادب
    بابت مطالب سایت خیلی ممنونم. بسیار آموزنده هستند.
    یه سوال داشتم:
    اگر بخواییم از طریق فرستنده عدد هگزا دسیمالی مثل عدد زیر بفرستیم و در گیرنده آنرا دریافت کنیم، به چه صورتی باید انجام بدهیم؟
    2B 52 2C 31 36 38 37 31 2C 32 2C 32 0A 0D
    باتشکر

  3. Avatar

    مهمان

    مهاجرانی

    سلام
    ممنون از مطالب خوبتون
    در ارتباط میکرو با متلب آیا نوشتن دستور خوندن در متلب کافیه؟
    یا باید اول دستور sprint رو در میکرو بنویسیم بعد با دستوری در متلب اون رو بخونیم

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – دقیقا متوجه منظورتون نشدم ( میکرو باید از دستور نوشتن استفاده کنه و متلب هم از دستور خوندن – این که از طبیعیات هستش )

  4. Avatar

    مهمان

    سینا

    سلام خسته نباشید
    من از طریق پایه دریافت usart یک رشته گرفتم از طریق getchar حالا میخوام اگه این رشته دریافتی برابر با ok بود یک if اجرا بشه و اگر نبود یک else if دیگه منتها نمیتونم مقدار رشته دریافتی رو بخونم(روی ال سی دی به راحتی میشه نمایش داد مشکلی نیست منتها نمیتونم روی اطلاعات این رشته کار کنم و بگم اگه مقدارش فلان شد فلان کارو بکن میشه یه راهنمایی بکیند ممنون میشم

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-خب شما تک کاراکتر تک کاراکتر دریافت میکنی و در آرایه ذخیره میکنی – بعد حالا میخوای مقایسه کنی – میخوای هر بلایی سرش بیاری بیار
      مگه میشه شما بتونی نمایش بدی اما نشه مقایسه کرد.!
      کدتونو بفرستید.(زیپ کنید)

      • Avatar

        مهمان

        sina

        حل شد ممنون از تابع strcmp استفاده کردم. ممنون بابت باسخ گویی

  5. Avatar

    مهمان

    بابک

    انگار باید این متنی که وقتی میزنی رو لینک باز میشه رو کپی کنم توی یه فایل از مدل سی وبعد بریزمش توی پوشه پروژه ؟ mail

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      کاری نداره که – لینک ته مطلب حاوی یه فایل با نام uart.h هستش – که شما داخل پوشه پروژتون ذخیره میکنید و به صورت زیر فرامیخونیدش :
      #include "uart.h"
      بعد از این کار میتونید از توابعش داخل پروژتون استفاده کنید – همین. – دیگه نیاز نی کلی رجیستر و … تعریف کنی و درگیرشون بشی.

  6. Avatar

    مهمان

    بابک

    سلام این کتاب خونه ای که گذاشتید رو چطور میشه ریختش ؟ wacko

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – میزاری داخل پوشه پروژه و ازش استفاده میکنی – در اول پروژت هم کتابخونه رو include میکنی.

      • Avatar

        مهمان

        جوادی

        با سلام خدمت شما
        یک سری کدسریال نوشتم در کدویژن که قبلا کاملا جواب ميداد ولی الان جواب نميده موندم چکار کنم

        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          سلام – تیکه تیکه بشین پروژه رو تست کن دیگه – من از کجا بدونم مشکل از کجاس – اول یه کد ساده چشمک زن بریز توش ببین فرکانسش درست تنظیمه یا نه – یا کد میکرو رو بخون و فیوز بیت هاشو بخون البته اگه قبل نزاشته باشی رو میکرو – ببین تنظیماتش با تنظبیمات پروژت یکی هستش یا نه – بعد ببین سیمی قطعی نداره – تغذیه مدار – درایور مبدل – baud rate صحیح و…….

  7. Avatar

    مهمان

    beheshti

    سلام
    سوال امشب که تا پنج شنبه وقت دارین با ترکیب مثالهای انجام شده امروز و دو برنامه ای که در اختیار دارین برنامه ای بنویسید که یک عدد 5 رقمی ابتدا از پورت سریال به عنوان پسورد دریافت شود سپس اگر از طریق کی پد این عدد دریافت شد روی lcd کلمهwellcome نمایش داده شود و رله وصل شود فایل برنامه را از طریق سایت ارسال نمایید
    من برنامه این رو تقریبا نوشتم آخرش رو موندم اگه میشه یک کم کمک کنید ممنون
    چجوری میشه کدی رو که از سریال دریافت میشه رو به عنوان کد رمز قرارداد

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام –

      سوال امشب که تا پنج شنبه وقت دارین

      اینو حداقل نمینوشتی – جای دیگه خواستی سوالو مطرح کنی – اینو حذف کن. pardon

      من برنامه این رو تقریبا نوشتم آخرش رو موندم

      ناگفته نماند که ما خودمون قبلا دانشجو بودیم! blush laugh

      در شروع کار اینجور پروژه ها یکم اضیت میکنه، راه حلش اینه که پروژه رو تیکه تیکه کرد :
      پروژه اول : شما ارتباط سریال رو راه بندازید – که یه عدد 5 رقمی بگیره – و در آرایه A ذخیره کنه.
      پروژه دوم : به کد پیشفرض مثلا 12345 که دخل آرایه B تعریف شده، تعریف کنید و اگه کاربر اینو وارد کرد رو LCD بنویسه wellcome.
      پروژه سوم : این رو رو ترکیب کنید ( آرایه A و B رو یکی کنید ) – کد 5 رقمی رو از سریال که گرفتید و داخل آرایه AB میریزید ( حالا اومدیم کاربر از سمت سریال کدی وارد نکرد – اشکالی نداره – میکرو قبلا یه کد پیشفرض 1234 تعریف کرده که داخل آرایه AB قرار داره ) ، حالا کاربر به کمک کیپد یه کد 5 رقمی وارد میکنه، شما دریافتش که کردی ( داخل آرایه مثلا BUFFER میریزیش)، میای مقدار آرایه AB رو با آرایه BUFFER مقایسه میکنی ( مقایسه 2 تا آرایه رو اگه بلد نیستی- تو نت سرچ کن – خونه به خونه باید با هم برابر باشند ) اگه این دو برابر بودند که کلمه مد نظر رو روی LCD نمایش میدی وگرنه مینویسی پسورد اشتباه هستش.

      این کلیت کاری هستش که شما باید انجام بدید.

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

      • Avatar

        مهمان

        beheshti

        سلام خیلی ممنون ولی من دانشجو نیستم من کلا15 سالمه اینم به عنوان مشق بهمون دادن.
        پروژه هارو به صورت جداگانه قبلا انجام دادم اما این ترکیبیه یکم پیچیده شده من خودمبه ذهنم رسید که 5 تا عددی که از سریال دریافت میکنه به صورت جداگانه درون یک متغیر بریزه اینکار رو کردم ولی درست جواب نگرفتم
        interrupt [USART_RXC] void usart_rx_isr(void)
        {
        char status,data;
        status=UCSRA;
        data=UDR;
        if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
        {
        rx_buffer[rx_wr_index++]=data;
        #if RX_BUFFER_SIZE == 256
        // special case for receiver buffer size=256
        if (++rx_counter == 0) rx_buffer_overflow=1;
        #else
        if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
        if (++rx_counter == RX_BUFFER_SIZE)
        {
        rx_counter=0;
        rx_buffer_overflow=1;
        }
        #endif
        }

        lcd_putchar(data);
        data = password;
        char password[5];
        {
        password[0]=a;
        password[1]=b;
        password[2]=c;
        password[3]=d;
        password[4]=e;

        } گفتم شاید کد نویسیم اشتباه باشه واسه همین سوال پرسیدم اگه ممکنه بگید این کد درسته یا خیر
        خیلی ممنون

        heart

        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          سوالتون رو در انجمن eca و مطرح کنید و کد کاملتون رو هم پیوست کنید دوستان راهنمایی کنند.

  8. Avatar

    مهمان

    مهاجرانی

    سلام
    موقع ارتباط سریال بین میکرو و کامپیوتر به جای متن نوشته شده داخل میکرو یه سری حروف اشتباه روی محیط ترمینال نشون میده. به نظر شما ایرادش چی میتوه باشه؟

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام — باودریت ( نرخ انتقال داده / BaudRate / BR ) فرستنده و گیرنده برابر نیست یا فرکانس فرستنده و گیرنده برابر نیست

      • Avatar

        مهمان

        مهاجرانی

        تشکر از پاسختون. ولی جواب نداد متاسفانه. به نظر شما ایراد از خود پورت usb به ttl نیست؟ ماژولش از نوع ch340 هستش مخصوص ویندوز 10.

        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          خب همون – اکثرا با این برد با این آیسی 340 مشکل دارن سر نصب نشدن درایورش – اولین برد آردوینو خودم از همین مدل بود و کار نکرد – از اون موقع دیگه از این مدل نخریدم – تو نت بگردید باید در این باره بحث شده باشه – من نمیدونم.

  9. Avatar

    مهمان

    راحیل

    نه منظورم ارسال دیتا بود
    ینی روشی ایده بدم که بتونیم متن رو بفرستیم

    اگه بد سوال می پرسم شرمنده blush

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      الان دنبال یه پروتکول مناسب هستی یا میخوای پروتکول طراحی کنی؟
      مورد اول : uart – spi – i2c – usb – و… اینا حالت با سیم هستند – بیسیم ها : Bluetooth – wifi و…
      مورد دوم : کار من و شما نی hi

  10. Avatar

    مهمان

    راحیل

    خییییییلی خوب بود
    وقتی منه صفر کیلومتر انقد فهمیدم ینی خییییییلی کارتون درسته heart
    فقط یکی بهم گفته برای ارتباط دو میکرو خودت یه پروتکل نظر بده که دیتا رو هم بتونیم در اون میکرو ببینیم من که نمی فهمم چی می گه laugh ولی تاکید داره هیچ اطلاعات خاصی نمی خواد و مثل یه ایده هست باید بدی
    من اینارو الان نیم بند تازه فهمیدم چی به چیه
    البته به جز کتابخونه که نفهمیدم اون چیکار می کنه blush بیسواد تر از منم داریییییییییم

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      دیتا رو در اون میکرو هم بتونیم ببینیم؟ یعنی چی؟
      نفهمیدم چی میگی

  11. Avatar

    مهمان

    رضا

    سلام
    ممنون از سایت عالیتون
    فکر کنم لینک دانلود کتابخونه مشکل داره
    ممنون میشم درستش کنید چون واقعا بهش نیاز دارم
    مرسی

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-درسته – کدشو کپی کن و داخل فایل txt با نام uart.h کپی کن.

  12. Avatar

    مهمان

    احمد رضا

    سلام
    برنامه کد یه خطا میده که هر کاری میکنم رفع نمیشه?
    declaration syntax error
    مشکل نوشتاری نداره

  13. Avatar

    مهمان

    شروین

    با سلام ممنون از مطلب بسیار عالیتون
    من میخواهم با استفاده از avr یک فرستنده ir درست کنم که led رو بر روی پورت tx خاموش و روشن کنم و اطلاعات از این طریق منتقل بشن ولی گیرنده من در فرکانس ۳۸khz کار میکنه میخواستم بدونم همین اطلاعاتی که بصورت ۰ و ۱ از پایه tx بیرون میاد رو چجوری باید مدیریت کنم تا با فرکانس گیرنده هماهنگ بشه و بتونم از طریق گیرنده نور فرا بنفش رو دریافت کنم؟
    گیرنده ir من TSOP1738 هستش
    اگر تنها یک راهنمایی فرمایید که از چه طریق میتونم این عمل رو کنترل کنم ممنون میشم لازم به توضیح نیست خودم سرچ میکنم.
    با تشکر

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      والا قبلا یکم با این ir ها کار کردم – اونم خروجی 0 و 1 ازش میگرفتم تا جایی که یادمه – الان اینی که میگید رو روال کار و دیتا دادن و گرفتن ازش نمیدونم دقیقا به چه صورته.
      الان میخواین با سریال بهش دیتا بدین؟ فرکانس سریال رو مگه میشه رو 38khZ تنظیم کرد؟
      والا فک کنم این سنسور شما – براش کتابخونه توی نت باشه – میتونی ازز اونا استفاده کنی –
      اینو سرچ کن – تو سایتای خارجی مطالب خوبی پیدا میکنی ( البته اگه قبلش تو نت فارسی چیزی پیدا نکردی ) :
      TSOP1738 AVR PROJECT

  14. Avatar

    مهمان

    علی

    سلام
    اگه نرخ تبادل رو بخوایم عوض کنیم،مثلا 13600،این عدد رو چجوری باید تبدیل کنیم؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-به دیتاشیت مراجعه میکنی و تو فصل یوزارت – یه سری جدول برا این قسمت هستش که به ازای فرکانس های مختلف میکرو – و باود ریت های مختلف- مقادیر رجیستر ها رو نوشته-در ضمن تا جایی که میدونم و یادمه هر مقداری نمیتونی تعیین کنی برا نرخ داده – مثلا 1234 – تا جایی که یادمه

  15. Avatar

    مهمان

    amir

    سلام ممنون از مطالب خوبتون قربون دستت میشه این 3 خط کد را واسم توضیح بدی کاری که انجام میده را میدونم چیه فقط تحلیل اون & و | را نمیدونم و مقدادیر UCSRA
    1-if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
    2-if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0))
    3-این که تو دستور if عبارتی بدون شرط قرار میگیره مثلا مینویسه if(rx_counter) منظور از این چیه”

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      درباره & و | تو سایت قسمت آموزش c فک کنم گفته باشم – نگفته باشم هم تو نت بزنی هستش.

  16. Avatar

    مهمان

    MOrteZA

    سلام مهندس اگه می خوای میتونم کد هاتون رو با atmel studio بنویسم و براتون بفرستم یا تو نطرات قرار بدم اگه می خوان پایین همین پست جواب بدین
    یا علی

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام.ظرری نداره – آموزششو هم میتونی بدی؟

      • Avatar

        مهمان

        MOrteZA

        اره مشکلی نیست فقط بگو فرمت فایل(power point – word pdf) چی باشه و کجا ارسال کنم
        هر پروژت یک روز طول میکشه تا درست کنم از همین پروژه های این صفحه شروع می کنم

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          فرمت که ورد باشه ولی آموزششو اول بدی به نظرم بهتره – فیلم باشه مثلا – حالا باز خودت هر طور صلاح میدونی.

  17. Avatar

    مهمان

    معین

    سلام خدمت آقای مهندس ببخشید من کل مطالبتون رو خوندم مفید بود ولی من نتونستم بفهمم چجوری تو پروژم استفاده کنم ازش . پروژه بنده اینه که یه کیبورد کامپیوتر و با استفاده از مادگی usb و با استفاده از ارتباط سریال به میکرو مگا32 وصل کنم و کد اسکی های اون کلیدی که فشار می دیم رو نمایش بده ولی نمی فهممش چجوری این کار و انجام بدم. لطفا اگه می شه یه راهنمایی بکنید

  18. Avatar

    مهمان

    qs

    سلام تابع itoa چیه

    • Avatar

      مهمان

      MOrteZA

      تبدیل int به string
      بیشتر برای نمایش روی lcd استفده میشه
      توابع sprintf و dtostrf هم هستن
      یا علی

  19. Avatar

    مهمان

    i

    کد های هگز بلدم فقط نمیدونم این کد هاییی که جلوش نوشتی چیه مطلب قبلی خوندم همون جدول اینا درست معلوم نبود میشه لطف کنی برام ساده توضیح میدی

  20. Avatar

    مهمان

    i

    کد های هگز ریجیستر های یوزارت خیلی معلوم نیست چی به چی هست

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      آها – با فرمت مقدار دهی کدهای هگز آشنایی داری؟ اگه نداری که برو مطالعه کن – اگه داری خب پس میدونی هر بیت مقدارش چقدر میشه – خب اون ریجستر رو برو بخون ببین کار هر بیتش چیه و چرا 0 و 1 اش کردم من.

  21. Avatar

    مهمان

    i

    سلام میشه کد های هگزش رو برام توضیح بدید چون درست متوجه نمیشم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-کدوم خط پروژه رو مشکل دارید؟
      اگه کد .hex منظورتونه که اون زبون ماشین هستش و من بلد نیستم.

  22. Avatar

    مهمان

    رضا

    سلام
    وقت بخیر
    برای یک پروژه ای نیاز به ارتباط دو میکرو attiny13,atmega8 داریم. برای اینکه پایه های تاینی ۱۳ لازم داریم نیاز به پروتکلس داریم که حداقل تعداد پایه را اشغال کند که به پروتکل های i2c ,1wire رسیدیم که تاینی ۱۳ از پروتکل معروف twi پشتیبانی نمی کنه(دیتا شیت) پیشنهاد شما برای ارتباط این دو میکرو چی هست و اگر فایلی برای این دو پروتوکول دارید ممنون میشم راهنمایی ام کنید. تشکر

  23. Avatar

    مهمان

    محمد بهرامی

    سلام خدمت دوستان عزیز و خصوصا اقا مهدی که بدون هیچ چشم داشتی این اموزش ها رو میزارن
    ببهشید یسوال من میخام ماژول NEO6m رو راه اندازی کنم با سریال اماخب نمیدونم چطوری داده ها رو تجزیه کنم و همچنین نیاز به ی عملیات ریاضی داره داده ها به صورت زیره
    http://s8.picofile.com/file/8308534018/photo_2017_10_08_16_33_07.jpg
    که من به اون بخش $GPGLL نیاز دارم لطفا راهنمایی کنید به زبان سی
    ممنون pardon

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بگرد براش یه کتابخونه گیر بیار به نظرم اگه کدنویسیت ضعیفه و وقتت کمه.
      والا میخونی میریزی تو یه آرایه – هر بار دریافت داده
      بعد یه تابع تعریف میکنی که بگردی مثلا اول G رو پیدا کنه – بعد اگه پیدا کرد میای میبینی که حرف بعدیش هم P هستش اگه بود ….

  24. Avatar

    مهمان

    Ali

    سلام جناب میبخشید من اتمل استودیو کار میکنم میخواتسم بدونم این کد هایی که نوشتید خیلی تو اتمل استودیو فرق داره خیلی برام مهمه لطفا کمک کنید help

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-نه زیاد

  25. Avatar

    مهمان

    محمد حسین

    سلام.
    تشکر از مطالب خوبتون.
    لظفا مطالب مربوط به پروژه سنسور اثر انگشت سری R30X رو قرار بدهید.
    تشکر فراوان…

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      دارم مینویسم

      • Avatar

        مهمان

        عزیز

        سلام
        آقا مهدی این ماژول اثر انگشت R30x راه نیوفتاد؟

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          سلام
          یه ماژول اثر انگشت راه انداختم گزاشتم تو سایت – نمیدونم همون مدلی هستش که شما میگید یا نه – اسمش خاطرم نیست

  26. Avatar

    مهمان

    fatemeh

    وقت بخیر … من برای ارتباط میکرو و ماژول تشخیص اثر انگشت باید از uart استفاده کنم . در تست میکرو متوجه شدم که میکرو اطلاعات رو اشتباه می فرسته مثلا به جای EF ،
    F8 رو ارسال می کنه . من رو برد برد بستم . ممکنه مشکل از نویز باشه ؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      کدوم ماژول اثر انگشت؟ من دارم با R30X کار میکنم – چند روز دیگه مطلبش رو میزارم – والا نمیدونم کجا سوتی دادین – بله نویز مخصوصا امواج اینترنت ۴g تاثیر دارن.

  27. Avatar

    مهمان

    محمدقاسم

    سلام سایتتون از هر نظر عالیه
    یه راهنمایی بدید دیتاشیت tsl3301 یک سنسور نوری که ۱۰۲تا پیکسل داره و سر خودش مبدل انالوگ دیجیتالداره یعنی شدت نور روی هر پیکسل از ۰ تا ۲۵۵ هشت بیتی درمیاره و سریالی میفرسته توسط پین sdout خوب چه طوری هر بایت ها رو بریزم تو یک متغیر intens [102]رو چطوری دستور . کلا گیج شدم

  28. Avatar

    مهمان

    saeid

    سلام داداش واقعا دمت گرم با این هدر فایلت منو از سردرگمی نجات دادی (تو خوندن دیتا از ماژول rfid مشکل داشتم) فقط خواستم ازت تشکر کنم مرسی give_rose

  29. Avatar

    مهمان

    رضا

    سلام. عذر می خوام چطور می تونیم تعداد بیت بیشتری از میکرو به pc ارسال کنیم؟
    من با یه مبدل ۲۴ بیتی ADCکار می کنم که خروجی ماژول رو به میکرو می دم و بعدش باید از میکرو داده رو به pc بفرستم. برای ارسال این ۲۴ بیت چطور باید عمل کرد؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – خب در ۴ بسته ۸ بیتی دیتا رو ارسال میکنی دیگه – حالا برا اطمینان بیشتر ۶ تا بسته ارسال میکنی یه بسته شروع بعد ۴ تا دیتا و بعد ۱ دونه پایان تا تو برنامه سمت کامپیتور برا بحث تشخیص دیتا به مشکل بر نخوری

  30. Avatar

    مهمان

    amin6

    سلام . از اتمگا۳۲ استفاده میکنم . میکروی من چندتا کارو همزمان انجام میده تو این حین یه رشته از طریق یوزارت دریافت میشه منتها تابع get برنامه رو تو خودش تا زمانی که رشترو کامل دریافت کنه نگه میداره واسه همین تو بقیه کارای میکروم تاثیر میزاره و میخواستم بدونم راهی هست که بتونم بدون وقفه دریافت بزنم ؟
    دوم اینکه اگه مجبور شدم با وقفه بزنم کدویزارد دوتا تابع خودش اضافه میکنه به نام isr و getchar نمیدونم از اینا چطور باید استفاده کرد جوری که فقط وقتی کامل رشته دریافت شد به من وقفه بده و ممنون میشم اگه راهنمایی کنید یا مطلب مفیدی رو تو این موضوع معرفی کنید تا بخونم .

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-از وقفه استفاده کن.

      • Avatar

        مهمان

        amin6

        اون دوتا تابعی که کدویزارد برای وقفه اضافه میکنرو چجوری باید استفاده کرد ؟ یعنی هروقت که کاراکتری دریافت بشه . نمیشه یه جوری استفاده کرد که وقتی یه رشته معلوم دریافت کرد وقفه بده . من اول میخوام یه دستور show دریافت کنم بعدش یه مقدار float دریافت کنم و اون مقدار رو نمایش بدم تو lcd . چجوری باید تو حلقه واسه این کار با استفاده از تابع وقفه کد بزنم ؟ ممنون میشم جواب کاملتر بدید .

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          تو نت بسرچ “وقفه ارتباط سریال میکرو” یا “AVR UART receive interrupt” رو بسرچ که بهتره به جای Avr اسم میکروتو بزاری –

  31. Avatar

    مهمان

    رضا

    سلام من یه سوال داشتم من بجای استفاده از (putchar(A از UDR=0x41 استفاده کردم ولی سرعت ارسال خیلی پایین اومد به نظر شما چرا این طوری شد؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      کتابخونه ته مطلب رو دانلود کن و تابع مربوطه رو بررسی کن – این تابع رو دیتاشیت میکرو پیشنهاد داده تا جاییی که در خاطرمه.

  32. Avatar

    مهمان

    علیرضا آهنی

    سلام.
    لینک دانلود خراب است.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سالمه

      • Avatar

        مهمان

        علیرضا آهنی

        سلام.
        روش کلیک کردم دانلود نمیشه

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          کده – یه فایل به با نام uart.h ایجاد کن و کدو توش کپی کن.

        • Avatar

          مهمان

          علیرضا آهنی

          تو کجا؟

  33. Avatar

    مهمان

    علیرضا آهنی

    سلام!
    اسم این گتابخونه چیه؟
    چون تو کدیزن خاستم کار کنم چه چیزی را معرفی کنم اول پروزه؟

  34. Avatar

    مهمان

    مصطفی

    سلام خسته نباشید!!
    اخر مطلب این جمله رو گفتی که برای عملی بستن ی نکته کوچولو داره . خواستم بدونم اون چیه؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – متاسفانه خاطرم نیس – شما مدارو ببندید – مشکلی رخ داد من در خدمتم.

  35. Avatar

    مهمان

    meysam

    با سلام
    ببخشید توی میکروهای که دوتا usart دارن مثل مگا ۶۴ به بالا چطور میشه توی بیسکام این را پیاده کرد همه فعال سازی ها با تابع است ؟؟؟؟؟؟؟؟؟!!! no no

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بسکام کار نکردم ولی اگه رجیسترهاشو بلد باشی میتونی توابع مورد نیازشو بنویسی به سادگی.

  36. Avatar

    مهمان

    فرزانه

    سلام در پروژه دوم اگه بخوام به جای صفر و یک on ,off نشون بده باید چیکار کرد؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      از تابع PUTS و یه IF باید استفاده کنی – مطلب آموزش LCD کاراکتری و توضیح توابعش تو سایت هستش – تو نت هم بزنی آموزشش میاد

  37. Avatar

    مهمان

    محمد

    اقا سلام
    میگم توی پروژه اول نباید getchar و putchar هردو برای پورت d باشند؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      پروژه درسته – کجاشو مشکل داری؟ تو این پروژه مقدار پین بی رو اومدم ارسال کردم.. و تو اون یکی میکرو تو اون led ها نشونش دادم.

  38. Avatar

    مهمان

    IMAN

    بسیار متشکرم از سایت خوبتون

  39. Avatar

    مهمان

    IMAN

    سلام و وقت بخیر مهندس …یک سوالی برام پیش اومده جناب مهندس من پروژه شماره ۳ را با مگا۸ در پروتوس راه انداختم ولی جالب اینجاست من در پروتوس جواب میگیرم و در عمل انگاری مدار برای خودش کار میکند…راه حل شما چیه ؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      احتمالا یا اتصالاتت اشتباهه – یا فرکانس – یکی از این دو – در ضمن این پروژه برا مگا۱۶و۳۲ هستش – رجیستر های مگا ۸ مممکنه فرق داشته باشن – دیتاشیتشون رو بررسی کن ببین رجیستر ها فرق دارن یا نه

  40. Avatar

    مهمان

    علیرضا

    معرکه بود…..

  41. Avatar

    مهمان

    بهرام دیبا

    ای بابا این پروژه ها که قابل دانلود نیست.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      بررسی کردم مشکلی نبود – بازم اگه دانلود نشد بگو تا یه جای دیگه اپلود کنم برات

  42. Avatar

    مهمان

    علیرضا

    سلام لینک ها خراب شده هست

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تصحیح شد

  43. Avatar

    مهمان

    علی

    با سلام من اگه بخوام دیتا هایی که از ADC میگیرم رو برای کامپیوتر ارسال کنم چه جوری برنامه اش رو بنویسم که بفرسته اموزش ها رو گامل خوندم ارتباط با گامپیوتر ها رو هم دیدم ولی نفهمیدم پی شد؟؟ مرسی اگه برنامه اش رو بنویسید

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      داچی من بخوام برا همه دوستان پروژه انجام بدم که دیگه شبا هم باید بیدار بمونم و پروژه انجام بدم که laugh
      شما شروع کن – به مشکل برخوردی ما در حد توانمون در خدمتیم.

  44. Avatar

    مهمان

    amingoodarzi

    سلااااام و خسته نباشید خیلی زیاد.اول از همه خییییییلی تشکرر کنم بابت سایتت و مطالبش که بی نظیره.واقعا خسته نباشید داره.شرمنده یه مشکلی برام پیش اومده اگرلطفا جواب بدی ممنون میشم.
    من میخوام همین روش رو برای به کار انداختن موتور دی سی به کار ببرم ولی مشکلی که توی شبیه سازی با پروتدوس دارم اینه که روی ال ای دی مثل مثال بدون نقص انجام میشه و با روشن و خاموش کردن کلید ها ال ای دی روشن و خاموش میشه.ولی روی موتور دی سی با زدن کلید موتور روشن میشه بدون مشکل ولی خاموش نمیشه با خاموش کردن کلید و روشن میمونه!!لطفا اگه کمکم کنی ممنون میشم
    با تششششششکر

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      پروژت رو زیپ کن بفرست ببینم.

  45. Avatar

    مهمان

    جاوید

    سلام.من که گیج شدم.داداش مگه نمیگیم putchar و getchar برای ارسال و دریافت تک کاراکتر هس؟خب پس چطور اطلاعات کل پورت رو میشه فرستاد؟چرا از دستور gets استفاده نمیکنیم؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بله putchar و getchar برا تک کاراکتر هستش و gets و puts برای رشته(چند کاراکتر)
      خب یه پورت 8 تا پایه داره – حداقل مقدار همچین پورتی میشه 0 و حداکثر میشه 255
      حالا یه کاراکتر از نوع unsigned char شامل کاراکتر های 0 تا 255 هستش – و من دیتای کل پورت رو به صورت یه تک کاراکتر میفرستم و بعد تو قسمت دریافت کننده میام دیتا رو تجزیه میکنم.

  46. Avatar

    مهمان

    وحید

    سلام خسته نباشی
    به نظر شما واسه فرستنده و گیرنده بی سیم چه مدل ماژول بخرم جواب بدن؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      nrf24l01+

  47. Avatar

    مهمان

    وحید

    سلام خسته نباشی
    یک سوال داشتم در مورد پروژه یک
    برای فرستنده و گیرنده rxd و txdبا سیم وصل کنم بدون تداخل کار میکنه و لی با ماژول rx706وصل میکنم قاطی میکنه یعنی خودش لامپ خاموش و روشن میشه!!!
    مشکل از کجاست

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      با این ماژول کار نکردم – یا خرابه – یا درست ازش استفاده نمیکنی(چون بعضی ماژول ها نیاز هستش که ریجسترش هاش رو کنترل کنی برا کارای مختلف که نیاز به کتابخونه برا راه اندازیش هستش و…) – یا تو اون فرکانسی که کار میکنی یه نفر داره کار میکنه و…

  48. Avatar

    مهمان

    وحید

    سلام ببخشید یک سوال داشتم
    من پروژه یک بستم هنوز کیلد فشار ندادم led خودش خاموش و روشن میکنه یعنی قاطی میکنه مشکل از کجاست؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      مطلب جلسه 10 یا 11 آموزش جامع avr رو بخون – دقیقا نمیدونم کدوم مطلب بود – موضوعش مقاومت پول آپ بود فک کنم.
      مشکل از مدار کلید شما هستش.

    • Avatar

      مهمان

      پارسی

      سلام
      بعداز اتصال دیپ سویچ به پورت بی طرف دیگر سویچها را به گراند وصل کنید.
      برای فعال کردن مقاومت های پول آپ بصورت نرم افزاری نیز سطر زیر را به برنامه اضاف کنید.
      PORTB=0XFF;
      بدیهی است در این حالت دیگر نیازی به مقاومتهای پول داون نمی باشد.
      موفق باشید

  49. Avatar

    مهمان

    ریحانه

    پروژه های داخل سایت تاجایی که من دیدم ارتباط میکرو با میکرو هست .
    اگه pc با میکرو دارین میشه لینک بذارین لطفا .
    متشکرم

1 2