অটোমেটিক ডিভাইস কন্ট্রোল সিস্টেম অর্থাৎ স্বয়ংক্রিয় পদ্ধতিতে কোন ডিভাইসকে পরিচালনা করার পদ্ধতি। আমরা দৈনন্দিন জীবনে প্রতিদিন এমন কিছু কিছু যন্ত্র বা ডিভাইস ব্যবহার করি যা প্রায় পর্যায়ক্রমে চালু করতে হয় এবং নির্দিষ্ট সময় পরে বন্ধ করতে হয়, যেমন পানির মোটর, লাইট ইত্যাদি। আমরা PIC16F84 মাইক্রোকন্ট্রোলার ব্যবহার করে এধরণেরই একটি পূর্ণাঙ্গ প্রোজেক্ট তৈরির চেষ্টা করব।

ইতোমধ্যেই আগের পর্বগুলোতে PIC16F84 মাইক্রোকন্ট্রোলারের জন্য প্রাগ্রামিং প্রস্তুতি:১, প্রাগ্রামিং প্রস্তুতি:২, প্রোগ্রামার তৈরি, প্রোজেক্ট ডিজাইনিং, প্রোগ্রাম তৈরি করা, .hex ফাইল তৈরির পদ্ধতি, প্রোগাম সিমুলেশন পদ্ধতি, মাইক্রোকন্ট্রোলারে প্রোগ্রাম প্রেরণের কৌশল আলোচনা করা হয়েছে।

অটোমেটিক ডিভাইস কন্ট্রোল সিস্টেমের সার্কিট ডায়াগ্রাম:

প্রয়োজনীয় প্রোগ্রাম:

;Program for Automatic device control system.

; **********   programintroduction   *********

;   program name:     Automatic device control system.

;   creator:    Ashim kumar pall.

;   date:    14/03/2010

;   processor:    pic16f84A

;   oscillator:    4MZ

;   function:    Two device will be operated by the program automaticaly.

 

;*************   microcontroller configuration and declaration   *********

processor 16F84

#include”p16F84.inc”

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

 

;************   Declaring the variables   ************

count    equ 0×0c

count1   equ 0×0d

count2   equ 0×0e

ORG 0×00

goto init

ORG 0×04

goto init

 

;************   Delay subprogram   ****************

delay  movlw 0xff

movwf  count

aa     movlw 0xff

movwf  count1

bb     movlw 0xff

movwf  count2

decfsz   count2,f

goto $-1

decfsz   count1,f

goto bb

decfsz   count,f

goto aa

return               ;return to main program

 

;*************   Delay subprogram 1   *************

delay1  movlw 0×77

movwf  count

dd     movlw 0×77

movwf  count1

gg     movlw 0×77

movwf  count2

decfsz   count2,f

goto $-1

decfsz   count1,f

goto gg

decfsz   count,f

goto dd

return               ;return to main program

 

;***************  main program   *************

init bsf STATUS,RP0        ;select 1st bank

movlw 0×00          ;declare all ports of A as output

movwf TRISA

movlw 0×00            ;declare all ports of B as output

movwf TRISB

main bcf STATUS,RP0        ;switch to bank 0

movlw 0×20

movwf PORTB

call delay1

movlw 0×80

movwf PORTB

call delay

movlw 0×40

movwf PORTB

call delay

call delay

movlw 0×20

movwf PORTB

call delay

call delay

call delay

goto  main

end

 

;***************   End of main   *************

 

অটোমেটিক ডিভাইস কন্ট্রোল সিস্টেম সম্পর্কে কিছু কথা:

উপস্থাপিত  অটোমেটিক ডিভাইস কন্ট্রোল সিস্টেমটি যে কোন দুইটি AC 220V এর যে কোন Device কে নিয়ন্ত্রণ করতে পারে। কোন  Device টা কখন চালু হবে এবং কতক্ষণ চলবে তা প্রোগামের মধ্যে নির্ধারণ করে দেয়া হয়েছে। যেমন  সার্কিটটিতে একটা LED ব্যবহার করা হয়েছে যা সার্কিটে DC পাওয়ার সাপ্লাই দেওয়ার  সাথে সাথেই জ্বলে উঠবে এবং ৬ সেকেন্ড জ্বলে থাকবে। এর পর LED টি নিভে যাবে এবং Device 1 চালু হবে। Device 1 প্রায় ৫০ সেকেন্ড চালু থাকবে এর পর Device1 বন্ধ হয়ে গিয়ে Device2 চালু হবে। Device2 ১০০ সেকেন্ড চলবে । Device2 বন্ধ হয়ে গিয়ে পূণরায় LED টি জ্বলে উঠবে এবং তা প্রায় ১৫০ সেকেন্ড জ্বলবে । এরপর অটোমেটিক ডিভাইস কন্ট্রোল সিস্টেমটির কার্যক্রম আবার নতুন করে শুরু হবে এবং পাওয়ার সাপ্লাই যতক্ষণ থাকবে প্রক্রিয়াটি চক্রাকারে চলতে থাকবে।

