آن که با حق درآویخت ، خون خود بریخت . [نهج البلاغه]
بهار 1386 - تازه ها از الکترونیک بهترین و زیباترین کدهای جاوا اسکریپت به همراه آزمایش آن کد
  • پست الکترونیک
  • شناسنامه
  •  RSS 
  • پارسی بلاگ
  • پارسی یار
  •  

    لزوم استفاده از جبر بول
    اصول و قضایای جبر بول
    معرفی توابع سوئیچینگ
    جدول درستی توابع

      پیاده سازی سیستم مبتنی بر 0 و 1 برای کامپیوترهای دیجیتال
    استفاده از جبر بول و منطق درست یا نادرست

    تعریف جبر بول
    سیستمی متشکل از مجموعه ای مانند K با دو یا چند عضو و دو عملگر AND (.) و OR (+) به طوریکه اگر a و b عضو K باشندb 0a و a+b نیز عضو مجموعه K باشند.
     


     

      اصول جبر بول:

    الف) عناصر منحصر به فرد 0 و 1 عضو مجموعه K هستند:
    a+0=a
    a.1=a
    عناصر همانی

    ب)خاصیت جابجایی:
    برای هر عضو a و b در K :
    a+b=b+a
    a.b=b.a

    ج)خاصیت شرکت پذیری:
    برای هر a,b,c در K:
    a+(b+c)=(a+b)+c
    a.(b.c)=(a.b).c

    د)توزیع پذیری:
    برای هرa,b,c در K:
    (a+(b.c)=(a+b).(a+c
    (a.(b+c)=(a.b)+(a.c

    ه) وجود متمم:
    برای هر a در K یک عضو منحصر به فرد ¯a در K وجود دارد به طوریکه:
    برای راحتی در نگارش
    معمولاً از نوشتن . در عبارتها صرف نظر می کنند:
    a.b=ab
     

      قضایای جبر بول:

    A ) هم ارزی:
    a+a=a
    a.a=a

    B) عضو بی اثر برای . و +
    برای عمل +:
    a+0=a
    برای عمل . :
    a.1=a

    C)قضیه بازگشت:
     


     

    D) قضیه جذب:
    a + ab = a
    a(a+b) = a

    E)قضیه شبه جذب:
     



    G) دمورگان :
     

      استفاده از قضایا برای ساده کردن عبارتهای جبر بول

     

      توابع سوئیچینگ

    تابعی از چند متغییر بولی و عملگرهای . و + مانند:
    f(a ,b ,c)= ab + ac + bc
    اگر n متغیر داشته باشیم
    هر متغیر دو حالت: 0 و 1
    بنابراین: 2 به توان n حالت مختلف از ترکیب ورودی ها داریم
    مثال:
     

    a

    0

    1

    b

    a

    0

    0

    1

    0

    0

    1

    1

    1

      جدول درستی

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

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

      فرمهای متعارف SOP و POS
    مینترم ها و ماکسترم ها
    گیتهای منطقی
    قطعات الکترونیک گیت ها

    فرمهای متعارف برای نمایش توابع سوئیچینگ :
    SOP: جمع جملات کمینه
    POS: ضرب جملات بیشینه

    SOP جمع حاصلضرب ها
    OR کردن عبارتهای AND شده
     



    POS ضرب حاصلجمع ها
    AND کردن عبارتهای OR شده
     

      جملات کمینه و بیشینه یا :
    Minterm
    Maxterm

    Minterm ها
    m
    جمله ضرب از همه n متغیر یک تابع به صورت متمم یا غیرمتمم
    در تابع n متغیره 2 به توان n حالت از مینترم ها را داریم
    مثال برای2 متغیر:
     

    Maxterm ها
    M
    جمله جمع از همه n متغیر یک تابع به صورت متمم یا غیرمتمم
    در تابع n متغیره 2 به توان n حالت از ماکسترم ها را داریم
    مثال برای2 متغیر:
     

    شماره گذاری مینترم ها و ماکسترم ها
    تعداد متغیر : n
    تعداد مینترم یا ماکسترم : 2 به توان n
    m0...mn-1
    M0...Mn-1

     

    برای پیدا کردن فرم یک مینترم یا ماکسترم از روی اندیس آن :
    1)عدد اندیس m یا M را به مبنای 2 می بریم
    2)در مینترم به جای 1 خود متغیر و به جای 0 متمم آن را قرار می دهیم
    3)در ماکسترم به جای 0 خود متغیر و به جای1 متمم آن را قرار می دهیم
    مثال:
     

    نمایش استاندارد با مینترم یا ماکسترمهای تابع:
    استفاده از SOP یا POS
    (f(A,B,C برابر است با:
     

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

    در طراحی الکترونیکی مدارهای منطقی دو استاندارد معروف به کار می رود:
    TTL
    در این منطق، 5 ولت معادل 1 منطقی می باشد.

    CMOS
    در این منطق، 12 ولت معادل 1 منطقی می باشد.
     

      انواع گیت :

    گیت AND :
    همانطور که از نامش پیداست مانند "و" رفتار می کند یعنی در صورتی که یکی از ورودیهای آن 0 باشد خروجی آن صفر خواهد بود.
     

    OUT

    IN

    IN

    0

    0

    0

    0

    1

    0

    0

    0

    1

    1

    1

    1

    گیت OR :
     

    OUT

    IN

    IN

    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    1

    1


    گیت NOT:
    این گیت در ازای ورودی 0 یا 1 معکوس آن را به خروجی می فرستد.
     


    IN=0 ----> OUT=1
    IN=1 ----> OUT=0

     

    گیت NOR:
    این گیت به عنوان یک المان منطقی ساده، عمل دو گیت OR و NOT را با هم ادغام کرده، در یک گیت نشان می دهد و شامل دو یا چند ورودی و یک خروجی می شود.
     

    OUT

    IN

    IN

    1

    0

    0

    0

    1

    0

    0

    0

    1

    0

    1

    1

     

    گیت NAND:
    این گیت به عنوان یک المان منطقی ساده، عمل دو تابع AND و NOT را با هم ادغام کرده، و در یک گیت نشان می دهد. این مدار شامل دو یاچند ورودی و یک خروجی است.
     

    OUT

    IN

    IN

    1

    0

    0

    1

    1

    0

    1

    0

    1

    0

    1

    1


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

     

    OUT

    IN

    IN

    0

    0

    0

    1

    1

    0

    1

    0

    1

    0

    1

    1

    گیتXNOR:
    این گیت شامل دو یا چند ورودی و یک خروجی است در گیت XNOR در صورتی خروجی یک می شود که یا هر دو ورودی صفر و یا هر دو ورودی یک باشد.
     

    OUT

    IN

    IN

    1

    0

    0

    0

    1

    0

    0

    0

    1

    1

    1

    1

      قطعات الکترونیکی
    گیت های منطقی

    AND
     


     

    OR
     

    NOT
     

    NAND
     

     

    NOR
     

    XOR



    جواد میرباقری ::: سه شنبه 86/2/11::: ساعت 12:14 عصر
    نظرات دیگران: نظر

    این مقاله سخت افزار و نرم افزار به کار رفته در کنترل دو موتور پله ای[1]  را که برای روبوت های با درایور دیفرانسیلی , مناسب می باشند را شرح می دهد.این مدار دو کلمه دو بیتی را می پذیرد تا به هر یک از موتورها فرامین حرکت به جلو , عقب , تثبیت موقعیت و سکون را دهد.همچنین هرگاه یک پله(گام) شکل گرفت (طی شد) , یک سیگنال خروجی ایجاد می کند.این مدار طرحی مناسب می باشد که با آن میتوان تحریک سیم پیچ , سرعت موتور , شکل "کلمه کنترل [2] " وسایر پارامترهای موتورهای تک قطبی و دو قطبی مبتنی بر میکروکنترلر را اصلاح کرد.نرم افزار آن نیز , به زبانهای C  و Assembly تهیه شده است.

     diagram.jpg (49775 bytes)

    مدار سخت افزار:

    مدار مذکور شامل سه آی سی است: PIC16F84  وهمچنین دو درایور پل [3] H  ,L293D برای موتورهای پله ای دوقطبی(شکل پایین) یا دو ULN2803  برای موتور پله ای های تک قطبی.سوای منابع تغذیه , قطعات مدار تنها به :نوسانساز 4MHz  , یک مقاومت بالاکش[4] 10 کیلو اهم و چند کانکتور محدود می شود.در این طرح یک بسته 6 تایی از باتری های 1.2 ولتی ,که اختلاف پتانسیل   7.2 ولت تولید می کنند به طور خطی تنظیم(رگوله) می شوند تا تغذیه منطقی 5 ولتی را تامین نمایند.افت ولتاژ ترانزیستورهای دوقطبی درایور , به ولتاژ 7.2 ولت اجازه نمی دهد موتور را بیش از توان آن درایو کند.

     

     

    " کلمه کنترل"  به دو کلمه کنترل 2 بیتی شکسته شده است:دوبیت باارزش تر  که بیتهای 2و3 از PORTA  هستند , موتورسمت چپ را کنترل نموده و دو بیت کم ارزش تر یعنی بیتهای 0 ,1 از PORTA  موتور سمت راست را کنترل می کنند.برای این مقادیر:00 ,01 ,10 ,11 , کلمه کنترل به موتورها به ترتیب فرامین:جلو ,عقب,تثبیت موقعیت و سکون را  می دهد.این ترتیب را می توان به سادگی عوض کرد(نرم افزار پایین را ببینید)

    بنا به مدار طراحی شده,امکان کنترل سرعت موتور فراهم شده است.بخصوص این که به پالس های کنترلی متناوب برای پیشبرد موتورها نیازی نیست.بعلاوه هنگامی که یک گام(پله) طی شد,مداریک سیگنال خروجی در بیت 4 از PORTA تولید می کند.کنترل کننده اصلی می تواند این سیگنال را بازبینی کند تا هنگامی  که کلمه کنترل بایستی  تغییر کند را مشخص کند.به عنوان مثال برای اینکه  فاصله معینی به جلو حرکت نماید, پردازنده اصلی , تعداد گام های لازم برای دستیابی به این هدف را محاسبه نموده و به این ترتیب فرمان رو به جلو را به موتور صادر می کند.وقتی که تعداد گام های لازم طی شد ,کلمه کنترل می تواند به وضعیت ایست تغییر کند یا مجددا حرکت نماید.در اکثر پردازنده ها عمل شمردن گام ها(پله ها) را می توان به یک فعالیت در پس زمینه موکول کرد تا این امر در هر زمان وبدون دخالت کاربر صورت گیرد.

     

    نرم افزار:

     دو نسخه از نرم افزار موجود است.این یکی در C2C   که نسخه ای خاص از زبان C    است و دیگری در زبان اسمبلی که با کمک چند ماکرو ساختارهای برنامه نویسی سطح بالا ایجاد می کند.

    برنامه  اصلی به سادگی و به تناوب ,PORTA  را جهت یافتن تغییر در کلمه کنترل می خواند.این فرایند هر از چند گاهی هنگامی که  موتور به یک تحریک جدید نیاز داشته باشد توسط وقفه TMR0  متوقف می شود.چون تحریک موتور  دوره ای است , کنترل موتور در پس زمینه اجرا می شود.

    نرم افزار موجود به ما اجازه تغییرات ساده ای در تحریک سیم پیچی موتور ,کلمه کنترل و سرعت موتور را می  دهد.بدین ترتیب می توان به سادگی جدول تحریک را از لحاظ اندازه و محتوی برای نیم پله اصلاح کرد.کلمات کنترل تنها یک شمارش(از صفر تا چهار) هستند.بنابراین می توانیم ترتیب آنها را انتخاب کرده و در صورت لزوم , عوض نمود.باتغییر مقدار اولیه TMR0  می توان سرعت را در مبنای دو تغییر داد.تغییرات بهتر با ایجاد تغییر در مقدار اولیه TMR0  به دست می آیند.

    این خطوط  شبه کد  نرم افزار هستند:      

     

    Constants
    EXCITATION_TABLE_SIZE = 4   // number of excitations in sequence     
    TMR0_CNT_UP           = 100 // 256 - duration (motor speed)
    // Motor states
    RIGHT_FORWARD  = 0          // These can be re-ordered
    RIGHT_BACKWARD = 1
    RIGHT_HOLD     = 2
    RIGHT_IDLE     = 3
    LEFT_FORWARD   = 0           // Above states shifted 2 bits left (multiplied by 4)
    LEFT_BACKWARD  = 4      
    LEFT_HOLD      = 8 
    LEFT_IDLE      = 12
    GlobalVariables
    leftExcitationCntr          // current left motor excitation number
    rightExcitationCntr         // current right motor excitation number
    motorState                   // 4 bit function word for both motors
    excitations[] = {11000000b, // Excitation table - if the table is changed in size,
                     01100000b, // then the EXCITATION_TABLE_SIZE constant
                     00110000b, // must be changed
                     10010000b}
    Functions
    motorISR // Motor Interrupt Service Routine
       // Modifies global variables leftExcitationCntr and rightExcitationCntr as a function of motorState. 
       // It uses these counters as indices to read the motor excitation from the table and outputs it to PORTB.
       LocalVariables leftExcitation, rightExcitation
       if (motorState is RIGHT_FORWARD)
          if (rightExcitationCntr = EXCITATION_TABLE_SIZE-1)
             rightExcitationCntr = 0
          else
             increment rightExcitationCntr
          rightExcitation = excitations[rightExcitationCntr]
       else if (motorState is RIGHT_BACKWARD)
          if (rightExcitationCntr = 0)
             rightExcitationCntr = EXCITATION_TABLE_SIZE-1
          else
             decrement rightExcitationCntr
          rightExcitation = excitations[rightExcitationCntr]      
       else if (motorState is RIGHT_HOLD)
          rightExcitation = excitations[rightExcitationCntr]
       else // RIGHT_IDLE
          rightExcitation = 0
       shift rightExcitation 4 bits right
       if (motorState is LEFT_FORWARD)
          if (leftExcitationCntr = EXCITATION_TABLE_SIZE-1)
             leftExcitationCntr = 0
          else
             increment leftExcitationCntr
          leftExcitation = excitations[leftExcitationCntr]       
       else if (motorState is LEFT_BACKWARD)
          if (leftExcitationCntr = 0)
             leftExcitationCntr = EXCITATION_TABLE_SIZE-1
          else
             decrement leftExcitationCntr
          leftExcitation = excitations[leftExcitationCntr]           
       else if (motorState is LEFT_HOLD)
          leftExcitation = excitations[leftExcitationCntr]     
       else
          leftExcitation = 0
       PORTB = leftExcitation + rightExcitation
    end motorISR
    interrupt  // Main interrupt service routine gets control when TMR0 overflows
       if (TMR0 overflowed causing an interrupt)
          bit 4 of PORTA = 1         // signal motor step on
          call motorISR              // call motor interrupt service routine
          bit 4 of PORTA = 0         // signal motor step off
          TMR0 = TMR0_CNT_UP;        // reset TMR0 to proper count
    end interrupt
    main
       set TMR0 prescaler = 64     // divides clock by value set
       bit 4 of PORTA = 0           // signal motor step off
       leftExcitationCntr  = 0
       rightExcitationCntr = 0
       TMR0 =  TMR0_CNT_UP;
       enable TMR0 interrupts
       while (1)                    // continuously update motorState (and wait
          motorState = PORTA        //   for a TMR0 interrupt)
    end main
     

    جمع بندی:

    یک درایور معمولی موتور پله ای (هر چند ناقص) که مبتنی بر میکروکنترلر بود ,طراحی شده و با موفقیت ساخته شد.از آنجا که تنها 124 تا از 1024 کلمه حافظه PIC16F84  استفاده شد(در زبان اسمبلی) , می توان خواصی نظیر  افزایش سرعت و کاهش سرعت را نیز به آن اضافه نمود.همه 13 خط ورودی/خروجی در طرح حاضر استفاده شدند , بنابراین سیگنال های کنترلی خارجی اضافه بر این, به یک ارتقا در میکروکنترلرPIC  شما نیازمندند.با  PIC16F876  که دارای امکاناتی همچون "مدولاسیون پهنای پالس [5] " و تبدیل آنالوگ به دیجیتال است , ممکن است بتوانید درایو برشگر[6] طراحی نمایید.



    جواد میرباقری ::: سه شنبه 86/2/11::: ساعت 12:12 عصر
    نظرات دیگران: نظر

    در زیر با یک مدار کنترل از راه درو که تا فاصله 10 متر و بیشتر را کنترل می کند.، آشنا می شو ید.این مدار شامل دو قسمت گیرنده و فرستنده است.به همرا دوعدد سنسور مادون قرمز که یکی در قسمت گیرنده و دیگری در قسمت فرستنده است.
    این مدار یک مدار یک کاناله است.یعنی شما می توانید تنها یک سویچ را تحریک کنید یا یک LED را روشن و خاموش کنید.

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


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


    قسمت فرستنده


    <ol dir="rtl"> <li dir="rtl">

    1 عدد آیسی 555 <li dir="rtl">

    1 عدد کلید push -bottom <li dir="rtl">

    1 عدد سنسور مادون قرمز فرستنده <li dir="rtl">

    2 عدد خازن 0.01UF <li dir="rtl">

    1 عدد مقاومت 10 اهم <li dir="rtl">

    1 عدد مقاومت 1.8 کیلو اهم <li dir="rtl">

    1 عدد مقاومت 220 اهم <li dir="rtl">

    1 عدد رگولاتور 7805 <li dir="rtl">

    1 عدد خازن 470 میکروفاراد

       


    قسمت گیرنده


    <ol dir="rtl"> <li dir="rtl">

    1 عدد سنسور مادون قرمز گیرنده با نام PIC-2319SMB <li dir="rtl">

    1 عدد آیسی 555 <li dir="rtl">

    2 عدد خازن 10 میکروفاراد <li dir="rtl">

    2 عدد خازن 0.01 میکروفاراد <li dir="rtl">

    1 عدد مقاومت 470 اهم <li dir="rtl">

    1 عدد مقاومت 100 اهم <li dir="rtl">

    1 عدد مقاومت 10 کیلو اهم <li dir="rtl">

    1 عدد مقاومت 100 کیلو اهم <li dir="rtl">

    1 عدد LED <li dir="rtl">

    2 عدد برد بورد <li dir="rtl">

    سیم تلفنی <li dir="rtl">

    1 عدد رگولاتور 7805 <li dir="rtl">

    1 عدد خازن 470 میکروفاراد

       


    نقشه مدار فرستنده


    در نقشه همانطور که ملاحظه می کنید.در قسمت تغذیه که جدا از مدار اصلی کشیده شده از یک رگولاتور 7805 استفاده شده است.ولتاژ ورودی بین 9 تا 12 ولت و پایه وسط این رگولاتور زمین شده است.پایه خروجی که ولتاژ 5 ولت را برای تغذیه مدار می سازد نیز با یک خازن 470 میکروفاراد به زمین اتصال داده شده است.
    برای مشاهده datasheet رگولاتور وارد لینک زیر شود.برای مشاهده حتما بایست برنامه ACROBATREADER را در کامپیوتر خود داشته باشید.

    L7805

    مطابق معمول در ابتدا تغذیه آیسی را ببندید.پایه 8 و 4 تغذیه مثبت و پایه 1 تغذیه زمین است.،این پایه ها را بر روی برد بورد با استفاده از سیم تلفنی متصل کنید.پایه 2و6 را به طور مستقیم به یکدیگر متصل کنید.از اتصال مشترک پایه های 2و6 با یک مقاومت 1.8 کیلو اهم به پایه 7 ارتباط دهید.
    حال از پایه 7 با یک مقاومت 220 اهم به مثبت منبع تغذیه متصل نمایید.
    باز از پایه های مشترک شده 6و2 با یک خازن 10 میکروفاراد به زمین متصل نمایید.

    پایه 5 آیسی 555 را نیز به طور مستقیم با یک خازن 0.01میکروفاراد به زمین متصل کنید.

    img/daneshnameh_up/0/0a/infrared120.jpg


    پایه 3 را با یک مقاومت 10 اهم به یک سر کلید push-bottom و سر دیگر کلید push-bottom به سر مثبت یا آند سنسور فرستنده مادون قرمز متصل کنید.وسر منفی یا کاتد این فرستنده را به زمین متصل نمایید.
    مسیر شارژ و دشارژ‌ این آیسی توسط مقاومتهای 1.8کیلو اهم،220 اهم و خازن 0.01 میکروفاراد در پایه های 2و6و 7 ایجاد می شود.

    همانطور که در شکل زیر مشاهده می کنید این آیسی به صورت آ استابل بسته شده است.در مورد نحوه کار این آیسی می توانید وارد لینک های زیر شو ید.در این لینک ها می توانید.با نحوه تولید پالس در وانواع مختلف نحوه بستن آیسی555 آشنا شوید.


    برای جلوگیری از نویز بین پایه های مثبت و منفی یک عدد خازن 470 میکروفاراد در قسمت فرستنده قرار دهید.

    پالسهای مربعی شکل خروجی از پایه 3 آیسی 555 را می توانید توسط <u>اسیلسکوپ</u> مشاهده کنید.








    نقشه مدار گیرنده


    تغذیه قسمت گیرنده نیز مانند قسمت فرستنده است.به این قسمت در قسمت فرستنده دقت کنید.
    مطابق معمول تغذیه مثبت و زمین آیسی 555 را در ابتدا وصل کنید.پایه های 4و 8 آیسی 555 رابه مثبت منبع تغذیه و پایه 1 را به زمین متصل نمایید.

    به پایه های سنسور مادون قرمز PIC-2319SMB به دقت نگاه کنید این سنسور دارای سه پایه است.یک پایه مربوط به تغذیه پایه دیگر زمین و پایه سوم پایه خروجی است.که نسبت به دریافت امواج مادون قرمز از خود واکنش نشان می دهد.
    در بالای پایه خروجی این سنسور حرف E انگلیسی به صورت برعکس وجود دارد.

    پایه کنار این پایه،پایه 2 این سنسور است که می بایست زمین شود.پایه بعدی پایه شماره 3 یا پایه تغذیه است.
    این نوع سنسورهای گیرنده مادون قرمز به خاطر داشتن تغذیه حداکثر فاصله اییکه سنس می کنند.بیشتر از سنسورهای دو پایه معمولی است.

    پایه 2 این سنسور را همانطور که در نقشه مشخص است.به زمین متصل کنید.پایه 3 را یکبار با مقاومت 470 اهم به مثبت ولتاز و از همین پایه با یک خازن 10 میکروفاراد به زمین متصل کنید به صورتیکه پایه منفی این خازن در زمین باشد.

    پایه یک این سنسور را با یک خازن 0.01 میکروفاراد به پایه 2 آیسی 555 و از پایه 2 با یک مقاومت 10 کیلو اهم به مثبت منبع تغذیه متصل کنید.

    پایه 6و 7 را به یکدیگر متصل کنید.،و از این اشتراک با یک مقاومت 100 کیلواهم به مثبت منبع تغذیه متصل نمایید.

    پایه 5 را با یک خازن 0.01 میکروفاراد به زمین متصل نمایید.پایه خروجی 3 را با یک مقاومت 470 اهم به سر مثبت یا آند LED متصل نمایید.


    همانطور که در شکل مشخص است.در قسمت گیرنده آیسی 555 به صورت مونو استابل بسته شده است.در واقع این آیسی می بایست از جایی تحریک شود .تا در خروجی پالس ایجاد کند.تحریک این پایه همانطور که در نقشه مشخص است.،بوسیله پایه 1 سنسور PIC-2319SMB انجام می گیرد.زمانیکه پایه 2 آیسی 555 تحریک شود.خازن 10 میکروفارادی به همراه مقاومت 100 کیلواهم شروع به شارژ می کند.
    تحریک پایه 2 با ولتاژ زمین یا صفر است.

    در مدت شارژ خازن تا اینکه کاملا شارژ شود در خروجی لبه بالارونده پالس را داریم.در این مدت LED روشن می مانند.پس از شارژ کامل خازن پایه 6 آیسی 555 تحریک می شود.با تحریک این پایه در خروجی لبه پایین رونده پالس را داریم در این مدت LED خاموش است.،چرا که اختلاف پتانسیل بوجود آمده در جهت عکس قرار گرفتن LED است.اگر جهت LED را عوض کنید در هنگام ارسال پالس LED خاموش می شود.،ودر حالت عادی که پالسی ارسال نمی شود .،روشن باقی می ماند.،تا اینکه شما دومرتبه با فشار کلید PUSH -BOTTOM در قسمت فرستنده ، پایه 2 آیسی 555 را در قسمت گیرنده تحریک کنید.اگر از خازنی بزرگتر از 10 میکروفاراد استفاده کنید.،مدت زمانیکه LED روشن می ماند بیشتر خواهد بود.
    و اگر از خازنهای کوچگتر از 10 میکروفاراد استفاده کنید.LED پس از روشن شدن به سرعت خاموش می شود.

    اگر رنج خازنی که استفاده می کنید.،خیلی کوچک باشد.، شما دیگر روشن شدن LED را نخواهید دید.،چراکه سرعت شارژ شدن خازن و تحریک پایه 6 آیسی 555 آنقدر سریع است که LED فرصت واکنش یا عکس العمل را ندارد.

    اگر بخواهید خروجی شما در قسمت گیرنده تا ارسال پالس بعدی از فرستنده HIGH باشد.، یا LED روشن باقی بماند.می بایست از آیسی های نگهدارنده یا LATCH استفاده کنید.به جای LED از هر المان دیگری مانند یک سوییچ یا رله و بیزر نیز می توانید استفاده کنید.انتخاب المان بستگی به طراحی شما دارد.

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

    img/daneshnameh_up/b/b4/GIRANDEH1111.jpg




    جواد میرباقری ::: سه شنبه 86/2/11::: ساعت 12:11 عصر
    نظرات دیگران: نظر

    در زیر با یک مدار کنترل از راه درو که تا فاصله 10 متر و بیشتر را کنترل می کند.، آشنا می شو ید.این مدار شامل دو قسمت گیرنده و فرستنده است.به همرا دوعدد سنسور مادون قرمز که یکی در قسمت گیرنده و دیگری در قسمت فرستنده است.
    این مدار یک مدار یک کاناله است.یعنی شما می توانید تنها یک سویچ را تحریک کنید یا یک LED را روشن و خاموش کنید.

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


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


    قسمت فرستنده


    <ol dir="rtl"> <li dir="rtl">

    1 عدد آیسی 555 <li dir="rtl">

    1 عدد کلید push -bottom <li dir="rtl">

    1 عدد سنسور مادون قرمز فرستنده <li dir="rtl">

    2 عدد خازن 0.01UF <li dir="rtl">

    1 عدد مقاومت 10 اهم <li dir="rtl">

    1 عدد مقاومت 1.8 کیلو اهم <li dir="rtl">

    1 عدد مقاومت 220 اهم <li dir="rtl">

    1 عدد رگولاتور 7805 <li dir="rtl">

    1 عدد خازن 470 میکروفاراد

       


    قسمت گیرنده


    <ol dir="rtl"> <li dir="rtl">

    1 عدد سنسور مادون قرمز گیرنده با نام PIC-2319SMB <li dir="rtl">

    1 عدد آیسی 555 <li dir="rtl">

    2 عدد خازن 10 میکروفاراد <li dir="rtl">

    2 عدد خازن 0.01 میکروفاراد <li dir="rtl">

    1 عدد مقاومت 470 اهم <li dir="rtl">

    1 عدد مقاومت 100 اهم <li dir="rtl">

    1 عدد مقاومت 10 کیلو اهم <li dir="rtl">

    1 عدد مقاومت 100 کیلو اهم <li dir="rtl">

    1 عدد LED <li dir="rtl">

    2 عدد برد بورد <li dir="rtl">

    سیم تلفنی <li dir="rtl">

    1 عدد رگولاتور 7805 <li dir="rtl">

    1 عدد خازن 470 میکروفاراد

       


    نقشه مدار فرستنده


    در نقشه همانطور که ملاحظه می کنید.در قسمت تغذیه که جدا از مدار اصلی کشیده شده از یک رگولاتور 7805 استفاده شده است.ولتاژ ورودی بین 9 تا 12 ولت و پایه وسط این رگولاتور زمین شده است.پایه خروجی که ولتاژ 5 ولت را برای تغذیه مدار می سازد نیز با یک خازن 470 میکروفاراد به زمین اتصال داده شده است.
    برای مشاهده datasheet رگولاتور وارد لینک زیر شود.برای مشاهده حتما بایست برنامه ACROBATREADER را در کامپیوتر خود داشته باشید.

    L7805

    مطابق معمول در ابتدا تغذیه آیسی را ببندید.پایه 8 و 4 تغذیه مثبت و پایه 1 تغذیه زمین است.،این پایه ها را بر روی برد بورد با استفاده از سیم تلفنی متصل کنید.پایه 2و6 را به طور مستقیم به یکدیگر متصل کنید.از اتصال مشترک پایه های 2و6 با یک مقاومت 1.8 کیلو اهم به پایه 7 ارتباط دهید.
    حال از پایه 7 با یک مقاومت 220 اهم به مثبت منبع تغذیه متصل نمایید.
    باز از پایه های مشترک شده 6و2 با یک خازن 10 میکروفاراد به زمین متصل نمایید.

    پایه 5 آیسی 555 را نیز به طور مستقیم با یک خازن 0.01میکروفاراد به زمین متصل کنید.

    img/daneshnameh_up/0/0a/infrared120.jpg


    پایه 3 را با یک مقاومت 10 اهم به یک سر کلید push-bottom و سر دیگر کلید push-bottom به سر مثبت یا آند سنسور فرستنده مادون قرمز متصل کنید.وسر منفی یا کاتد این فرستنده را به زمین متصل نمایید.
    مسیر شارژ و دشارژ‌ این آیسی توسط مقاومتهای 1.8کیلو اهم،220 اهم و خازن 0.01 میکروفاراد در پایه های 2و6و 7 ایجاد می شود.

    همانطور که در شکل زیر مشاهده می کنید این آیسی به صورت آ استابل بسته شده است.در مورد نحوه کار این آیسی می توانید وارد لینک های زیر شو ید.در این لینک ها می توانید.با نحوه تولید پالس در وانواع مختلف نحوه بستن آیسی555 آشنا شوید.


    برای جلوگیری از نویز بین پایه های مثبت و منفی یک عدد خازن 470 میکروفاراد در قسمت فرستنده قرار دهید.

    پالسهای مربعی شکل خروجی از پایه 3 آیسی 555 را می توانید توسط <u>اسیلسکوپ</u> مشاهده کنید.








    نقشه مدار گیرنده


    تغذیه قسمت گیرنده نیز مانند قسمت فرستنده است.به این قسمت در قسمت فرستنده دقت کنید.
    مطابق معمول تغذیه مثبت و زمین آیسی 555 را در ابتدا وصل کنید.پایه های 4و 8 آیسی 555 رابه مثبت منبع تغذیه و پایه 1 را به زمین متصل نمایید.

    به پایه های سنسور مادون قرمز PIC-2319SMB به دقت نگاه کنید این سنسور دارای سه پایه است.یک پایه مربوط به تغذیه پایه دیگر زمین و پایه سوم پایه خروجی است.که نسبت به دریافت امواج مادون قرمز از خود واکنش نشان می دهد.
    در بالای پایه خروجی این سنسور حرف E انگلیسی به صورت برعکس وجود دارد.

    پایه کنار این پایه،پایه 2 این سنسور است که می بایست زمین شود.پایه بعدی پایه شماره 3 یا پایه تغذیه است.
    این نوع سنسورهای گیرنده مادون قرمز به خاطر داشتن تغذیه حداکثر فاصله اییکه سنس می کنند.بیشتر از سنسورهای دو پایه معمولی است.

    پایه 2 این سنسور را همانطور که در نقشه مشخص است.به زمین متصل کنید.پایه 3 را یکبار با مقاومت 470 اهم به مثبت ولتاز و از همین پایه با یک خازن 10 میکروفاراد به زمین متصل کنید به صورتیکه پایه منفی این خازن در زمین باشد.

    پایه یک این سنسور را با یک خازن 0.01 میکروفاراد به پایه 2 آیسی 555 و از پایه 2 با یک مقاومت 10 کیلو اهم به مثبت منبع تغذیه متصل کنید.

    پایه 6و 7 را به یکدیگر متصل کنید.،و از این اشتراک با یک مقاومت 100 کیلواهم به مثبت منبع تغذیه متصل نمایید.

    پایه 5 را با یک خازن 0.01 میکروفاراد به زمین متصل نمایید.پایه خروجی 3 را با یک مقاومت 470 اهم به سر مثبت یا آند LED متصل نمایید.


    همانطور که در شکل مشخص است.در قسمت گیرنده آیسی 555 به صورت مونو استابل بسته شده است.در واقع این آیسی می بایست از جایی تحریک شود .تا در خروجی پالس ایجاد کند.تحریک این پایه همانطور که در نقشه مشخص است.،بوسیله پایه 1 سنسور PIC-2319SMB انجام می گیرد.زمانیکه پایه 2 آیسی 555 تحریک شود.خازن 10 میکروفارادی به همراه مقاومت 100 کیلواهم شروع به شارژ می کند.
    تحریک پایه 2 با ولتاژ زمین یا صفر است.

    در مدت شارژ خازن تا اینکه کاملا شارژ شود در خروجی لبه بالارونده پالس را داریم.در این مدت LED روشن می مانند.پس از شارژ کامل خازن پایه 6 آیسی 555 تحریک می شود.با تحریک این پایه در خروجی لبه پایین رونده پالس را داریم در این مدت LED خاموش است.،چرا که اختلاف پتانسیل بوجود آمده در جهت عکس قرار گرفتن LED است.اگر جهت LED را عوض کنید در هنگام ارسال پالس LED خاموش می شود.،ودر حالت عادی که پالسی ارسال نمی شود .،روشن باقی می ماند.،تا اینکه شما دومرتبه با فشار کلید PUSH -BOTTOM در قسمت فرستنده ، پایه 2 آیسی 555 را در قسمت گیرنده تحریک کنید.اگر از خازنی بزرگتر از 10 میکروفاراد استفاده کنید.،مدت زمانیکه LED روشن می ماند بیشتر خواهد بود.
    و اگر از خازنهای کوچگتر از 10 میکروفاراد استفاده کنید.LED پس از روشن شدن به سرعت خاموش می شود.

    اگر رنج خازنی که استفاده می کنید.،خیلی کوچک باشد.، شما دیگر روشن شدن LED را نخواهید دید.،چراکه سرعت شارژ شدن خازن و تحریک پایه 6 آیسی 555 آنقدر سریع است که LED فرصت واکنش یا عکس العمل را ندارد.

    اگر بخواهید خروجی شما در قسمت گیرنده تا ارسال پالس بعدی از فرستنده HIGH باشد.، یا LED روشن باقی بماند.می بایست از آیسی های نگهدارنده یا LATCH استفاده کنید.به جای LED از هر المان دیگری مانند یک سوییچ یا رله و بیزر نیز می توانید استفاده کنید.انتخاب المان بستگی به طراحی شما دارد.

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

    img/daneshnameh_up/b/b4/GIRANDEH1111.jpg




    جواد میرباقری ::: سه شنبه 86/2/11::: ساعت 12:10 عصر
    نظرات دیگران: نظر

    عنوان اصلی مقاله:RF MODEM ROBOTICS PROJECT

     

    bot.jpg (34313 bytes)

    RufBOT  از سیستم TWS434RF  استفاده می کند

     

    استفاده از RF   در طرحهایتان راه حل مناسبی است. ولی اگر شما نیز مانند من مبتدی باشید , ساختن موفقیت آمیز یک فرستنده-گیرنده  Solid RF سخت است.

    وقتی که من شروع به کار کردم ,نمی دانستم فلز برد بورد[1]  مانند خازنهای کوچکی عمل نموده و باعث اعوجاج سیگنال فراوانی شده ,که در نتیجه عملکرد و پویایی مدار تغییر میکند.

    پس از تحقیق زیاد جفت فرستنده-گیرنده TWS 434 و RWS 434  از Reynolds Electronics  را پیدا کردم.البته من تولیدات مشابهی از MING Microsystems و  Radioshack   را نیز امتحان کردم, اما محصول  Reynolds Electronics از لحاظ قابلیت , قیمت و راحتی کار با آن بهتر از بقیه بود.بنابراین به کمک آن و نیز دو میکروکنترلر PIC16F84  [2]   کار کردن روی رابط سریال RF  خود که واسط بین کنترل گر(جوی استیک[3]) و روبوت بود را  شروع کردم.شما می توانید این قطعات را در  www.rentron.com/rf_remote_control.htm   بیابید.

     

     

     overhead.jpg (45407 bytes)

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

     

    rws434.gif (12850 bytes) 

    شماتیک مدار

     

    من متوجه شدم جفت مدار  فرستنده-گیرنده و ارتباط سریال تعبیه شده در زبان برنامه نویسی PICBasic موجود در PIC  های من,با یکدیگر به خوبی کار می کنند.من مطمئن نبودم , مدار با تبادل سریال غیرهمزمان و با  نرخ[4] (باود)  9600  خوب کار کند چون در سرعتهای بالا انتظار یک سری مشکلات را داشتم, اما در عمل به اشکالات اندکی برخورد کردم.من به سادگی موقعیت پتانسیومتر موجود در  جوی استیک را با استفاده از دستور  POT که از دستورات PICBasic  است, خواندم و نتیجه را در موقعیت B0  قرار دادم. و از آنجا با دستور SEROUT   محتوای B0   حافظه را به پایه 6 فرستنده TWS 434  ارسال نمودم تا داده دریافتی  از پین 3 , RWS 434 را خوانده  و حاصل را در B0   قرار دهدم.

    مقادیر موجود در B0  با موقعیت جوی استیک رابطه مستقیم دارد.ورودی بالاتر از 150 نشانگر "راست" است , پایین تر از 106 علامت چرخش به "چپ" بوده و میان این دو , نشان دهنده "مرکز" است.با استفاده از این اعداد می توان یک محدوده تعریف کرد.

                                                                                                             

     

     

     overhead1.jpg (36761 bytes)tx.jpg (29525 bytes)

    PIC  اطلاعات دسته بازی(جوی استیک) را خوانده و ارسال می نماید

     

    tws434.gif (14114 bytes)

    شماتیک مدار فرستنده

     

    در این نقاط اشارات(جهت حرکت دسته بازی) به سادگی  قابل مشاهده است.از طریق اعداد فرستاده شده می توانیم مسیر(راست ,چپ و غیره) و همچنین میزان انحراف به چپ  و راست را تعریف کنیم. با این داده ها  امکان تعریف "کنترل سرعت" وجود دارد.برای اعداد دورتر از  128 (مرکز) سرعت بیشتری اعمال شده است[5].در مورد این مدار , من از پایه های  PORTA از PIC  برای کنترل مسیر موتور استفاده کردم ولی کنترل سرعت نکردم.از آنجا که داده سریال ده بیتی است(یک بیت شروع ,هشت بیت داده و یک بیت پایانی) می توانیم در عرض یک ثانیه , 960 دستور را به PIC   گیرنده بفرستیم که برای قطعات زیر 20 دلار بد نیست.با استفاده از آنتن هایی که برای تلفن های بیسیم 900 MHz ساخته شده است , توانستم در فضای آزاد به برد 350 فوت[6]   برسم و هنگامی که تغذیه گیرنده را کمی از 12 ولت بیشتر کردم به بورد 500 فوت[7]  نیز رسیدم(این کار توصیه نمی شود).

    توجه:من از خروجی خطی برای گیرنده ام استفاده کردم چون می خواستم ببینم حداکثر نویزی که با وجود آن(که تولید اعوجاج در سیگنال می کند) مدار کار می کند چقدراست.در موردی که توان سیگنال به بورد 500 فوت رسید هر نوع نویز در فرکانس باعث بروز اشکال می شود.

    قطعه کد زیر نشان می دهد که قطعات موجود در  سیستم شما چقدر ساده  کار می کنند.



    جواد میرباقری ::: پنج شنبه 86/2/6::: ساعت 12:2 عصر
    نظرات دیگران: نظر

       1   2      >

    >> بازدیدهای وبلاگ <<
    بازدید امروز: 0
    بازدید دیروز: 0
    کل بازدید :41568

    >>اوقات شرعی <<

    >> درباره خودم <<

    >>آرشیو شده ها<<

    >>لوگوی وبلاگ من<<
    بهار 1386 - تازه ها از الکترونیک

    >>لینک دوستان<<

    >>جستجو در وبلاگ<<
    جستجو:

    >>اشتراک در خبرنامه<<
     

    >>طراح قالب<<
    بزرگترین سایت جاوا اسکریپت ایران