پروژه ها و مدارات کاربردی

پروژه ها و مدارات کاربردی

راه اندازی LCD موبایل مدل Nokia 6100 با AVR و زبان C

در این مدار نرم افزار شبیه ساز پروتئوس ال سی دی موبایل مدل 6100 را ندارد. اما با کپی کردن فایل های موجود در پیوست این قسمت، این نرم افزار توانایی شبیه سازی این مدل از LCD ها را پیدا می کند.

Nokia 6100

چگونگی بدست آوردن کدهای عکس ها برای نمایش روی این LCD:

برای این کار باید از نرم افزار Photoshop طبق مراحل زیر ابعاد عکس را 132 در 132 پیکسل تنظیم کنید:

1) ابتدا عکس را باز کرده و در قسمت بالایی عکس کلیک کنید و Image Size را انتخاب کنید.

Nokia 6100

در صفحه ی باز شده ابعاد عکس را 132 در 132 تنظیم کنید.

Nokia 6100

سپس عکس را ذخیره کنید و در مرحله ی بعدی از نرم افزار BMP2RGB8 که آیکن آن مطابق شکل زیر است برای تبدیل عکس به کد میکروکنترلر استفاده کنید (برای اجرای این نرم افزار باید Framework .Net نسخه ی 3.5 به بالا نصب باشد):

Nokia 6100

بر روی کلید Open Files کلیک کنید و آدرس فایل ذخیره شده با فرمت BMP را که توسط نرم افزار فتوشاپ ساخته شده است، بدهید.

Nokia 6100

بعد از این مرحله طبق شکل بالا کد های موجود را در نرم افزار مربوطه کپی کنید و برنامه را مجددا کامپایل نمایید. (توجه کنید ممکن است با مرور زمان این LCD از بازار جمع شود و مدل های جدیدتری مانند N97 و غیره وارد بازار شود)

فایل های لازم برای شبیه سازی این LCD را دانلود کنید و در آدرس های زیر کپی کنید:

C:\Program Files\Labcenter Electronics\Proteus 7 Professional\MODELS

C:\Program Files\Labcenter Electronics\Proteus 7 Professional\LIBRARY

 

دانلود سورس کد و برنامه ی BMP2RGB8

دانلود فایل کتابخانه ی نرم افزار Proteus برای Nokia 6100

دانلود راهنمای فارسی و آموزش عملی


ولوم دیجیتالی به همراه راه اندازی 6 سون سگمنت فقط با هفت پین از میکروی AVR به زبان C

7PIN

در این پروژه یک ساعت (که قابل تنظیم است و دارای ثانیه، دقیقه و ساعت می باشد) بر روی 6 سون سگمنت نمایش داده می شود و همچنین ولوم دیجیتالی هم دارد که در این ولوم دیجیتالی از مقاومت های DDS جهت مبدل DAC استفاده شده است.

دانلود


فانکشن ژنراتور با میکروی AVR و زبان C

Signal Generator

در این مدار شما با فشردن کلید Mode می توانید شکل موج سینوسی، دندان اره ای و مربعی را از خروجی مدار بگیرید و با فشردن کلیدهای F+ و F- فرکانس موج را عوض کنید (با تغییر مقدار delay). این تغییر فرکانس روی LCD هم نشان داده می شود. خروجی ایم مدار به یک آی سی مبدل دیجیتال به آنالوگ متصل شده است که نمونه ی واقعی آن مدل DAC0808 می باشد که خروجی اش به صورت جریان است که با یک مقاومت می توان خروجی را به ولتاژ تغییر داد. البته از مقاومت های DDS مدار شکل بالایی هم می توان استفاده نمود که در این حالت تا فرکانس 100 کیلو هرتز با کریستال خارجی 16 مگاهرتز مدار کاملا صحیح جواب داد.

دانلود


صفحه کلید موبایل به زبان C و AVR

Mobile Keypad

در این مدار مانند صفحه کلید موبایل با چند بار فشردن کلیدها مثلا کلید 2 ابتدا حرف A و سپس حرف B و سپس حرف C و سپس شما ره ی 2 بر روی نمایشگر ال سی دی نمایش می یابد.

دانلود


نشان دادن حروف فارسی بر روی ال سی دی کاراکتری با میکروی AVR و زبان C

LCD Farsi

این مدار با نرم افزار پروتئوس به درستی کار نمی کند ولی به صورت عملی کاملا درست کار می کند. لازم به ذکر است که آدرس 0x40 در برنامه، همان آدرس شروع CGRAM(Character Generator RAM) می باشد. برای تولید کد های فارسی برای LCD از نرم افزار پیوست استفاده شده است.

دانلود


ماشین حساب با میکرو ی AVR و زبان C

