آردوینو آموزش آردوینو دسته‌بندی نرم افزار Proteus

شبیه سازی بردهای آردوینو در پروتئوس نرم افزار Proteus

Arduino-uno-ldr-and-proteus-tutorial-digispark
نوشته شده توسط مهدی تاج الدینی

گاهی اوقات لازم است قبل از ساخت و تولید یک پروژه آن را شبیه سازی کنیم. برای شبیه سازی مدارهای الکترونیک از نرم افزاری به نام پروتؤس استفاده می‌شود. نرم افزار پروتئوس در زمینه شبیه سازی یک مدار الکترونیکی کاملا شبیه به واقعیت را فراهم می‌کند. شبیه سازی مداراتی که با آردوینو ساخته می‌شوند نیز یکی از توانایی های این نرم افزار است که با فایل های کمکی قابل دستیابی است.

 


شبیه سازی آردوینو در پروتئوس


تمامی بردهای آردوینو در نرم افزار پروتئوس Proteus قابلیت شبیه سازی دارند. برای شبیه سازی یک برد آردوینو از جمله بردهای آردوینو مگا Mega2560، آردوینو Uno ، نانو و مینی و یا حتی لیلی پد Arduino Lilypad باید کتابخانه این بردها به نرم افزار Proteus اضافه شود. در ادامه نحوه اضافه کردن کتابخانه، دانلود و نحوه اجرای برنامه درون این بردها را توضیح خواهم داد. ابتدا لازم است که کلیه کتابخانه‌های مورد نیاز را دانلود کنید. پس از باز کردن فایل ZIP دانلودی دو فایل با فرمت‌های LIB و IDX در اختیار شما قرار می‌گیرد. حال باید به محل نصب Proteus وارد شویم. برای یافتن آدرس نصب نرم افزار پروتئوس Proteus به این صورت عمل کنید. با کلیک بر روی آیکون آن و انتخاب گزینه Open file location آدرس را پیدا کنید. ولی اگر در هنگام نصب محل آن را تغییر نداده‌اید در آدرس زیر وجود دارد.

C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional

 

جهت دانلود کتابخانه بردهای آردوینو در نرم افزار پروتئوس Proteus به صفحه محصول آردوینو در فروشگاه مراجعه کنید. در قسمت دانلود کتابخانه مورد نیاز قرار گرفته شده است. حال به پوشه LIBRARY  رفته و فایل‌های دانلودی را به آن جا انتقال دهید. سپس وارد نرم افزار Proteus شده و روی گزینه P کلیک کنید. به تصویر زیر دقت کنید.

محیط نرم افزار پروتئوس Proteus - دیجی اسپارک

سپس با کلیک بر روی Arduino مانند شکل زیر می‌توانید کتابخانه مربوط به آردوینو را باز کنید.  این بردها در نرم افزار پروتئوس Proteus به صورت سبز رنگ هستند. زیر کتابخانه Arduino با Gnuino هیچ تفاوتی ندارد. همانطور که می‌دانید هر دو برند یکسان هستند.

arduino in Proteus-digispark

 


کد پروژه فتوسل LDR با آردوینو 


 

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

 

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

 

ابتدا بر روی verify کلیک می‌کنیم تا کد در جایی دلخواه ذخیره شود،سپس با کلیک بر روی Sktch از تب بالای Arduino IDE روی Export comiled Binary کلیک میکنیم،متوجه می شویم در همان جایی که فایل را ذخیره کرده بودیم دو فایل دیگر با فرمت باینری زخیره شده‌اند. به تصویر زیر دقت کنید.

کدنویسی آردوینو UNO و شبیه سازی در نرم افزار پروتئوس Proteus - دیجی اسپارک

 


تنظیمات آردوینو در پروتئوس Proteus


حال به نرم افزار پروتئوس مراجعه کرده و یک برد از قسمت کتاب خانه Arduino انتخاب کنید. با دو بار کلیک بر روی برد پنجره‌ای مانند زیر باز می‌شود.

شبیه سازی آردوینو در محیط نرم افزار پروتئوس Proteus - دیجی اسپارک

 

سپس مانند تصویر زیر از بخش Program File جهت فراخوانی فایل‌های مورد نیاز روی بخش مشخص شده کلیک کنید.