দৃষ্টি আকর্ষণ:

পূর্বের আলোচিত পর্বগুলো ভালভাবে অনুসরণ করার মাধ্যমে এবং পর্য়ায়ক্রমিক কার্যক্রমের মাধ্যমে আপনারা প্রজেক্টটি সম্পূর্ণ করতে পারবেন। পরবর্তীতে মাইক্রোকন্ট্রোলার সম্পর্কে আরো বিস্তারিত এবং   আরো  আকর্ষনীয় এবং ব্যবহার উপযোগী প্রজেক্ট উপস্হানার করার চেষ্টা করব।

………………………………………………………………………………..

এখানেই শেষ করছি। সকলের জন্য শুভকামনা রইল ।

comments

8 কমেন্টস

  1. এত বড় code দেখলে ভয় লাগে। দেখেনতো এই code দিয়ে কাজ হয় কিনা :

    void main() {

    TRISB = 0x00; //Declear Output Port

    while(1)
    {
    PORTB = 0x01; //Led is on
    Delay_ms(6000); //6 second delay or 6 second led on;

    PORTB = 0x02; //Device1 on
    Delay_ms(50000); //50 second delay or 50 second Device1 on;

    PORTB = 0x04; //Device2 on
    Delay_ms(100000); //100 second delay or 100 second Device2 on;

    PORTB = 0x01;
    Delay_ms(150000); //150 second delay or 150 second led on;
    }

    }

    আর নতুন circuit diagram :

    Thanks.

    • ধন্যবাদ জিতু ভাই, আসলে আমি এসেমব্লি ল্যাঙ্গুয়েজ ব্যবহার করেছি, আপনি মনে হয় C ব্যবহার করেছেন। আমার c সম্পর্কে খুব বেশি ধারণা নেই। তবে শুনেছি C compiler ব্যবহার করে খুব সহজে মাইক্রোকন্ট্রোলার প্রোগ্রামিং করা যায়। আপনি মাইক্রোকন্ট্রোলার বিষয়ে আপনার অভিজ্ঞাতা আমাদের সাথে শেয়ার করতে পারেন। আমার মত অনেকেই উপকৃত হবে।

      • C compiler ব্যবহার করে মাইক্রোকন্ট্রোলার প্রোগ্রামিং সম্পর্কে জানার ইচ্ছা থাকলেও ব্যস্ততার কারণে হয়ে উঠে নি। আর তাছাড়া মাইক্রোকন্ট্রোলারের অভ্যন্তরীণ কার্যাবলী সম্পর্কে ভালভাবে জানার জন্য এসেমব্লি ল্যাঙ্গুযেজের কোন বিকল্প নেই। আমার মতে একটু কষ্ট করে হলেও মাইক্রোকন্ট্রোলার প্রোগ্রামিং এ হাতে খড়িঁ এসেমব্লি ল্যঙ্গুয়েজের মাধ্যমে হওয়া উচিৎ এবং মোটামটি ধারণা লাভের পর কোন হাই লেভেল ল্যঙ্গুয়েজ ব্যবহার করা যেতে পারে, যাতে করে কম কোডিং এ ভাল কাজ করা যায়।

      • আপনাকেও ধন্যবাদ , এ ধরণের টিউটেরিয়ালের জন্য। এসেমব্লি ল্যাঙ্গুয়েজে আগে কাজ করেছি। আর আমি Mikro C ব্যাবহার করে code টি করেছি।

        আমি আপনাদের মত গুছিয়ে লিখতে পারি না। তাই কোন টিউটেরিয়াল লিখতে পারিনি।

        আমি অবশ্যই আমার অভিজ্ঞাতা আপনাদের সাথে শেয়ার করব।

        • ধন্যবাদ জিতু ভাই, অপেক্ষায় রইলাম আপনার লেখার।

          “আমি আপনাদের মত গুছিয়ে লিখতে পারি না। তাই কোন টিউটেরিয়াল লিখতে পারিনি।”
          আসলে শুরুতে এমনটা মনে হয়। শুরু করুন সব ঠিক হয়ে যাবে।

          শুভ কামনা রইল।

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Time limit is exhausted. Please reload the CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.