Engineering Calc

در این پروژه علاوه بر چهار عمل اصلی، محاسبه ی سینوس، کسینوس، تانژانت و عکس آنها و لگاریتم هم ممکن است. برای این کار از شش کلید به غیر از Keypad استفاده نمایید.

دانلود


ساعت دیجیتالی با میکروی 8051

8051 Clock

این پروژه خود متشکل از دو پروژه می باشد یک از آنها با زبان Cنوشته شده است که ساعت بر روی چهار عدد سون سگمنت نمایش داده می شود. مدل میکروکنترلر در این پروژه AT89C2051 می باشد که 20 پایه دارد. فایل PCBاین مدار با نرم افزار Protel با پسوند PCB را مشاهده کنید.

پروژه ی دوم هم مانند پروژه ی اول است با این تفاوت که زبان برنامه اسمبلی است و میکروی استفاده شده مدل AT89C52می باشد که 40 پایه دارد. این مدار فیبر مدار چاپی هم به صورت شکل زیر دارد:

8051 Clock PCB

دانلود


ساخت ساعت با استفاده از تایمر 2 میکروکنترلر AVR در حالت آسنکرون (RTC)

RTC

در این مدار تایمر 2 در حالت آسنکرون راه اندازی می شود و برای کارکردن صحیح آن باید یک کریستال با فرکانس 32768Hz به پایه های TOSC1 و TOSC2 متصل شود. این حالت مناسب ترین حالت برای کم کردن مصرف برق میکروکنترلر توسط مد های sleep به نام power save می باشد.

دانلود


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

در این پروژه از یك آی سی 555 استفاده شده است. این آی سی مدل CMOS آی سی 555 می باشد (17555) كه می تواند ولتاژی تا 16V را تحمل نماید. در این پروژه این آی سی دارای ورودی تریگر با پسماند 2/3 ولتاژ تغذیه می باشد و دارای یك فیلیپ فلاپ داخلی است كه به عنوان عنصر حافظه می باشد.

Light Key

خروجی 555 می تواند جریانی حدود 100 میلی آمپر را تامین كند كه برای راه اندازی یك رله كافی می باشد وقتی مدار در تاریكی قرار می گیرد، مقدار مقاومت، مقاومت نوری (LDR) افزایش یافته و ولتاژ پایه ی 2 و 6 آی سی 555 بالا می رود (مقدار این افزایش ولتاژ به تنظیم رله بستگی دارد)، رله به كار افتاده و بار وصل می شود لذا بار می تواند سلفی هم باشد.

Photocell PCB

رله ای كه در مدار می باشد می تواند جریانی تا 10 آمپر را ارائه كند و ولتاژ خروجی رله می تواند تا 220 ولت باشد كه در این صورت باید دقت كنید. تغذیه ی این مدار از طریق یك ترانس 15 ولتی از خود برق شهر تامین می شود و توسط پل دیود یكسو می شود و آی سی رگولاتور 7812 ولتاژ را در حد 12 ولت ثابت می كند. خازن 1000 میکرو فاراد كه می تواند ظرفیتش تا 2200 میکرو فاراد یا بیشتر افزایش یابد، ولتاژ برق را صاف می كند. ولتاژ كاری خازنها می تواند 16 ولت باشد ولی بهتر است این ولتاژ 25 ولت باشد تا اطمینان حاصل شود كه خازنها نمی سوزند.

دانلود


فرکانس متر بدون میکروکنترلر مدل 1

در این شمارنده از آی سی 74107 به عنوان فیلیپ فلاپ JK استفاده شده است به طوری که به پایه ی کلاک اولین فیلیپ فلاپ پالس ساعتی که می خواهیم فرکانس آن را بدانیم متصل می شود (این پالس ساعت توسط آی سی 40106 که یک Not می باشد و خروجی اشمیت تریگر دارد ساخته می شود که در ادامه بررسی خواهد شد).

این فیلیپ فلاپها به صورت شمارنده ی صعودی آسنکرون عمل می کنند یعنی خروجی هر فیلیپ فلاپ به ورودی پالس ساعت متصل است (بجز فیلیپ فلاپ اولی) همچنین می خواستیم با JK فیلیپ فلاپ شمارنده بسازیم بنابراین ناچاریم از D-FF یا T-FF که در شمارنده ها استفاده می شوند استفاده کنیم. این کار به سادگی صورت می گیرد فقط کافی است که پایه های JK هر فیلیپ فلاپ را به هم وصل کنیم تا D-FF ساخته شود.