Arduino uno and proteus tutorial-digispark 4_4

 

سپس یکی از همان دو فایلی که در کنار کد آردوینو ساخته شده را انتخاب کنید و بر روی Ok کلیک کنید.

انتخاب فایل آردوینو جهت شبیه سازی در پروتئوس - دیجی اسپارک

 


شبیه سازی پروژه آردوینو در پروتئوس


پس از انجام اقدامات نرم افزاری، می‌بایست موارد سخت افزاری آردوینو را اجرا کنیم. همانند تصویر زیر مدار LDR فتوسل را روی برد آردوینو ببندید.

مدار فتوسل LDR با آردوینو در نرم افزار پروتئوس Proteus - دیجی اسپارک

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

شماتیک پروژه ldr فتوسل با آردوینو Arduino uno and ldr - دیجی اسپارک

 

قطعات و وسایل موردنیاز

فتوسل Photocell LDR

برد آردوینو Arduino

ال ای دی LED

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 


پروژه و دریافت بن خرید


طی چند قسمت قبلی که طرح پروژه را پیاده سازی کردیم، با استقبال شما کاربران مواجه شدیم. در این سری برای اینکه گستره بیشتری از افراد بتوانند فرصت استفاده از بن خرید را داشته باشند؛ روال دیگری را در پیش گرفتیم. در این روش تصمیم گرفته‌ایم به ۱۰ نفر از کاربران بن خرید ارایه شود. برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و بسته به خلاقیتشان، مدار جدیدی ایجاد کنند. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ «#دیجی_اسپارک» و «#دانشجوکیت» و «#digispark» و «#daneshjookit» منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان از دانشجو کیت، لینک را ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

مهدی تاج الدینی

