<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های mohammadrezaamrollahi69</title>
        <link>https://virgool.io/feed/@mohammadrezaamrollahi69</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-21 12:01:18</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>mohammadrezaamrollahi69</title>
            <link>https://virgool.io/@mohammadrezaamrollahi69</link>
        </image>

                    <item>
                <title>خزنده وب</title>
                <link>https://virgool.io/@mohammadrezaamrollahi69/%D8%AE%D8%B2%D9%86%D8%AF%D9%87-%D9%88%D8%A8-qpvhd7em9pyu</link>
                <description>سئو یک پروسه بهبود مداوم می باشد که ابزار های آنلاین زیادی برای آن وجود دارد. این ابزار ها اطلاعات ارزشمندی را برای ما فراهم کرده و برای شروع بسیار مفیدند. یکی از این ابزار ها خزنده وب سایت یا web crawler ها هستند. خزنده وب چیست ؟خزنده وب ها در واقع بخش اصلی و مرکزی یک موتور جستجو را تشکیل می دهند. در واقع به زبان ساده، یک نرم افزار یا اسکریپت اتوماتیک است که با توجه به الگوریتم مشخص و هدفمندی که برایشان تعریف شده است، در وب سایت های موجود به گردش میپردازند و محتوای آنها را در دیتابیس موتور جستجو ذخیره می کنند. به این فرایند index کردن محتوای وب سایت گفته می شود. هر خزنده وب از الگوریتم و معماری منحصر به فرد و کاملا مخفی تشکیل شده است.اسامی مختلفی برای خزنده وب در نظر گرفته شده است و معروفترین آنها عبارتند از: Web Spider, Automatic Indexer, Web Robots یا نرم افزار FOAFهمچنین بعضا دیده شده است که یک موتور جستجوی مانند Scooter به خزنده خود نامی منحصر به فرد بنام Alta vista اختصاص داده است.خزنده وب چگونه کار می کنداگر بخواهیم نحوه عملکرد یک Web Crawler را توضیح دهیم باید اشاره ای به طبیعت زندگی عنکبوت داشته باشیم. همانطور که می دانید، عنکبوت برای ساخت تور محل زندگی خود، ابتدا تارهای عمودی به عنوان نشانه گذاری به مرکزیت نقطه ای خاص میتاباند و در مرحله بعدی با متصل کردن این تارها در نقاط مشخص تور زیبا و ظریف خود را می سازد.یک خزنده وب هم دقیقا به این صورت عمل می کند. در واقع زمانی که مشغول Index نمودن وب سایتی خاص است، لینک های موجود در سایت به عنوان نقاط اتصال تارهای عنکبوت دیده می شود و هرچه این نقاط بیشتر و قوی تر باشد، Crawler وب بیشتر به وب سایت سر می زند. در واقع میتوان اینگونه توضیح داد که لینک های موجود در وب سایت، به اصطلاح همان Seo یا feed هستند که خزنده وب به دنبال آنهاست.مزایای استفاده از web crawler چیستاستفاده از خزنده های وب این مزیت را دارد که می تواند فرایند خزیدن داده های بصورت دوره ای کنترل نمایید. همچنین فواید دیگری دارد که عبارتند از:این پروسه در پشت زمینه اتفاق می افتد، و بیشتر اوقات بر روی عملکرد وبسایت تاثیر ندارد.هیچ دانشی را از قبل لازم ندارد.بازرسی و ویرایش امکان پذیر است.</description>
                <category>mohammadrezaamrollahi69</category>
                <author>mohammadrezaamrollahi69</author>
                <pubDate>Sat, 06 Jun 2020 22:16:41 +0430</pubDate>
            </item>
                    <item>
                <title>خزنده وب در جاوا</title>
                <link>https://virgool.io/@mohammadrezaamrollahi69/%D8%AE%D8%B2%D9%86%D8%AF%D9%87-%D9%88%D8%A8-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-wmfcztiyt2p8</link>
                <description>معنای Crawler یک Spider ، یک Crawler از نظر لغوی به معنی عنکبوت و خزیدن است. Spider ها یا Crawler ها هر دو در واقع یک چیز هستند ، آنها نرم افزار یا اسکریپت اتوماتیکی هستند که لینک های اینترنتی را به یک الگوریتم مشخص و هدفمند دنبال می کنند و به وب سایت های مختلف سر می زنند و محتوای موجود در صفحات وب سایت را برای پایگاه داده های موتورهای جستجو ایندکس می کنند تا این پایگاه داده همیشه به روز باشد. در واقع Crawler ها یک نوع روبات هستند که بصورت روزانه همین عملیات را انجام می دهند.نوشتن Crawler در جاوادر این قسمت ما یک Crawler ساده می‌نویسیم که وبسایتی را به عنوان ورودی می‌گیرد و تمام لینک‌های آن را به ما نمایش می‌دهد. برای این کار ما از کتابخانه Jsoup استفاده می‌کنیم. این کتابخانه می‌تواند کد یک سایت را بخواند و فیلتر‌های خاصی را بر روی کد اعمال کند. کد Crawler در جاوا به صورت زیر است:     public static void crawling(String URL) {          Document doc = null;          try {              doc = Jsoup.connect(URL).get();          } catch (IOException e) {              return;          }          Elements questions = doc.select(&quot;a[href]&quot;);          for (Element link : questions) {              if (link.attr(&quot;href&quot;).contains(&quot;codegate.ir&quot;)) {                   System.out.println(link.attr(&quot;href&quot;));              }          }     }در بالا ما یک متد به نام Crawling نوشتیم که ورودی آن آدرس سایت است. درون متد ابتدا به کمک کتابخانه Jsoup کد سایت را می‌خوانیم(()Jsoup.connect). خروجی متد Connect یک Document است(همان کد وبسایت) و به کمک متد Select درون کلاس Document میتوانیم کد سایت خود را فیلتر کنیم. در اینجا ما href را فیلتر کردیم تا لینک‌های درون سایت مشخص شود.تست Crawler در جاوابرای تست کدهای بالا، کد main زیر را بزنید:     public static void main(String[] args) {          String URL = &quot;http://www.codegate.ir&quot;;          crawling(URL);     }</description>
                <category>mohammadrezaamrollahi69</category>
                <author>mohammadrezaamrollahi69</author>
                <pubDate>Sat, 06 Jun 2020 22:05:01 +0430</pubDate>
            </item>
                    <item>
                <title>میکروکنترلر ATMEGA16</title>
                <link>https://virgool.io/@mohammadrezaamrollahi69/httpsvirgoolio%D9%85%DB%8C%DA%A9%D8%B1%D9%88%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1-atmega16-knuyvd4hjfbm</link>
                <description>میکروکنترلر ATMEGA16از سری میکرو کنترلرهای ساخت شرکت اتمل (Atmel) می باشد که دارای توان مصرفی پایینی بوده و در معماری آنها از ساختار پیشرفته RISK بهره گرفته شده است. این میکروکنترلر 8 بیتی است و قابلیت های بسیار زیادی دارد که شامل:• هشت کانال مبدل آنالوگ به دیجیتال 10 بیتی (ADC)• دو تایمر/کانتر 8 بیتی ( تایمر/ کانتر 0 و 2 )• یک تایمر/کانتر 16 بیتی ( تایمر/ کانتر 1 )• پورت JTAG• چهار کانال PWM• رابط سریال I2C•  رابط سریال USART• رابط سریال SPI• یک مقایسه کننده انالوگ داخلی• دارای rtc با اسیلاتور مجزا ( نوعی ساعت است که زمان و تاریخ را مستقل از عملکرد میکرو محاسبه میکند)• دارای Usart قابل برنامه ریزی• ۳۲ ورودی خروجی قابل برنامه ریزی• منبع وقفه داخلی و خارجی• دارای نوسان ساز داخلی کالیبره شده (حداکثر فرکانس این نوسان ساز 8 مگا هرتز است)• دارای 5 مد در حالت بیکاری برای مصرف کمتر انرژی و راندمان بیشتر• ماندگاری برنامه تا ۲۰ سال در دمای ۸۵ درجه و ۱۰۰ سال در دمای ۲۵ درجه سانتی گراد• و بسیاری قابلیت های دیگر می باشدحافظه, برنامه و داده غیر فرار:• 16 کیلوبایت حافظه فلش داخلی قابل برنامه ریزی که این حافظه میتواند تا 10000 بار نوشته و پاک شود (قابلیت پروگرم کردن تا 10000 بار)• 1 کیلوبایت حافظه SRAM• 512 بایت حافظه EEPROM (این حافظه میتواند تا 1000000 بار نوشته و پاک شود)• قفل برنامه داخل حافظه eeprom و flash برای جلوگیری از خواندن انحداکثر کریستال مورد استفاده :• حداکثر 16 مگاهرتز برای میکروکنترلر Atmega16• حداکثر 8 مگا هرتز برای میکروکنترلر Atmega16Lولتاژ کاری :• 2.7 تا 5.5 ولت برای میکروکنترلر Atmega16L• 4.5 تا 5.5 ولت برای میکروکنترلر Atmega16معرفی ATmega 16:در سه نوع بسته بندی PDIP با 40 پایه و TQFP با 44 پایه و MLF با 44 پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد .میکروکنترلرهای ATmega 16 دارای چهار پورت می باشند:•  PORT A•  PORT B•  PORT C•  PORT Dکه هر پورت علاوه بر اینکه بعنوان یک پورت معمولی(ورودی خروجی) میتوانند باشند کارهای دیگری نیز انجام میدهند. بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به دیجیتال ) استفاده شود که این خاصیت های مختلف پورت, در برنامه ای که نوشته میشود تعیین خواهد شد .هر پورت شامل 8 بیت است (یعنی هر کدام از پورت ها خود شامل 8 پین یا پایه است). هریک از این پایه ها می توانند به عنوان ورودی و خروجی(I/O ) عمل کنند. پس جمعا یک میکروکنترلر ATMEGA16 یا ATMEGA32دارای ۳۲ پین (پایه) ورودی- خروجی است. تمام این ۳۲ پایه علاوه بر داشتن این خاصیت حداقل از یک ویژگی دیگر نیز برخوردارند.در تصویر زیر این چهار پورت که شامل 32 پین می باشد مشخص شده است:این میکرو شامل 40 پایه می باشد که 32 تای انها مشخص شد و در ادامه 8 پین دیگر معرفی می شود:پین شماره 9 یا RESET: این پین ریست سخت افزاری میباشد, برای عملکرد عادی آی سی نباید به جایی وصل شود و برای ریست کردن میکرو باید به زمین وصل شود . توصیه می شود برای ریست سخت افزاری از مدار زیز استفاده کنید پین شماره 10 و 11 (GND و VCC) : تغذیه میکرو به این دو پین متصل می شود, مثبت به VCCو منفی به GND وصل میشود. (تغذیه یا باتری برای 32/ATmega 16با پسوند A مثلا ATmega16A از 4.5V تا 5.5V میتواند باشد) .پین های 12 و 13 : به کریستال خارجی وصل میشوند (در صورت استفاده از کریستال خارجی). میکروکنترلرهای 32/ATmega 16 می توانند تا حداکثر فرکانس 8 مگاهرتز با فرکانس داخلی و 16 مگاهرتز در صورت استفاده از کریستال خارجی کار کنند. منظور از فرکانس ﺳﺮﻋﺖ اجرای دستور در ثانیه می باشد. به عنوان مثال در فرکانس 16 مگاهرتز میکرو می تواند تا 16 میلیون دستور را در ثانیه اجرا کند. نحوه اتصال کریستال خارجی در تصویر زیر مشخص شده است پین های 30 و 31 و 32 : در صورتی که از ADC میکرو (مبدل انالوگ به دیجیتال) استفاده کردیم, این پین ها را به ولتاژ مرجع خود متصل می کنیم</description>
                <category>mohammadrezaamrollahi69</category>
                <author>mohammadrezaamrollahi69</author>
                <pubDate>Sat, 06 Jun 2020 21:30:59 +0430</pubDate>
            </item>
                    <item>
                <title>کوبرنتیز (Kubernetes) چیست ؟</title>
                <link>https://virgool.io/@mohammadrezaamrollahi69/%DA%A9%D9%88%D8%A8%D8%B1%D9%86%D8%AA%DB%8C%D8%B2-kubernetes-%DA%86%DB%8C%D8%B3%D8%AA-vgrttykl064o</link>
                <description>اگر اینجایید احتمالا به این خاطر است که واژه کوبرنتیز ذهنتان را حسابی مشغول کرده است، آیا مایلید در مورد کوبرنتیز بیشتر بدانید؟ تبریک میگویم به جای درستی امده اید. کوبرنتیز در حال حاضر بازار کار خوبی دارد و صاحبان کسب و کار دنبال افرادی هستند که این سامانه را بشناسند، در این صفحه پرسش و پاسخ و حقایقی را در مورد Kubernetes با هم مرور میکنیم.توسعه‌دهندگان به دلایل زیادی به سیستم‌های متن‌باز برای مدیریت کانتینرها روی آورده‌اند. این امر باعث شده تا بزرگان فناوری نیز دست‌ به کار شوند و پلتفرم‌‌های مختلفی را برای مدیریت کانتینرها معرفی کنند. یکی از این پلتفرم‌های معروف با نام Kubernetes (کوبرنتیز یا k8s) شناخته می‌شود.کوبرنتیز (Kubernetes) در‌واقع ساز و کار مدیریت کانتینر ها است که توسعه آن را شرکت معظم گوگل انجام داده است و در نتیجه سلاطین فناوری و توسعه‌دهندگان، علاقه زیادی به استفاده از کوبرنتیز نشان می‌‌دهند.این امر باعث شده تا کوبرنتیز روز به روز مصارف بیشتری پیدا کند و به تعداد استفاده‌کنندگان آن افزوده شود. کاملاً مشخص است تعامل بیشتر با این ساز و کار، بهینه‌تر شدن آن را نیز به دنبال دارد.داستان ایجاد کوبرنتیز (Kubernetes)همان‌‌گونه که شما بهتر از ما می‌دانید رایانش ابری نیازهای جدیدی را در دنیای سخت‌افزار و نرم‌افزار ایجاد کرد و شاهد نسل جدیدی از فناوری‌ها بودیم که تعامل با رایانش ابری را ساده‌تر می‌کردند. اپلیکیشن‌های بزرگ نیز به سمت ماژولار شدن پیش رفتند تا مدیریت و تعامل با آن‌ها از جانب توسعه‌دهندگان و کاربران ساده‌تر شود.در همین راستا گوگل به عنوان یکی از بزرگترین غول‌های فناوری که حیات خود را مدیون رایانش ابری است به این فکر افتاد تا یکی از پروژه‌های بزرگ خود را که در داخل این مجموعه از آن استفاده می‌کرد به صورت متن باز منتشر کند. این پروژه از زیرساخت‌هایی بر اساس کانتینرها بهره می‌گرفت و در داخل گوگل با نام Borg شناخته می‌شد.جالب است بدانید Borg نقش اساسی در اجرای سرویس‌‌های مهم گوگل مانند جیمیل و موتور جستجوی این برند داشت. به این ترتیب با متن‌باز شدن این پروژه سایر شرکت‌ها نیز قادر بودند پروژه‌های خود را همانند گوگل در ابعاد بزرگ پیش بگیرند.به این ترتیب به زبان ساده‌تر می‌توان کوبرنتیز را وارث Borg دانست. یکی از خاصیت‌های مهم متن‌باز شدن هر پروژه‌ای توسعه سریع و گسترش آن در میان کاربران است و کوبرنتیز نیز به‌سرعت راه خود را به جوامع فناوری باز کرد و به رقیب بزرگی برای ساز و کارهای دیگر کنترل کانتینرها مانند Apache Mesos و Docker Swarm تبدیل شد.در حال حاضر هزاران توسعه‌دهندگان با اهداف تجاری و شخصی در توسعه و بهینه‌تر کردن کوبرنتیز فعالیت دارند و شاهد ایجاد نسخه‌های تجاری کوبرنتیز نیز هستیم که شر‌کت‌های بزرگی مانند RedHat سرمایه‌گذاری‌های زیادی را برای گسترش آن انجام داده‌اند.کوبرنتیز چیستاگر بخواهیم به‌زبان ساده کوبرنتیز را توضیح دهیم باید بگوییم کوبرنتیز اجرا و مدیریت کانتینرهای مختلف را در سرورهای متفاوت که در یک پایگاه داده یا چندین پایگاه قرار گرفته‌اند را بر عهده می‌گیرد. در کوبرنتیز کانتینرهای مختلفی که مشترکاً برنامه کاربردی خاصی را شامل می‌شوند در حالت جداگانه و مستقل تحت عنوان پاد (Pod)‌ دسته‌بندی خواهند شد. این کار فرآیند مدیریت و شناسایی آن‌ها را ساده‌تر می‌کند.به این ترتیب می‌توان گفت سازمان‌ها و شرکت‌هایی که سرویس‌های مختلف نرم‌افزاری را اجرا می‌کنند ابتدا به کانتینرها و در نهایت به ابزارهایی مانند کوبرنتیز نیاز دارند تا با کمک گرفتن از کانتینرها، برنامه‌ها را در بهترین حالت از یکدیگر جداسازی کنند. این فرآیند تولید و آزمایش اپلیکیشن‌ها و سرویس‌ها را ساده‌تر کرده و امکان اجرای آن‌ها در یک زیرساخت مشترک را فراهم می‌کند.کوبرنتیز کمک می‌کند تا کانتینرها در گروهی‌ از ماشین‌ها به صورت خودکار و اتوماتیک اجرا شوند، به این ترتیب به زبان ساده‌تر می‌توان گفت کوبرنتیز نقش سیستم‌عاملی را ایفا می‌کند که بر روی چندین سرور در حالت یکپارچه اجرا می‌شود. در نتیجه نیازی به نگرانی برای وضعیت ماشین‌های مختلف وجود ندارد و کاربران در حالی که هیچ تغییری در سرویس‌های اجرا شده مشاهده نمی‌کنند قابل تعامل با اپلیکیشن‌ها و سرویس‌های مورد نظر هستند.داکر یا کوبرنتیز، کدام را انتخاب کنیمهرکجا که صحبت از کوبرنتیس به میان می‌آید اشاره‌ای به داکر نیز می‌شود و این دو پلتفرم به‌عنوان رایج‌ترین ابزارها برای مدیریت کانتینرها شناخته می‌شوند، به این ترتیب کاملاً طبیعی است این سؤال برای توسعه‌دهندگان پیش بیاید که داکر بهتر است یا کوبرنتیز؟در این زمینه نمی‌توان نسخه واحدی پیچید و باید موارد مختلفی را در نظر داشت، داکر یک سال زودتر از کوبرنتیز راهی بازار شده و طبیعتاً محبوبیت بیشتری دارد، از طرف دیگر داکر آن‌چنان که باید شاید نمی‌تواند نیاز توسعه‌دهندگان را در زمینه مدیریت کلاسترها پاسخگو باشد و انصافاً باید گفت کوبرنتیز قدرت بیشتری در این زمینه دارد. به این نکته نیز اشاره کنیم که در داکر شاهد ابزارهای حرفه‌ای و لازم برای مشاهده گزارش عمل‌کرد و مانیتور فضای کاری وجود ندارد.کوبرنتیز ابزارهای بسیار متنوعی برای پیاده‌سازی و مدیریت کانتینرها دارد و فریم‌ورک امن‌ داکر را یکی از نقاط مختلف آن می‌شناسند. جالب اینجاست که کوبرنتیز قادر است از موتور داکر به‌عنوان ابزاری برای افزایش امکانات مدیریتی خود بهره بگیرد.در مجموع می‌‌توان گفت داکر و کوبرنتیز به لحاظ امکانات تفاوت‌هایی با هم دارند اما این تفاوت‌ها بسته به نیاز یک مجموعه اهمیت پیدا می‌کند و به همین دلیل بسیاری از توسعه‌دهندگان کوبرنتیز را به دلیل قابلیت‌های ماژولار آن انتخاب می‌کنند.</description>
                <category>mohammadrezaamrollahi69</category>
                <author>mohammadrezaamrollahi69</author>
                <pubDate>Fri, 05 Jun 2020 19:47:46 +0430</pubDate>
            </item>
                    <item>
                <title>کد C مربوط به پروژه میکروکنترلر ATMEGA16</title>
                <link>https://virgool.io/@mohammadrezaamrollahi69/%DA%A9%D8%AF-c-%D9%85%D8%B1%D8%A8%D9%88%D8%B7-%D8%A8%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%85%DB%8C%DA%A9%D8%B1%D9%88%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1-atmega16-fgugwzyxsvge</link>
                <description>کد پروژه:#include &lt;mega16.h&gt;#include &lt;delay.h&gt;void main(void){const int num=6;char Cseg[num]={0x3F,0x06,0xDB,0x4F,0x66,0x6D,0x7D,0x07,0xFF,0x6F};char Aseg[num-5]={0xFF,0x00,0xFF,0x00};int i=0,j=0,k=0;DDRA=0xFF; چراغ راهنماییDDRB=0xFF; سون سگمنت آبیDDRC=0xFF; سون سگمنت سبزDDRD=0xFF; سون سگمنت قرمزPORTB=0xFF;for(;;){PORTA.0=1; چراغ سبز روشن میشودfor(i=num;i&gt;=0;i--) مقدار تاخیر چراغ سبز را وارد میکنیم{PORTC=Cseg[i];delay_ms(1000);}}PORTC=0x00; سون سگمنت سبز خالی میشودPORTA.0=0; چراغ سبز خاموش میشودPORTA.3=1; چراغ زرد روشن میشودfor(k=num-4;k&gt;=0;k--) مقدارتاخیر چراغ زرد را وارد میکنیم{PORTB=Aseg[k];delay_ms(500) ;}PORTB=0xFF; سون سگمنت آبی خالی میشودPORTA.3=0; چراغ زرد خاموش میشودPORTA.6=1; چراغ قرمز روشن میشودfor(j=num-3;j&gt;=0;j--) مقدارتاخیر چراغ قرمز را وارد میکنیم{PORTD=Cseg[j];delay_ms(1000);}PORTD=0x00; سون سگمنت قرمز خالی میشودPORTA.6=0; چراغ قرمز خاموش میشود}}اکنون کار کدنویسی تمام شده است و اگر بخواهیم همه کد های بالا را به ترتیب پشت سر هم اجرا کنیم قطعه کد ما در نهایت به شکل زیر می‌باشد:</description>
                <category>mohammadrezaamrollahi69</category>
                <author>mohammadrezaamrollahi69</author>
                <pubDate>Fri, 05 Jun 2020 17:54:25 +0430</pubDate>
            </item>
                    <item>
                <title>ساخت چراغ راهنمایی توسط سه 7segment کاتد مشترک و آند مشترک و سه LED</title>
                <link>https://virgool.io/@mohammadrezaamrollahi69/%D8%B3%D8%A7%D8%AE%D8%AA-%DA%86%D8%B1%D8%A7%D8%BA-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%DB%8C-%D8%AA%D9%88%D8%B3%D8%B7-%D8%B3%D9%87-7segment-%DA%A9%D8%A7%D8%AA%D8%AF-%D9%85%D8%B4%D8%AA%D8%B1%DA%A9-%D9%88-%D8%A2%D9%86%D8%AF-%D9%85%D8%B4%D8%AA%D8%B1%DA%A9-%D9%88-%D8%B3%D9%87-led-s6nqrhie7rsq</link>
                <description>پروژه ای که قرار ما برای شما ارائه بدهیم ساخت چراغ راهنمایی توسط سه 7segment کاتد مشترک و آند مشترک و سه LED است پس تا آخر با ما همراه باشید .چیزهایی که برای ساخت این چراغ راهنما از عناصر اصلی زیر استفاده می کنیم : میکروکنترلرATMEGA16برنامه نویسی AVR به زبان Cشبیه سازی بانرم افزار proteus7 Professionalدر قسمت اول می خواهیم مرحله به مرحله تمام کارهایی که قرار است در برنامه کدویژن انجام دهیم را شرح دهم.در ابتدا وارد نرم افزار CodeVision AVR شده و از منوی بلای صفحه سمت چپ New Project را انتخاب می‌کنیم.در قسمتی که از ما پرسیده می شود می خواهید از CodeWizard AVR استفاده نمائید، ما No را انتخاب می‌کنیم.در مرحله بعد محل ذخیره پروژه را با نام دلخواه وارد می‌کنیم و روی گزینه Saveکلیک می‌کنیم.مرحله اولدر مرحله بعدی باید نوع میکروکنترلر را انتخاب کنیم. ما در این پروژه از Atmega16 استفاده کرده‌ایم پس این میکروکنترلر رو انتخاب می‌کنیم و نام فایل را LED می‌گذاریم.مرحله دومدر مرحله بعد در قسمت C Compiler نوع chip را Atmega16 و Clock را بر روی 8MHz می گذاریم و بر روی OK کلیک می نمائیم.مرحله سومحال پنجره‌ای باز می‌شود که کدهای مربوطه را در آن می نویسیم.جهت مشاهده کدهای مربوطه می توانید به قسمت کد C مربوط به پروژه میکروکنترلر ATMEGA16 بروید و در آنجا تمامی کدها را مشاهده فرمایید . PROTEUSحالا نوبت به کار با Proteus می رسد و ما باید مدار را شبیه سازی کنیم.نرم افزار Proteus را اجرا می‌کنیم و از قسمت بالای صفحه سمت چپ روی File =&gt; New Project کلیک می‌کنیم و در پنجره باز شده نام پروژه و محل ذخیره سازی پروژه را مشخص می‌کنیم .مراحل بعدی را بدون تغییر بر روی next کلیک می‌کنیم.و در نهایت بر روی finish کلیک می‌کنیم.داخل برنامه بر روی p کلیک می کنیم.حال در پنجره باز شده در قسمت keywords نام قطعاتی که لازم داریم را جستجو کرده و به پروژه اضافه می کنیم. ما باید یک میکروکنترلر ATMEGA16 ، دو سون سگمنت کاتد مشترک به رنگهای سبز و قرمز ، یک سون سگمنت آند مشترک به رنگ آبی ، سه LED به رنگ های سبز،زرد و قرمز و یک BUTTON  را همانند شکل زیر به پروژه اضافه نمائیم.حال نوبت به بستن مدار می باشد که اتصالات به شکل زیر هستند.بر روی میکروکنترلر atmega16 دابل کلیک می‌کنیم، پنجره زیر باز می‌شود و در آنجا فایل برنامه نویسی شده را به آن معرفی می‌کنیم تا برنامه اجرا شود:در آخر مداری را که بستیم رو اجرا می کنیم، مطابق شکل زیر:امیدوارم که تونسته باشم شما راهنمایی کنم اگر مشکل و سوالی برای شما پیش آمد می توانید با من در ارتباط باشید .</description>
                <category>mohammadrezaamrollahi69</category>
                <author>mohammadrezaamrollahi69</author>
                <pubDate>Wed, 03 Jun 2020 20:54:05 +0430</pubDate>
            </item>
            </channel>
</rss>