در این مدار پایه های JK که به هم متصل می باشند به تغذیه وصل می شوند در این صورت با هر لبه ی پایین رونده خروجی D-FF معکوس می شود در این صورت هر چهار فیلیپ فلاپ شمارنده ی صعودی از 0 تا 15 هستند (چون 2 به توان 4 می شود 16 حالت برای فیلیپ فلاپها) و چون می خواهیم این شمارنده ها تا عدد 9 را شمارش کنند، پس باید کاری کنیم که هنگام رسیدن شمارش به عدد باینری 1010 یا همان 10 مبنای دسیمال فیلیپ فلاپ ریست شوند. اگر یک سمت چپ عدد باینری 1010 را D فرض کنیم و یک سمت راست را B فرض کنیم، هنگام شمارش فیلیپ فلاپ از عدد 0 تا 9 همزمان B و D یک نمی شوند پس اگر این دو پایه به یک NAND دو ورودی مثل 7400 وصل شوند و خروجی NAND به پایه های RESET هر چهار فیلیپ فلاپ وصل شود در این صورت وقتی فیلیپ فلاپ عدد صفر تا نه را شمارش می کند چون B?D می باشد پس خروجی NAND مثبت خواهد بود و وقتی به عدد 10 رسیدیم B=D و در این صورت خروجی NAND صفر می شود و فیلیپ فلاپها ریست خواهند شد.

Freq_meter

برای اینکه نتیجه ی شمارش هر چهار فیلیپ فلاپ را مشاهده کنیم (که تا 9 را می شمارند) احتیاج به آی سی 7447 داریم تا نتیجه ی شمارش را بر روی سون سگمنت نشان دهند این کار به سادگی صورت می گیرد، کافی است خروجی فیلیپ فلاپها به ترتیب از چپ به راست به A، B، C و D آی سی 7447 وصل شود و خروجی این آی سی به سون سگمنت وصل شود.

حال چگونه کاری کنیم که مدار فرکانس را در هر 1 ثانیه شمارش کند؟

برای این کار از آی سی 555 استفاده شده است. برای اینکه Duty Cycle در این آی سی 50% باشد، آن را به صورت نقشه ی مدار که مشاهده می کنید وصل می کنیم. یعنی پایه های 4 و 8 این آی سی به مثبت تغذیه وصل می شوند و با مقاومت 4.7 کیلو اهم به پا یه ی 3 وصل می شوند و این پا یه با مقاومت 101 کیلو اهم به پایه های 2 و 6 وصل خواهد شد و پایه ی 2 این آی سی هم با خازن 12 میکرو فاراد به زمین وصل می شود. علت انتخاب مقاومت 101 کیلو اهم و خازن 12 میکرو فاراد این است که 1 ثانیه طول می کشد تا خازن شارژ شود و آی سی را تریگر کند.

هنگامی که یک ثانیه گذشت و خازن شارژ شد، پایه ی خروجی آین آی سی (پایه ی شماره ی 3) برای 1 ثانیه یک می شود. اگر این پایه را به بیس ترانزیستورهایی مانند BF494 متصل کنیم که در فرکانس های بالا هم می تواند کار کند، وقتی خروجی 555 یک است، این ترانزیستور روشن شده و موج ورودی (که در اینجا سینوسی است) را از کلکتور می گیرد و در امیتر با آی سی 40106 به شکل مربعی تبدیل می شود و به کلاک اولین فیلیپ فلاپ وصل می شود

 

فرکانس متر بدون میکروکنترلر مدل 2

در این مدار از شمارنده ی 74191 استفاده شده است. این مدار به درستی شبیه سازی نمی شود.

freq_meter

دانلود مدل 1

دانلود مدل 2


استفاده از RAM خارجی برای میکروی AVR با زبان C

در مداراتی که نیاز به محاسبات بیشتر وجود دارد، معمولا RAM داخلی میکرو جوابگو نیست و باید از RAM خارجی استفاده کرد (مثلا استفاده از میکرو برای ساخت تلویزیون با LED)

External RAM

در این برنامه از یک RAM خارجی و یک آی سی Latch استفاده شده است. آی سی Latch جهت نگه داری آدرس روی پایه های RAM می باشد (آدرس خواندن یا نوشتن) حال با استفاده از سه پایه ی کنترل Enable، Output و Write Enable می توان تعیین نمود که داده از RAM خوانده شود یا نوشته شود. در این برنامه اعداد 0 تا 59 در 2 ضرب می شوند و به ترتیب در آدرس های 3 تا 63 ذخیره می شوند. به صورت نمونه میکروکنترلر می تواند داده را از این آدرس ها دریافت نماید و روی LCD نمایش دهد.

دانلود


ارتباط تک سیمه ی نرم افزاری دو میکرو با زبان C و AVR

ارتباط نرم افزاری