دانشجوی مهندسی برق-بعضی از زمینه های فعالیتم در زبان های برنامه نویسیC-C++-Arduino-AVR-Matlab

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۷ دیدگاه

  • سلام
    از آموزش کامل و توصیحات خوب ممنونم. فقط من متوجه نشدم از کجا کتابخانه آردوینو mega را دانلود کنم. من فقط مگا۲۵۶۰ دارم. لطفا راهنمایی کنید.

    • برای دانلود کتاب خانه ها از قسمت صفحه محصول یا از لینک زیر از قسمت دانلود بر روی دانلود کتابخانه برد آردوینو برای پروتوس دانلود فرمائید‌ ٬ توجه کنید که همه برد ها داخل همان کتاب خانه هست که زیر برد UNO آمده است.

    • با سلام
      ضمن تشکر از توجه شما، فایلی که از سایت دانلود کردید را باید داخل پوشه Library واقع شده در محل نصب پروتوس کپی کنید که محل این پوشه در نصب پروتوس به طور پیشفرض آدرس زیر می باشد:
      C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY

      (با توجه به ویندوز میتواند متفاوت باشد)

    • با سلام در مورد پرسش شما از نبود Library در ورژن جدید پروتوس درست فرمودید شما میتوانید آن را در آدرس زیر پیدا کنید:
      C:\Program data\Labcenter Electronics\Proteus 8 Professional\LIBRARY
      شاید پروگرام دیتای شما نیز hidden باشد از این حالت بردارید تا دیده شود.
      با تشکر.

    • با سلام
      ضمن تشکر از توجه شما ، موارد زیر را چک کنید:
      ۱-کد ۲- آیا کد داخل آیسی داخل پروتوس لود شده یا خیر ۳-با کلیک بر روی LDR مقاوت آن را چک کنید که خیلی بالا نباشد ، در صورت کار نکردن مجددا عنوان کنید .

    • با سلام
      ضمن تشکر از توجه شما ، موارد زیر را چک کنید:
      ۱- کد ۲- فایل روی برد آردوینو در پروتوس آپلود شده باشد ۳- برنامه را در پروتوس ران کرده باشید ۴- در صورت کار نکردن میزان مقاومت LDR را کمتر کنید این مقدار پیش فرض روی یک ملیون است.
      ۵-نزدیک و دور بودن نور به LDR را چک کنید .

  • سلام خانم مهندس
    میشه لطف کنین کد زیر رو زبان عامیانه و تحت الفظی برام ترجمه کنید. میخوام بدونم در هر خط چه درخواست و اتفاقی افتاده است.
    سپاس
    ;int sensor_pin = 0;
    int led_pin = 13;
    volatile int heart_rate;
    volatile int analog_data;
    volatile int time_between_beats = 600;
    volatile boolean pulse_signal = false;
    volatile int beat[10]; //heartbeat values will be sotred in this array
    volatile int peak_value = 512;
    volatile int trough_value = 512;
    volatile int thresh = 525;
    volatile int amplitude = 100;
    volatile boolean first_heartpulse = true;
    volatile boolean second_heartpulse = false;
    volatile unsigned long samplecounter = 0; //This counter will tell us the pulse timing
    volatile unsigned long lastBeatTime = 0;
    void setup()
    {
    pinMode(led_pin,OUTPUT);
    Serial.begin(115200);
    interruptSetup();
    }
    void loop()
    {
    Serial.print(“BPM: “);
    Serial.println(heart_rate);
    delay(200); // take a break
    }
    void interruptSetup()
    {
    TCCR2A = 0x02; // This will disable the PWM on pin 3 and 11
    OCR2A = 0X7C; // This will set the top of count to 124 for the 500Hz sample rate
    TCCR2B = 0x06; // DON’T FORCE COMPARE, 256 PRESCALER
    TIMSK2 = 0x02; // This will enable interrupt on match between OCR2A and Timer
    sei(); // This will make sure that the global interrupts are enable
    }
    ISR(TIMER2_COMPA_vect)
    {
    cli();
    analog_data = analogRead(sensor_pin);
    samplecounter += 2;
    int N = samplecounter – lastBeatTime;
    if(analog_data (time_between_beats/5)*3)
    {
    if (analog_data thresh && analog_data > peak_value)
    {
    peak_value = analog_data;
    }
    if (N > 250)
    {
    if ( (analog_data > thresh) && (pulse_signal == false) && (N > (time_between_beats/5)*3) )
    {
    pulse_signal = true;
    digitalWrite(led_pin,HIGH);
    time_between_beats = samplecounter – lastBeatTime;
    lastBeatTime = samplecounter;
    if(second_heartpulse)
    {
    second_heartpulse = false;
    for(int i=0; i<=9; i++)
    {
    beat[i] = time_between_beats; //Filling the array with the heart beat values
    }
    }
    if(first_heartpulse)
    {
    first_heartpulse = false;
    second_heartpulse = true;
    sei();
    return;
    }
    word runningTotal = 0;
    for(int i=0; i<=8; i++)
    {
    beat[i] = beat[i+1];
    runningTotal += beat[i];
    }
    beat[9] = time_between_beats;
    runningTotal += beat[9];
    runningTotal /= 10;
    heart_rate = 60000/runningTotal;
    }
    }
    if (analog_data 2500)
    {
    thresh = 512;
    peak_value = 512;
    trough_value = 512;
    lastBeatTime = samplecounter;
    first_heartpulse = true;
    second_heartpulse = false;
    }
    sei();
    }

    • با سلام
      کاربر گرامی این پست توسط آقای مهدی تاج الدینی نوشته شده است. دقت داشته باشید وقت اسپارکرها و نویسنده‌های سایت در اختیار جنابعالی نمی‌باشد که تمامی کدها را ترجمه کنند. لطفا هر جایی سوالی دارید از طریق بخش نظرات مربوط به آموزش مورد نظرتان، بخش به بخش را سوال کنید.

  • سلام خسته نباشید
    mixed model AVR2.DLL failed to authorize – Missing or invalid Customer Key.. [GEN1]
    Real Time Simulation failed to start.
    Simulation FAILED due to fatal simulator errors.
    همه کارایی که گفته شده رو انجام دادم و به ارور های بالا بر خوردم لطفا کمک کنید سپس

  • سلام خسته نباشید،
    برای نصب کردن یا برای اولین بار باز کردن این نرم افزار به اینترنت هم نیاز است؟چون که کامپیوتر من به اینترنت متصل نیست.

  • سلام روزتون بخیر
    ببخشید من یه سوال دارم من کتابخانه برد اردوینو رو همین طوری که گفتین تو کتابخانه پروتئوس اضافه کردم اما تو پروتئوس چیزی بالا نمیاد از بردهای اردوینو میشه لطفا راهنمایی کنید ممنون میشم