در این مدار دو میکرو با یک سیم به هم متصل هستند. در حالت عادی میکروی Master از 0 تا 99 را شمارش می کند. اگر تنها کلید مدار فشرده نگاه داشته شود، عدد شمارش شده توسط میکروی اول برای میکروی دوم فرستاده می شود و میکروی دوم ادامه ی شمارش را انجام می دهد. در ابتدا میکروی Slave منتظر می ماند تا Master اطلاعات را برایش بفرستد و وقتی اطلاعات فرستاده شده ی Master را دریافت کرد، پایه ی ارسال اطلاعات Master ورودی شده و پایه ی ارسال اطلاعات Slave که تا قبل از فشرده شدن کلید، ورودی بود، بعد از دریافت داده خروجی می شود. در واقع در این مدار بدون نیاز به توابع کتابخانه ای و وقفه های AVR این ارتباط برقرار شده است.

این برنامه به دو مدل مختلف نوشته شده است. در مدل اول از درایور سون سگمنت یا همان آی سی 7447 استفاده شده است اما در مدل دوم بدون این آی سی میکروکنترلر سون سگنت ها را اسکن می کند. در مدل دوم در تابع سون سگمنت به دلیل شبیه سازی نرم افزار Proteus مقدار حلقه ی refresh برابر 25 شده است که در عمل باید به 100 برسد و در عوض مقدار تاخیر به حدود 3 میلی ثانیه برسد تا اعداد روی سون سگمن واضح دیده شوند.

دانلود


ارتباط i2c نرم افزاری دو میکرو با هم به زبان C و با AVR

I2C سخت افزاری

این مدار هم مانند مدار بالا می باشد با این تفاوت که با دو سیم یکی Clock و دیگری Data این کار انجام می شود. برای ارسال ابتدا پایه ی SDA (یا همان Data) را که قبلا در حد 5 ولت بوده صفر می کنیم و سپس کمی صبر کرده (در این مدار 20 میلی ثانیه) و بعد از آن SCL (یا همان Clock) را صفر می کنیم و کمی صبر می کنیم (در اینجا 30 میلی ثانیه) در این صورت میکروی گیرنده می فهمد که اطلاعات را باید دریافت کند.

میکرو ی گیرنده با روی سرکشی (یا Poling) دائما چک می کند که SDA صفر شده است یا نه.

دانلود


پروژه ی دماسنج با میکروی PIC  با زبان Basic

دماسنج با PIC

در این پروژه از آی سی دماسنج DS1621 استفاده شده است. در صورت افزایش بیش از حد دما از حد تنظیم شده، LED خروجی روشن می شو (بجای LED می توان هر وسیله ی دیگری به کمک رله قرار داد). فیبر مدار چاپی این پروژه را در شکل زیر مشاهده می کنید. این مدار به دلیل داشتن رله امکان راه اندازی یک وسیله ی 220 ولت را هم دارد.

PIC Temperature PCB

دانلود


در این سایت پروژه های دیگری در سایر قسمت ها موجود می باشد.

12 thoughts on “پروژه ها و مدارات کاربردی

  1. هیچکس says:

    سلام ممنون از مطالب مفید و محتوای اموزشی.
    ممنون از زحماتتون واقعا خداقوت دارید.

    سوال زیاد دارم اما میخوام بدونم میشه با یک یا چند میکرو کنترلر avr mega 32 یه شبکه( بلوتوث وایفای یا رادیو کنترلی) ساخت؟

    به صورت تجسمی عرض میکنم که دستگاه فرستنده یا کنترل بیسیم اصلی در حالت
    (Master + Slave) فعالیت کند و ٢ یا تعداد بیشتری دستگاه Receiver’s وجود داشته باشد و وظیفه این دستگاه های Receiver کنترل تعداد 15 رله 3 ولت است.
    Receiver ها یک ویژگی باید داشته باشند درصورت درخواست از دستگاه کنترل اصلی، یک سیگنال(میزان ولتاژ باطری دستگاه که توسط مقاومت سنجیده میشود)را به دستگاه کنترل اصلی ارسال کنند.
    باتشکر از مدیریت همچنين اساتید مجرب.

  2. محمد برخورداری says:

    سلام و خسته نباشید.عالی ،عالی،بسیار عالی از این سایت.

  3. ریحانه بهرامی says:

    پروژه کلید نوری بدون استفاده از میکروکنترلر وقتی توی محیط پروتئوس باز میکنم error میدهد اگه راهنمایی ام کنید ممنون میشم.

    • محمد رضا بیگی says:

      فایل سالم است
      احتمالا ورژن پروتئوس شما فرق دارد و باید آن را Import کنید

  4. مسعود says:

    سلام و ای ول! عالیست کارتون حرف نداره و حسابی ممنون از محتویات سایتتون! (:

    • jalal says:

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *