Home Blog Page 9

প্রাথমিক মাইক্রোকন্ট্রোলার শিক্ষা [বিট, রেজিস্টার নিয়ে কিছু কথা]

0
bit-register-microcontroller

সবাইকে আমার পক্ষ থেকে আবার স্বাগতম, আশা করি সবাই ভালই আছেন। আমি অন্তর আহমেদ। আজ আমি আপনাদের মাইক্রোকন্ট্রোলার bit, Register এবং নাম্বার সিস্টেম সম্পর্কে কিছু বলবো। আমি ২য় পর্বে বলেছিলাম বিট রেজিস্টারের কথা যা আমাদের প্রোগ্রামিং এর প্রতিটা পদে পদে প্রয়োজন। এটি মূলত কোন পর্ব না। ২য় পর্বের একটি এক্সট্রা অংশ বিশেষ।

Register:

-> PIC এর অনেক register থাকে। যেমন, Timer, ADC, PORT, TRIS ইত্যাদি ইত্যাদি। সাধারণত রেজিস্টার 8 bit,10 bit, 16 bit এর হয়ে থাকে। একটি PIC এর ভেতরে প্রায় অনেক গুলো রেজিস্টার আছে এবং এই রেজিস্টার গুলো কত বিটের তা আমরা সেই PIC এর datasheet দেখে জানতে পারব।

নিচের ছবিটি দেখুন। এইটা 16f72 মডেলের একটি মাইক্রোকন্ট্রোলারের datasheet এর অংশ। এখান থেকে আমরা জানতে পারছি- এই PIC এ তিনটা টাইমার আছে যা যথাক্রমে Timer0 = 8 bit, Timer1 = 16 bit, Timer2 = 8 bit। ইত্যাদি আরও অনেক কিছু আমরা datasheet থেকেই জানতে পারি। (PIC এর Timer নিয়ে আমি পরবর্তীতে একটি পর্ব লিখব)

বিট রেজিস্টার

Bit:

-> উপরে আমরা দেখলাম রেজিস্টার 8 bit, 16 bit বা তার বেশিও হয়ে থাকে। রেজিস্টারের প্রতিটি বিটকেই মূলত বিট বলে। যেমন, PORTB register এর PORTB.0, PORTB.1, PORTB.2…. ইত্যাদি হল বিট। তাহলে আমরা বলতেই পারি বিট হল রেজিস্টারের একক।

বিট পিন

এখন আমরা উপরের ছবি দেখে বুঝতেই পারছি, PORTA, PORTB, PORTC হল PORT Register এবং RC0 বা PORTC.0, RC1 বা PORTC.1 ইত্যাদি হল উক্ত রেজিস্টারের এর বিট।

মাইক্রোকন্ট্রোলার নিয়ে কাজ করতে হলে আমাদের অবশ্যই Register, Bit সম্পর্কে ভালো ধারনা থাকতে হবে। 

Binary কোড কি?

-> 0 এবং 1 ই binary number. মাত্র ২টা অংক। অর্থাৎ যে নাম্বার পদ্ধতিতে শুধুমাত্র 0 এবং 1 দিয়ে সব কিছু করা হয় তাকেই বাইনারি কোড বা নাম্বার পদ্ধতি বলে।

Decimal কোড কি?

-> 0 থেকে ৯ পর্যন্ত decimal number। মোট ১০টা অংক। আমরা সাধারণত যে নাম্বার ব্যবহার করি সেটাই decimal number.

Hexadecimal কোড কি?

-> 0 থেকে ৯ এবং A, B, C, D, E, F. মোট ১৬টা অংক।

নাম্বার রূপান্তকরন প্রক্রিয়াঃ 

আমি আপনাদের সুত্র দিয়ে সময় নষ্ট করে রূপান্তর করা শিখাতে চাই না। windows এর সাথে দেয়া সাধারণ calculator দিয়েই আমরা রূপান্তর করা শিখব। নিচে প্রক্রিয়া দেখানো হলঃ

১। প্রথমে windows এর calculator প্যানেল ওপেন করুন। নিচের মত একটি window আসবেঃ

1

২। View> Programmer অথবা কীবোর্ড থেকে alt+3 চাপুন।

2

৩। নিচের মত window আসবে। তারপর নিচের ছবির মত setting করে নিনঃ

3

৪। এখন decimal কোড সিলেক্ট করা আছে। উদাহরণস্বরূপ আমি ২৫৫ লিখেছি। ছবিতে দেখুন আমরা সাথে সাথে বাইনারি কোড পেয়ে যাচ্ছি। এখন আপনি dec এর জায়গায় অন্য কোনটা সিলেক্ট করেই রূপান্তর করতে পাবেন। যেমন, এখন যদি আমরা Hex সিলেক্ট করি তাহলে দেখতে পারব “FF” দেখাচ্ছে। তারমানে ২৫৫ এর Hex code হল “FF”.

4

5

Hex = hexadecimal, Dec = decimal, Oct = Octal, Bin = Binary.

Register, bit এবং নাম্বারিং সিস্টেম এর একটি উদাহরনঃ 

ধরি, আমরা কোন একটি মাইক্রোকন্ট্রোলারের PORTB রেজিস্টার এর RB.0, RB.2, RB.5, RB.7 বিট গুলো আউটপুট করব এবং বাকি বিট গুলো ইনপুট করব। আমি আগের পর্বে বলেছিলাম PORT আউটপুট/ইনপুট নির্ধারণের রেজিস্টার হল TRIS Register. তাহলে দেখে নেই কিভাবে আমরা উক্ত বিট/পিন গুলো আউটপুট/ইনপুট হিসেবে নির্ধারণ করবঃ

আমরা জানি, ইনপুট = ১, আউটপুট = ০; তাহলে,

RB7     RB6      RB5      RB4      RB3      RB2      RB1      RB0

0          1          0          1           1          0         1           0

[ক্রম অবশ্যই বাম দিকে সর্বোচ্চ থেকে দান দিকে সর্বনিম্ন হবে।]

আমরা বাইনারিতে পেয়ে গেলাম, TRISB = 0b01011010;

// এখানে “0b” হল MikroC compiler এর বাইনারি নির্দেশক। এটা লিখলে compiler বুঝলে পারে আপনি বাইনারি কোড ইনপুট করেছেন। এবং TRIS এর সাথে “B” হওয়ার কারণ আমরা PORTB নিয়ে কাজ করতেছি।

নাম্বার রূপান্তর করেঃ

TRISB = 0x5A;

// এখানে “0x” হল MikroC compiler এর Hex কোড নির্দেশক। এটা লিখলে compiler বুঝলে পারে আপনি Hex কোড ইনপুট করেছেন।

TRISB = 90;

//এখানে “৯০” হল Decimal কোড। decimal কোড নির্দেশ করতে কোন compiler এই কোন  নির্দেশক লাগে না।

আশা করি সবাই বুঝতে পেরেছেন। তাও যদি কেও কোন কিছু না বুঝে থাকেন তাহলে কমেন্ট করতে পারেন।

আল্লাহ হাফেয।

প্রাথমিক মাইক্রোকন্ট্রোলার শিক্ষা [পর্বঃ ০২ । ডাটাশীট রিডিং]

0
মাইক্রোকন্ট্রোলার ডাটাশীট

আসসালামু আলাইকুম, আমি অন্তর আহমেদ। গত পর্বে আমি ডাটাশীট পড়ার কথা উল্লেখ করেছি। কিন্তু আমি জানি আপনারা যারা নতুন তারা কেউই ডাটাশীট ওপেন করে কিছু বুঝবেন না। কিন্তু ভাই এটা সত্যি যে শুধু মাত্র ডাটাশীট পড়েই অনেক কিছু বুঝা যায় এবং সেটা নিয়ে নেটে খুজতে হয় না। তাই আজকে আমাদের বিষয়, কিভাবে ডাটাশীট পরতে হয়?? চলুন তাহলে শুরু করিঃ

ধরেন, আপনি ঢাকা স্কুল নামক একটি স্কুলে পরেন। তাহলে সেই স্কুলে অবশ্যই কিছু সংখ্যক ক্লাস আছে এবং আপনি ক্লাস নাইনে পরেন। সেই ক্লাস নাইনেও আবার বেশ কিছু সংখ্যক ছাত্রও আছে। প্রত্যেক ছাত্রেরই আবার কতগুলো করে বই আছে। ধরেন আপনারও ৮টি বই আছে।

এখন দেখেন, স্কুলটি হল আমাদের মাইক্রোকন্ট্রোলার। কিন্তু আমাদের দেশে তো আর স্কুল একটা না তাই না? তাই আমি বলেছি ঢাকা নামক একটি স্কুল। ধরেন এটা আমাদের PIC16F877A যা একটি মাইক্রোকন্ট্রোলার। এই PIC16F877A মাইক্রোকন্ট্রোলারের ভেতরে আবার কিছু সংখ্যক ক্লাস আছে যাদের মডিউল [Module] বলা হয়। সব স্কুলে যেমন সমান সংখ্যক ক্লাস থাকে না তেমনি সব মাইক্রোকন্ট্রোলারেও সমান সংখ্যক মডিউল থাকে না। আবার বলতে গেলে এই মডিউলই হল একটি মাইক্রোকন্ট্রোলারের features (বৈশিষ্ঠ)। সকল ক্লাসের পড়া যেমন এক নয় তেমনি সকল মডিউলের কাজও কিন্তু এক না। যেহেতু আপনি ক্লাস নাইনে পরেন ধরি এই ক্লাস নাইন হল ADC Module [ADC = Analog to Digital Converter অর্থাৎ মাইক্রোকন্ট্রোলারের যে মডিউল এনালগকে মানকে ডিজিটালএ রূপান্তর করতে পারে]।

এই নাইনে কিন্তু আবার বেশ কিছু ছাত্র আছে, মডিউলে যাদের রেজিস্টার[Register] বলা হয়। একটি মডিউলেও রেজিস্টারের সংখ্যা একাধিক হতে পারে। যেমন, ADC Module এর জন্য ADCON0, ADCON1, ADRES ইত্যাদি রেজিস্টার। আবার এই প্রতিটি রেজিস্টার কিছু বিট[bit] নিয়ে গঠিত। যেমন, ADCON0 Register এর মধ্যে ADON, GO/DONE ইত্যাদি বিট।

নোটঃ এখানে ব্যবহৃত রেজিস্টার কিন্তু ইলেকট্রিক্যাল ও ইলেকট্রনিক্স সার্কিটে ব্যবহৃত রেজিস্টর নয়।

এখন একটা সহজ কথা বলি, আসলে বিটগুলো দিয়ে রেজিস্টারকে নিয়ন্ত্রণ করা হয়। আর এই রেজিস্টারের মধ্যেই বলা হয় মডিউলটা কিভাবে কাজ করবে কিভাবে আউটপুট দিবে। এমন কি আউটপুট বা মাইক্রোকন্ট্রোলারে কোন ইনপুট দিলেও সেটা কোন না কোন রেজিস্টারে গিয়ে জমা থাকে। এভাবেই একটি সম্পূর্ণ মাইক্রোকন্ট্রোলার কাজ সম্পাদন করে থাকে। বলতে গেলে মাইক্রোকন্ট্রোলারের কিছু মডিউল, রেজিস্টার, বিট ছাড়া আর কিছুই নাই। নিচের ছবিটি দেখেন আশা করি বুঝতে পারবেনঃ

How Work!

যদি কারও বিশ্বাস না হয় তাহলে এখন মাইক্রোকন্ট্রোলারের একটি ডাটাশীট ওপেন করে দেখে নিন। আসলে আমি কোন কিছু বেশি দিন মনে রাখতে পারি না। তাই এভাবে বুঝে নিয়েছিলাম। আশা করি আপনারাও বুঝতে পেরেছেন।

শুধু মাত্র ডাটাশীট পড়েই আপনি জানতে পারবেন কোন পিন কিভাবে কাজ করে। এজন্য আপনার বিট, বাইট[৮ বিটে ১ বাইট], রেজিস্টার সম্পর্কে ভাল জ্ঞান থাকতে হবে। মনে রাখা ভাল, ৮-বিট মাইক্রোকন্ট্রোলারের বেশির ভাগ রেজিস্টারই ৮ বিটের হয়।

এখানে ৮-বিট মাইক্রোকন্ট্রোলার বলতে বুঝায়, যে সকল মাইক্রোকন্ট্রোলারের ইনপুট/আউটপুট[I/O] পিন গুলোর রেজিস্টারে সর্বাধিক ৮টি বিট থাকে। যেমন, PIC16F877A এর RB0-RB7, RC0-RC7 ইত্যাদি। অর্থাৎ ৮বিটের বেশি নাই। RB[PORTB] একটি রেজিস্টার এবং RB0 এই রেজিস্টারের একটি বিট।

যেহেতু আমি বলেছিলাম আমাদের এই কোর্সের জন্য আমি শুধু PIC16F877A ব্যবহার করব তাই এখানে আমি শুধু PIC16F877A এর ডাটাশীট নিয়ে আলোচনা করলাম।

PIC16F877A এর পিনআউটঃ

PIC16F877a পিন আউট

নিচে PIC16F877A এর ডাটাশীট এর কিছু অংশ হাইলাইট করে দেখানো হলঃ

High-Performance RISC CPU:

Operating speed: DC – 20 MHz clock input

DC – 200 ns instruction cycle

  • Up to 8K x 14 words of Flash Program Memory,
  • Up to 368 x 8 bytes of Data Memory (RAM),
  • Up to 256 x 8 bytes of EEPROM Data Memory.

Peripheral Features:

  • Timer0: 8-bit timer/counter with 8-bit prescaler
  • Timer1: 16-bit timer/counter with prescaler,

can be incremented during Sleep via external

crystal/clock

  • Timer2: 8-bit timer/counter with 8-bit period

register, prescaler and postscaler

  • Two Capture, Compare, PWM modules
  • – Capture is 16-bit, max. resolution is 12.5 ns
  • – Compare is 16-bit, max. resolution is 200 ns

PWM max. resolution is 10-bit

  • Synchronous Serial Port (SSP) with SPI™

(Master mode) and I2C™ (Master/Slave)

  • Universal Synchronous Asynchronous Receiver

Transmitter (USART/SCI) with 9-bit address detection

  • Parallel Slave Port (PSP) – 8 bits wide with external RD, WR and CS controls (40/44-pin only)
  • Brown-out detection circuitry for Brown-out Reset (BOR)

Analog Features:

  • 10-bit, up to 8-channel Analog-to-Digital

Converter (A/D)

  • Brown-out Reset (BOR)
  • Analog Comparator module with:

Two analog comparators

– Programmable on-chip voltage reference (VREF) module

– Programmable input multiplexing from device inputs and internal voltage reference

– Comparator outputs are externally accessible.

ডাটাশীট এ মাইক্রোকন্ট্রোলারের বিশেষ ফিচার

ডাটাশীটটি ডাউনলোড করার জন্য এখানে ক্লিক করুনঃ PIC16F877A Datasheet.

বিট, রেজিস্টার নিয়ে কিছু কথাঃ

প্রোগ্রামিং এ আমাদের মূলত বিট, রেজিস্টারই দরকার পরে। কারণ যেহেতু প্রতিটি রেজিস্টারের নামই ভিন্ন তাই মডিউলকে প্রোগ্রামিং এ দরকার পরে না। রেজিস্টারের নাম বলতেই মাইক্রোকন্ট্রোলার বুঝে যায় আপনি কোন মডিউল নিয়ে কাজ করছেন।

যেহেতু বিট বাইনারি তাই একটি বিট শুধু ০ অথবা ১ হতে পারে। যেমন ধরেন, আপনি এখন PIC16F877A এর ১৫ নং পিনটি অন করবেন তাহলে আপনাকে প্রথমে দেখতে হবে পিনটি কোন রেজিস্টারে। এটি হল RC0, অর্থাৎ PORTC রেজিস্টারের ‘0’ নং বিট। তাহলে পিনটি অন করার জন্য লিখা জেতে পারেঃ

PORTC = 0b00000001; অথবা

PORTC.F0 = 1; অথবা PORTC.B0 = 1; অথবা

RC0_bit = 1;

সব গুলোর আউটপুট একই হবে। [প্রোগ্রামিং এর সময় বিস্তারিত আলোচনা করা হবে।]

[দ্রঃ বিঃ – কোন পিন অন করার আগে অবশ্যই পিনটিকে আউটপুট করে নিতে হবে। কোন পিন ইনপুট না আউটপুট হিসেবে কাজ করবে তা নির্ধারণ করার রেজিস্টার হল TRIS Register।]

PORTC = 0b00000001; এর ক্ষেত্রে আমি সম্পূর্ণ রেজিস্টারের মধ্যে মান দিয়েছি সুতরাং মানটি হবে ৮ বিটের কারণ আমাদের PORTC ৮ বিটের একটি রেজিস্টার।

বাকি সকল ক্ষেত্রে আমি শুধু মাত্র একটি বিটে মান দিয়েছি সুতরাং মানটি হবে বাইনারি[০ অথবা ১]।

এভাবে মাইক্রোকন্ট্রোলারের সকল কিছু নিয়ন্ত্রণ করা হয় বিট এবং রেজিস্টার এর মাধ্যমে।

বিট, রেজিস্টার সম্পর্কে আরও জানতে এখানে ক্লিক করুনঃ প্রাথমিক মাইক্রোকন্ট্রোলার শিক্ষা [বিট, রেজিস্টার নিয়ে কিছু কথা]

আশা করি সকলেই বুঝতে পেরেছেন। কারও কোন প্রশ্ন জিজ্ঞাসা থাকলে কমেন্ট করুন।

আজ এই পর্যন্তই। আল্লাহ হাফেয।

পরবর্তী আকর্ষণঃ

১। আমাদের প্রথম প্রোগ্রাম – এলইডি ব্লিঙ্কিং।

PIC Microcontroller দ্বারা LCD Display নিয়ন্ত্রণ

0
PIC Microcontroller LCD Control

PIC Microcontroller কি?

PIC (Peripheral Interface Controller) হল Microchip Technology দ্বারা নির্মিত এবং General Instrument এর পৃষ্ঠপোষকতায় তৈরি এক শ্রেণীর Microcontroller। Microcontroller হল processor core, memory, এবং programmable input/output যন্ত্রাংশের সমন্বয়ে একক Chip এ তৈরি একটি ক্ষুদ্র Computer।

এই Tutorial এ PIC Microcontroller এর উপর basic একটি project থাকবে। তার আগে প্রথমেই কিছু Irrelevant কিন্তু Inevitable বিষয় তুলে ধরছি। বর্তমানে Hobbyist দের মধ্যে Arduino এর ব্যাপক জনপ্রিয়তা লক্ষ্য করা যাচ্ছে। একেবারে গোড়া থেকে শুরু করার সময় সকলেই একটি দোদুল্যমান অবস্থার সম্মুখীন হয় যে- কোন Platform থেকে কাজ শুরু করবে। এখানে দুটো ব্যাপার আসে।

এক: একটি Platform নির্বাচন করে Project এ হাত দেওয়া;

দুই: একটি Project নির্বাচন করে তারপর Platform ঠিক করা।

Hobbyist রা সাধারণত প্রথমটিই করে থাকে। কিন্তু সহজ কথায়, আমাদের দুইটা বিষয় লক্ষ্য রাখতে হবে।

প্রথমত: দেয়াল ভাংতে ঘুষি মারা চলবে না;

দ্বিতীয়ত: মশা মারতে কামান দাগা যাবে না।

Development Board (e.g. Arduino, BasicATOM, BasicX, POB Technology, Pololu, Parallax etc.) বনাম MCU / Microcontroller Unit (e.g PIC, Atmel AVR, ARM, Intel etc.):

এই Tutorial এ আমি এর গভীরে যাব না। সংক্ষেপে; Arduino এর মত বিভিন্ন Development Board এর Programming Syntax খুবই সহজ এবং অত্যন্ত জটিল Project করার উপযোগী। এগুলতে সহজেই বিভিন্ন External Device যোগ করা যায়। অপরদিকে Microcontroller বিভিন্ন Entry Level এর Project করার জন্য উপযোগী। কিন্তু MCU এর Programming Syntax কিছুটা দুরূহ এবং Configure করা অপেক্ষাকৃত কঠিন।

এবার আমরা PIC Microcontroller দিয়ে LCD Display নিয়ন্ত্রণ করার Tutorial এর মূল পর্বে আসছি।

PIC Microcontroller নিয়ে কাজ করার জন্য তিনটি জনপ্রিয় IDE আছে।

  • (i) MikroC Pro,
  • (ii) Hi Tech C এবং
  • (iii) MPLAB XC8

আমরা এই Tutorial এ MikroC Pro ব্যবহার করব।

উপকরণ সমূহঃ

  • PIC Microcontroller (PIC16F877A)
  • 16×2 LCD Display (LM016L)
  • XTAL Crystal 8MHz
  • Capacitor 22pF
  • Variable Resister / Potentiometer 10KΩ

প্রথমেই আমাদেরকে MCU এর Pin গুলো কে LCD এর জন্য Configure করতে হবে।

MCU এর মোট ৪০ টি Pin এবং LCD Display এর মোট ১৬ টি Pin। নিচে বিস্তারিত Pinout দেওয়া হল।

Pinout of PIC16F877A MCU
Pinout of PIC16F877A MCU
Pinout of LCD Display (LM016L)
Pinout of LCD Display (LM016L)
Pinout of LCD display (LM016L)
Pinout of LCD display (LM016L)

Output হিসেবে MCU এর RC2, RC3, RC4, RC5, RC6 ও RC7 Pin কে ব্যবহার করা হবে।

LCD এর ৬ টি Pin: RS, EN, DB4, DB5, DB6 ও DB7 এর জন্য MCU কে Configure করতে হবে।

sbit LCD_RS at RC2_bit;
sbit LCD_EN at RC3_bit;
sbit LCD_D4 at RC4_bit;
sbit LCD_D5 at RC5_bit;
sbit LCD_D6 at RC6_bit;
sbit LCD_D7 at RC7_bit;
sbit LCD_RS_Direction at TRISC2_bit;
sbit LCD_EN_Direction at TRISC3_bit;
sbit LCD_D4_Direction at TRISC4_bit;
sbit LCD_D5_Direction at TRISC5_bit;
sbit LCD_D6_Direction at TRISC6_bit;
sbit LCD_D7_Direction at TRISC7_bit;

প্রথম অংশঃ
…………………..
sbit LCD_D5 at RC5_bit;
…………………..

এখানে বলা হচ্ছে যে LCD এর DB5 Pin MCU এর RC5 Pin এ সংযুক্ত হবে।

দ্বিতীয় অংশঃ
………………………………
sbit LCD_D5_Direction at TRISC5_bit;
………………………………
এখানে বলা হচ্ছে যে RC5 Pin Output হিসেবে কাজ করবে DB5 Pin এর জন্য।

এরপর Program এর মূল অংশ

void main()
{
 Lcd_Init();
 Lcd_Cmd(_LCD_CLEAR);
 Lcd_Cmd(_LCD_CURSOR_OFF);
 Lcd_Out(1,1," Hello, AE!");
}

” Lcd_Init();” দ্বারা LCD Initialize করা হল।

এরপর LCD কে দুইটি Command দেওয়া হয়েছে। কি Command তা Code দেখেই বুঝতে পারছেন। LCD এর আরও কিছু Command নিচে দেওয়া হল।

_LCD_TURN_ON – Turns ON the LCD Display.
_LCD_TURN_OFF – Turns OFF the LCD Display.
_LCD_FIRST_ROW – Moves the cursor to the first row.
_LCD_SECOND_ROW – Moves the cursor to the the second row.
_LCD_THIRD_ROW – Moves the cursor to the third row.
_LCD_FOURTH_ROW – Moves the cursor to the fourth row.
_LCD_CLEAR – Clears the LCD Display.
_LCD_CURSOR_OFF – Turns ON the cursor.
_LCD_UNDERLINE_ON – Turns ON the cursor underline.
_LCD_BLINK_CURSOR_ON – Turns ON the cursor blink.
_LCD_MOVE_CURSOR_LEFT – Moves cursor LEFT without changing the data.
_LCD_MOVE_CURSOR_RIGHT – Moves cursor RIGHT without changing the data.
_LCD_SHIFT_LEFT – Shifts the display left without changing the data in the display RAM.
_LCD_SHIFT_RIGHT – Shifts the display right without changing the data in the display RAM.
_LCD_RETURN_HOME – Returns the cursor and shifted display to Home position.

“Lcd_Out(1,1,” Hello, AE!”);” এখানে LCD তে String Print করা হল। “1, 1” দ্বারা  প্রথম Row, প্রথম Column এ Output নির্দেশ করা হয়েছে।

এবার Circuit এর সম্পূর্ণ Schematic নিচে দেখি-
(বি. দ্র: Diagram এ Vss এবং Vdd Pin গুলো দেখান হয়নি।)

Circuit Schematic
PIC Circuit Schematic

এখানে Source Code এবং Programmable HEX File অন্তর্ভুক্ত করা আছে।

Source Code and HEX File

Password: 16F877A

Credits:
Idea and Code: electrosome.com
MCU Pinout: Microchip
LCD Pinout: engineersgarage.com
Software: MikroElektronika, Labcenter Electronics

আরডুইনো শিখি – পাঠ ৪ঃ PWM

1

PWM এর পূর্নরূপ হলো Pulse Width Modulation. বিভিন্ন কাজে, যেমন LED এর উজ্জ্বলতা নিয়ন্ত্রন, DC মোটরের গতি নিয়ন্ত্রন সহ নানা কাজে ব্যবহার করাহয় এই পদ্ধতিটি।

যে কোনো মাইক্রোকন্ট্রোলার ভোল্টেজ বলতে চেনে কেবল 0 Volt (0) অথবা 5 Volt(1). সুতরাং সেক্ষেত্রে গতি অথবা উজ্জ্বলতা নিয়ন্ত্রন করা সম্ভবপর হয়ে ওঠে না। দরকার পড়ে নতুন কোন পদ্ধতির। আর সেটি হল PWM

এই বিষয়ে আরও বিস্তারিত জানতে এখানে ক্লিক করুন

PWM হল এমন একটা উপায় যেখানে আমরা ডিজিটাল মানের সাহায্যে এনালগ মান প্রদর্শন করতে পারি।
তার আগে দুটি গুরুত্বপূর্ণ তথ্য বলে রাখি ।
১। আরডুইনো আউটপুটে সর্বনিম্ন ভোল্টেজ হচ্ছে ০ ভোল্ট। এবং সর্বোচ্চ হচ্ছে ৫ ভোল্ট।

২। আরডুইনো তে ৮ বিট এর PWM default ভাবে দেয়া থাকে। মানে আপনি ২^৮ = ২৫৬ =০ থেকে ২৫৫ পর্যন্ত ব্যবহার করতে পারেন।
সহজে বোঝার জন্য আমরা এই রকম একটা স্কেলিং করতে পারি ।

Untitled

মানে যা দাড়ায় ডিজিটাল মান ১  = ৫/২৫৬ = ০.০১৯৫৩১২৫ ভোল্ট

এখন আর একটা নতুন জিনিস দেখি। আমরা কিভাবে বা কোন কমান্ড ব্যবহার করে প্রোগ্রাম এর ভিতর এইটা লিখব ।

analogWrite()

এখন আর একটা ছবি দেখলে পুরো ব্যাপার টা পরিষ্কার হয়ে যাবে।

PWM - Pulse Width Modulation

এখানে আমি বলেছিলাম যে 127 [analogWrite(127)] = 2.5 V আসলে ওইটা বোঝার সুবিধার্থে।
এর সঠিক অর্থ হচ্ছে আউটপুট এর ডিউটি সাইকেল ৫০ পারসেন্ট।
এভাবে analogWrite(pwm pin, digital value ) এ মানের পরিমান বিভিন্ন দিয়ে আমরা বিভিন্ন ডিউটি সাইকেল ব্যাবহার করতে পারি ।
আমি নিচে একটি কোড উদাহরন হিসাবে দিচ্ছিঃ

 

int ledPin = 9;    // LED connected to digital pin 9

void setup() {
  // nothing happens in setup
}

void loop() {
  // fade in from min to max in increments of 5 points:
  for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);
    // wait for 30 milliseconds to see the dimming effect
    delay(30);
  }

  // fade out from max to min in increments of 5 points:
  for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);
    // wait for 30 milliseconds to see the dimming effect
    delay(30);
  }
}


int ledPin = 9;    // LED connected to digital pin 9

void setup() {
  // nothing happens in setup
}

void loop() {
  // fade in from min to max in increments of 5 points:
  for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);
    // wait for 30 milliseconds to see the dimming effect
    delay(30);
  }

  // fade out from max to min in increments of 5 points:
  for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin, fadeValue);
    // wait for 30 milliseconds to see the dimming effect
    delay(30);
  }
}


 

সাথে থাকার জন্য ধন্যবাদ।

প্রাথমিক মাইক্রোকন্ট্রোলার শিক্ষা [পর্বঃ ০১ । প্রাথমিক আলোচনা]

6
ধারাবাহিক মাইক্রোকন্ট্রোলার টিউটোরিয়াল

আসসালামু আলাইকুম, আমি অন্তর আহমেদ। শুরু করছি আমার “প্রাথমিক মাইক্রোকন্ট্রোলার শিক্ষা” ধারাবাহিক টিউটোরিয়ালের প্রথম পর্ব। এই কোর্সটা মূলত তাদের জন্য যারা ইলেক্ট্রনিক্স নিয়ে কাজ করেন এবং মোটামুটি এনালগ সার্কিট এ জ্ঞান আছে।

মাইক্রোকন্ট্রোলার কিঃ

মাইক্রো মানে “ছোট”, কন্ট্রোলার মানে “যে নিয়ন্ত্রন করে”। তাহলে এর মানে দাঁড়ায় “কোন কিছু নিয়ন্ত্রন করার ছোট একটি যন্ত্র”। এটি আসলে একটি ছোট্ট কম্পিউটার বা একটি সিঙ্গেল চিপ যাতে প্রসেসর, র‍্যাম, মেমোরি, ইনপুট/ আউটপুট প্রান্তস্থ একই সাথে থাকে।

একে uC/μC [MicroController], MCU [MicroController Unit] ইত্যাদি নামে ডাকা হয়।

মাইক্রোকন্ট্রোলারের কাজ কিঃ

মাইক্রোকন্ট্রোলার কি সেটা আমরা জানলাম। সহজ ভাষায় বলতে গেলে এর কাজ হল কিছু নির্দিষ্ট নিয়ম মেনে কিছু নির্দিষ্ট কাজ সম্পাদন করা। এখানে এই নির্দিষ্ট নিয়মটা হল প্রোগ্রামিং। অর্থাৎ আমরা একে প্রোগ্রামিং এর মাধ্যমে যেভাবে কাজ করতে নির্দেশ করবো এটা ঠিক সেই অনুযায়ী কাজ করবে বা আউটপুট দিবে। মাইক্রোকন্ট্রোলার আসলে একটি প্রোগ্রামাবেল ডিভাইস। যা বারবার যত খুশি ততবার প্রোগ্রাম করা যায়।

মাইক্রোকন্ট্রোলার এর মুল কাজ হল এনালগ কাজকে ডিজিটাল এ করা।

আমরা সবাই জানি এনালগ মানেই ঝামেলা, অনেক পরিশ্রম, ছোট একটি কাজে বড় সার্কিট তৈরি ইত্যাদি। এসব থেকে রক্ষা করতেই বিজ্ঞান আমাদের দিয়েছে মাইক্রোকন্ট্রোলার। যে কাজ করতে এনালগে আমাদের নানা প্রকার IC, transistor, diode ইত্যাদি দরকার হয় সে সকল কাজ আমরা ডিজিটাল এ শুধু ০, ১ দিয়ে করাতে পারি। উদাহরন দিয়ে বুঝিয়ে দেইঃ ধরি আমরা একটি ৭ সেগমেন্ট ঘড়ি বানাবো। তাহলে এনালগে আমাদের লাগছে প্রতিটি ৭ সেগমেন্ট ডিজিটের জন্য একটি করে ৭ সেগমেন্ট ড্রাইভার IC, টাইম কাউন্টার সার্কিট, টাইম সেট করার জন্য আরেকটি সার্কিট। কিন্তু আমরা যদি মাইক্রোকন্ট্রোলার দিয়ে করি তাহলে আমাদের সত্যি শুধু একটি ডিভাইস ছাড়া আর কিছুরই দরকার নেই। সবগুলো সার্কিটের কাজ কে শুধু একটি মাইক্রোকন্ট্রোলার দিয়েই করা সম্ভব।

কিছু জনপ্রিয় ব্রান্ডের নামঃ

  1. Microchip [PIC/dsPIC].
  2. Atmel [AVR/ARM].
  3. Arduino [মাইক্রোকন্ট্রোলার নয় কিন্তু AVR মাইক্রোকন্ট্রোলার দিয়ে তৈরি]
  4. Samsung/Toshiba/Intel ইত্যাদি আরও অনেক ব্যান্ডের আছে।

প্রত্যেকটি ব্রান্ডের আবার বেশ কিছু model আছে। যেমনঃ

Microchip PIC:

PIC16F series: 16F628, 16F676, 16F72, 16F877 ইত্যাদি ইত্যাদি প্রায় অনেক মডেলের আছে।

এরকম PIC18F, PIC24F, PIC32F series ইত্যাদি ইত্যাদি। এগুলো একটির থেকে অন্যটি ভিন্ন ভিন্ন। তবে সম্পূর্ণ ভাবে যে ভিন্ন তাও নয়। অনেকটাই মোবাইল ব্রান্ডের সাথে তুলনা করা জেতে পারে। যেমনঃ symphony ব্রান্ডের D series এর D18 মোবাইল। আর এখানে Microchip ব্রান্ডের 16F series এর  16F877A মডেল। আমরা যদি আমাদের ব্যবহারিক জীবনের সাথে সম্পর্ক বের করতে পারি তাহলে আমাদের মনে রাখতে সুবিধা হবে। 

[আমাদের এই কোর্সে প্রোগ্রাম করার জন্য আমরা শুধু MICROCHIP এর PIC16F877A ব্যবহার করবো। কারণ, এটি কম দামী এবং বেশি সুবিধা প্রধানকারী এবং প্রায় ৪০টি পিন আছে] 

কিছু কথাঃ

উপরের বর্ণনা থেকে আমরা বুঝতেই পারছি মাইক্রোকন্ট্রোলার আসলে একটা নয়। শত শত মাইক্রোকন্ট্রোলার থেকে আমাকে আমার কাজের চাহিদা অনুযায়ী বেছে নিতে হবে। প্রতিটি মাইক্রোকন্ট্রোলারের কিছু নিজস্ব features থাকে। আমরা ইতিমধ্যে জেনেছি, মাইক্রোকন্ট্রোলারের RAM, ROM, Program memory ইত্যাদি আছে। শুধু তাই নয় প্রত্যেকটি ডিভাইস এর আরও কিছু features আছে, যেমন: ADC, Timer, I2C, USB, DAC, PWM ইত্যাদি [এগুলো পরে বিস্তারিত আলোচনা করা হবে]। এগুলো সব MCU তে সমান পরিমানে থাকে না। আমাদের project এ কি ধরণের features প্রয়োজন এবং কত গুলো পিন লাগবে এগুলো maintain করেই আমাদেরকে সঠিক মাইক্রোকন্ট্রোলার বেছে নিতে হবে।

এজন্য অবশ্যই আপনাকে মাইক্রোকন্ট্রোলারের datasheet পড়তে হবে। datasheet পড়তে পড়তে আপনি এমন দক্ষ হবেন যে তখন datasheet না দেখেই বলে দিতে পারবেন একটি প্রোজেক্ট এর জন্য আপনাকে কোন MCU টা বেছে নিতে হবে এবং কোনটাতে কম খরচেই কাজ হবে। 

কোন প্রোগ্রামিং ল্যাঙ্গুয়েজঃ

যেহেতু মাইক্রোকন্ট্রোলার প্রোগ্রাম এর মাধ্যমে কাজ করে তাহলে অবশ্যই আমাদের একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখতে হবে। কম্পিউটার প্রোগ্রামিং এর মতো মাইক্রোকন্ট্রোলারেরও অনেক প্রোগ্রামিং ল্যাঙ্গুয়েজ আছে।  

আমি আমার এই কোর্সে সি প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখাব এবং এই প্রোগ্রামিং ল্যাঙ্গুয়েজ এই কাজ করবো।

MICROCHIP এর জন্য সবথেকে ভাল একটি কম্পাইলার হলঃ

>>MikroC pro for PIC [cracked]. [click to download]

সার্কিট চেক করব কিভাবেঃ

আমরা তো অনেক project ই করব প্রতিটা project তো আমদের circuit এ করে চেক করা সম্ভব না। কারন প্রজেক্ট সঠিক ভাবে কাজ করবে কিনা তা আমরা জানি না সুতরাং বুজতেই পারছেন আমদের কত টাকা নষ্ট হবে…??? Proteus এমন একটি software যা দিয়ে আপনি computer এই circuit RUN করে চেক করতে পারবেন circuit টি কাজ করে কিনা। তাহলে বুঝতেই পারছেন Proteus একটি virtual circuit checking software.

>ISIS Proteus 8 professional [cracked].[click to download]

বার্নার বা রাইটারঃ

সফটওয়্যার ছাড়াও আমাদের আরেকটা জিনিস লাগবে যা খুবই গুরুত্বপূর্ণ। সেটি হল একটি ডিভাইস যা দিয়ে আমরা আমাদের করা প্রোগ্রামটিকে আমাদের মাইক্রোকন্ট্রোলারে নিবো। এটা অনেকটা কার্ড রিডার এর মত কাজ করে। আমরা যেমন মেমোরি কার্ড এ গান, ছবি লোড করার জন্য কার্ড রিডার ব্যবহার করি ঠিক তেমনই মাইক্রোকন্ট্রোলারে প্রোগ্রাম লোড করার জন্য এই ডিভাইসটির প্রয়োজন হয়। এর নাম PIC Burner/PIC Programmer.

কোনটি ভাল হবে?

বাজারে নানা প্রকারের এই ডিভাইস পাওয়া যায়। প্রশ্ন হল তাহলে আমার জন্য কোনটা ভাল হবে?

১। যদি আপনি শুধু MICROCHIP এর মধ্যেই সীমাবদ্ধ থাকতে চান তাহলে আপনার জন্য PICKIT 2/3.

২। আবার আপনি যদি চান যে আপনি একসময় AVR, Intel, 8051 ইত্যাদি নিয়ে কাজ করবেন তাহলে আপনার জন্য Universal Topwin Programmer ভাল হবে।

[MickoC এবং Proteus কিভাবে সেটআপ করতে হয় তা তাদের নিজ নিজ ফোল্ডার এ Readme.txt ফাইলে উল্লেখ্য করা আছে। তাও কারো যদি সেটআপ করতে কোন সমস্যা হয় তাহলে আমাকে জানাবেন] 

আরেকটা কথা, আপনারা প্রোগ্রাম রাইট করার জন্য যে ডিভাইসই ব্যবহার করেন তার জন্য একটি সফটওয়্যার প্রয়োজন হয়। যেমনঃ PICKIT 2 এর জন্য PICKIT 2.61. [Click to download]

[পরবর্তীতে আমরা যখন আমাদের প্রথম প্রোগ্রাম লিখবো তখন আমরা দেখবো কিভাবে এই ডিভাইস ব্যবহার করতে হয়।]

যারা নতুন কাজ শিখছেন তাদের জন্য আপাতত আর কিছুই লাগবে না। এগুলো নিয়েই মাঠে নামতে পারেন।

PIC16F877A এর কিছু সাধারন আলোচনাঃ

1.1

মাইক্রোকন্ট্রোলারের পিন পরিচিতিঃ

RA, RB, RC, RD, RE[0….n] = ইনপুট/আউটপুট।

AN[0….n] = Analog to Digital(ADC) পিন।

TX, RX = USART protocol.

SDA, SCL = I2C protocol.

SDI, SDO, SCK = SPI protocol.

PSP[0….n] = PSP protocol.

INT[0..n] = External Interrupt.

PGC,PGD, PGM = প্রোগ্রাম লোড করার পিন।

CCP = Capture/Compare/PWM.

OSC1, OSC2 =  Crystal.

ইত্যাদি ইত্যাদি……। [রে সবকিছুর বিস্তারিত ধারাবাহিক ভাবে উপস্থাপন করা হবে।]

আরেকটু ক্লিয়ার করে দেই। একটা পিনের একাধিক নাম থাকার মানে এই না যে পিনটি দিয়ে  একসাথেই সবগুলো বা একাধিক কাজ করানো যাবে। একটি পিনকে একটি প্রোগ্রামে শুধুমাত্র একটি কাজে ব্যবহার করা যাবে। যেমনঃ আমরা যদি কোন পিন ইনপুট/আউটপুট হিসেবে কাজ করাই তাহলে সেই পিনকে আর ADC বা অন্য কোন কাজে ব্যবহার করতে পারব না। এমনকি যদি ইনপুট হিসেবে কাজ করাই সেক্ষেত্রেও এই পিনকে আর আউটপুট হিসেবে কাজ করানো যাবে না।

আবার আমাদের যদি জানা থাকে ADC এর জন্য PIC এ AN পিন থাকে তাহলে আমরা PIC এর পিন ডায়াগ্রাম দেখেই বলে দিতে পারব কোন PICADC আছে এবং কয়টি আছে।

বেসিক পাওয়ার সাপ্লাইঃ 

1.2

আমাদের মাইক্রোকন্ট্রোলারটি চালু করতে প্রথমেই আমাদের একটি পাওয়ার সাপ্লাই লাগবে। যা অবশ্যই 5V এর হতে হবে। উপরে আমি একটি পাওয়ার সাপ্লাই দেখিয়েছি। যার A পয়েন্টে AC লাইন অথবা B পয়েন্টে 6-18V পর্যন্ত অথবা C পয়েন্টে সরাসরি 5V দিলেই আমাদের মাইক্রোকন্ট্রোলারটি চালু হবে। [A, B, C এর যেকোনো একটিতে দিলেই হবে।]

মাইক্রোকন্ট্রোলার এর সাধারণ সার্কিট

পাওয়ার সাপ্লাই এ আমরা দেখেছি VCC নামে একটি চিহ্ন আছে যা এই সার্কিটের VCC এর সাথে যুক্ত হবে।

এটিই মূলত মাইক্রোকন্ট্রোলারের বেসিক সার্কিট।

MCLR পিন VCC এর সাথে 1-10K রেজিস্টর দিয়ে লাগানো হয়। RESET বাটন বাধ্যতামূলক নয়।

এখানে OSC1, OSC2 তে লাগানো Crystal এর মান 4-40MHz পর্যন্ত হতে পারে। কোন কোন PIC এ এটি না লাগালেও কাজ করবে। কারন সেই PIC এর ইনসাইডে built-in ভাবে 8MHz লাগানো থাকে। তবে প্রোগ্রামে অবশ্যই উল্লেখ করে দিতে হয় PIC টি কোন ক্লক সোর্সে চলবে। এজন্য অবশ্যই Datasheet পরতে হবে।

Crystal মূলত প্রসেসরের কাজ করে। যা PIC কে স্পীড দিয়ে থাকে।

আজ এই পর্যন্তই। আল্লাহ হাফেয। 🙂

পরবর্তী আকর্ষণঃ

১। ডাটাশীট কিভাবে পরতে হয়?

২। pIC16F877A নিয়ে আলোচনা।

ট্রানজিস্টর দিয়ে মোটর ড্রাইভার সার্কিট

4
ট্রানজিস্টর দিয়ে সহজ মটোর ড্রাইভার সার্কিট

ইলেকট্রনিক্সে আগ্রহি প্রায় সকলেই মোটর নিয়ে কাজ করছে৷ বিশেষ করে যারা রোবটিক্স নিয়ে কাজ করে তাদের কাছে DC মোটর এক অতিপ্রয়োজনীয় বস্তু৷ এর জন্য মোটর ড্রাইভার ও অতীব জরুরী। রোবটকে সচল করতে দরকার হয়ে পরে মোটেরর৷ শুধু তাই নয় এর সাথে সাতে আরো দরকার হয়ে মোটর কে সামনে বা পিছনে ঘোরানো। এবং জোরে বা আস্তে ঘোরানো ৷ DC মোটরকে নিয়ন্ত্রন করার জন্যে ডিভাইস লাগে তাকে মোটর ড্রাইভার  বলে৷ মটোর ড্রাইভার অনেক ধরনের হয়ে থাকে যেমনঃ

  1. আইসি মটোর ড্রাইভার (যেমনঃ 293D)
  2. ট্রানজিস্টর মটোর ড্রাইভার

আজকে আমি আলোচনা করবো আমরই তৈরী একটি ট্রানজিস্টর মটোর ড্রাইভার সার্কিট নিয়ে৷ যেটা আপনারা মাত্র 50 টাকা খরচ করে বানাতে পারবেন। এবং এটি IC মটোর ড্রাইভার থেকে ভালো হবে৷

মটোর ড্রাইভারটির গুনাবলিঃ

  1. সর্বোচ্চ 3A বিদ্যুত প্রাবাহ নিতে পারবে
  2. স্টার্টিং ভোল্টেজ ড্রপিং 0.707v-2.3 v
  3. রানিং ভোল্টেজ ড্রপিং 0.707 v (সাধারন 12 V DC মোটেরর জন্য
  4. পার্লস ওভার ল্যাপিং প্রটেক্টেড
  5. শর্টসার্কিট প্রটেক্টেড
  6. মটোর দ্রুত সামনে পিছনে ঘোরালেও সার্কিট গরম হয় না
  7. সাপ্লাই ভোল্টেজ অপেরেটিং ভোল্টেজ একই যেটা ±31V
  8. দুইটা মটোর নিয়ন্ত্রন করা যাবে
  9. চারটা ডিজিটাল লজিক ইনপুট পিন
  10. PWM সাপোর্টেটড
  11. এটি দিয়ে স্টেপার মোটর ও কন্ট্রোল করা সম্ভব

পার্টস লিস্টঃ

ট্রানজিস্টার মোটর ড্রাইভারটা বানাতে যা লাগবেঃ

  1. চারটা PNP ট্রানজিস্টার ,BD140 ৷
  2. চারটা NPN ট্রানজিস্টার, BD139 ৷
  3. রেজিস্টার : আটটা 1.5 k এবং দুইটা 2.2 k
  4. ক্যাপাসিটর : দুইটা 100uF এর পোলার ৷
  5. চারটি LED
  6. প্রয়োজন মত ব্রেড বোর্ড ৷

নিচের চিত্রের ডায়াগ্রামের মত করে সংযোগ দিতে হবেঃ

motor driver

ব্যবহার পদ্ধতিঃ

দুইটা মটোর কন্ট্রোল করার জন্যে একই রকম সার্কিট এখানে দুইটা দেওয়া হয়েছে৷ বাম পাশের সার্কিট এবং ডান পাশের সার্কিট৷ প্রতিটি সার্কিট থেকে দুই দিকের মটোরের দুই প্রান্তে গেছে৷ প্রতিটা মোটর কে সামনে পিছনে ঘোরানোর জন্যে প্রতিটা সার্কিটে দুইটা ডিজিটাল লজিক পিন আছে৷ যেমনঃ বাম পাশের সার্কিটে M11, M12 এবং ডান পাশের সার্কিটে M21, M22।

সার্কিটের কার্য পদ্ধতিঃ

যদি, M11 পিনকে লজিক হাই করা হয় তবে বাম পাশের মোটরের M101 – ভোল্ট /গ্রাউন্ড সাপ্লাই দিবে। এবং M102 (+) ভোল্ট সাপ্লাই দিবে, যার ফলে মোটর সামনে ঘুরবে৷ কিন্তু যদি, M12 পিনকে লজিক হাই করা হয় তবে বাম পাশের মোটরের M101 (+) ভোল্ট সাপ্লাই দিবে। এবং M102 (-) ভোল্ট /গ্রাউন্ড সাপ্লাই দিবে। যার ফলে মোটর পিছনে ঘুরবে৷ ঠিক ডানপাশের সার্কিটও এভাবে কাজ করে৷ এই ইনপুট পিনগুলাতে, PWM দিয়ে মোটের গতি নিয়ন্ত্রন করা যায়৷ পরবর্তী দিন PWM নিয়ে আলোচনা করবো ৷

বিশেষ কৃতজ্ঞতাঃ সৈয়দ রাইয়ান ভাই

LED ও কোয়ান্টাম পদার্থ বিজ্ঞান

4
LED ও কোয়ান্টাম ফিজিক্স

আমরা সবাই কমবেশি LED চিনি। এবং ব্যবহার করে থাকি বিভিন্ন কাজে৷ LED চিনলেও আমরা অনেকেই জানিনা যে, এটা কি করে আলো তৈরী করে৷ আমি আজকে খুব সংক্ষেপে বুঝানোর চেস্টা করবো- LED এর আলো তৈরীর পিছনে কোয়ান্টাম ফিজিক্স কিভাবে কাজ করে ৷

LED কিঃ

LED এর ফুল মিনিং Light Emitting Diode, এই নামের মাধ্যমে এর কার্যকলাপ অনেকটাই প্রকাশ পায়৷ অর্থাৎ আলোক বিচ্ছুরণ করতে পারে এমন ডায়োড। আমাদের পরিচিত LED লাইট ও আর দশটা ডায়োডের মতই। যা একটা P টাইপ এবং একটা N টাইপের অর্ধপরিবাহি চিপ দিয়ে গঠিত৷ আমরা অনেকেই হয়তো শুনেছি P টাইপ পদার্থে হোল (Hole – শূন্যতা) এবং ইলেকট্রনের মিলনে আলো তৈরী হয়৷ আসুন জেনে নেই কিভাবে এই হোল এবং ইলেকট্রনের মিলন ঘটে এবং আলো তৈরী হয় ৷

প্রথমে আসি P টাইপ পদার্থের গঠন নিয়েঃ

P টাইপ পদার্থ হলো, হোল বহনকারি অর্ধপরিবাহী চিপ ৷ একটা সিলকন চিপের, Si কয়েক লক্ষ পরামানুর সাথে কয়েকটা তৃযোজি পরমানু (B, Al, Ga, In) মিশিয়ে P টাইপ বস্তু তৈরী করা হয়৷ আমরা জানি, Si যোজনি 4 যার কারনে এটি এর ল্যাটিসে অন্য পরমানুর সাথে চারটা ইলেকট্রন শেয়ার করে৷ যদি এর ল্যাটিসে Ga যোগ করা হয় তবে এটি তিনটা ইলেকট্রন শেয়ার করে এবং চারটা ইলেকট্রন অন্য চারটা Si থেকে নিয়ে এর সর্ববহিস্থ স্তরে মোট 7 টা ইলেকট্রন নিয়ে ল্যাটিস গঠন করে৷

P টাইপ পরমানুর অভ্যন্তরে
P টাইপ পরমানুর অভ্যন্তরে

কিন্তু আমরা অষ্টকতত্ত্ব অনুসরে জানি, প্রতিটা পরমানু এর সর্ববহিস্থ স্তরে 8 ইলেকট্রন নিয়ে স্থায়ি কাঠামো তৈরী করতে চায়৷ এখানে একটা Si ল্যাটিসে একটা Ga যুক্ত হওয়ার ফলে যে স্থানে একটা ইলেকট্রনের কম পরে সে স্থানকেই হোল বলা হয় ৷ এবং এই পুরো লেটিসটাকে P টাইপ ল্যাটিস বলা হয়৷ একটা P টাইপ ল্যাটিসে অনেক গুলা হোল থাকে। এবং ল্যাটিসটা সব সময় চায় অন্য কোথাও থেকে ইলেকট্রন নিয়ে তার হোল পুরোন করতে। এর ল্যাটিস স্থায়ি করতে৷ এবং আমরা জানি কোন ল্যাটিস স্থায়ি হলে সেটা শক্তি বিকিরন করে ৷

এবার আসি N টাইপ পদার্থের গঠন নিয়েঃ

N টাইপ পদার্থ হলো,অতিরিক্ত ইলেকট্রন বহন কারি অর্ধপরিবাহী চিপ ৷ একটা সিলকন চিপের, Si কয়েক লক্ষ পরামানুর সাথে কয়েকটা পঞ্চযোজি পরমানু (N, P, As, Sb) মিশিয়ে N টাইপ সেমিকন্ডাক্টর

N টাইপ সেমিকন্ডাক্টরের গঠন
N টাইপ সেমিকন্ডাক্টরের গঠন

 তৈরী করা হয়৷ আমরা আগেই বলেছি- Si যোজনি 4। যার কারনে এটি এর ল্যাটিসে অন্য পরমানুর সাথে চারটা ইলেকট্রন শেয়ার করে৷ যদি এর ল্যাটিসে As যোগ করা হয় তবে এটি পাঁচটা ইলেকট্রন শেয়ার করে এবং চারটা ইলেকট্রন অন্যচারটা Si থেকে নিয়ে এর সর্ববহিস্থ স্তরে মোট 9 টা ইলেকট্রন নিয়ে ল্যাটিস গঠন করতে চায়৷ কিন্তু আমরা অষ্টক তত্ব অনুসরে জানি, প্রতিটা পরমানু এর সর্ববহিস্থ স্তরে সাধরনত 8 এর বেশি ইলেকট্রন নিতে পারে না৷ তাই অতিরিক্ত ইলেকট্রনটা সব সময় ল্যাটিসে ঘুরে বেরায় ৷N টাইপ একটা ল্যাটিসে অনেকগুলো ইলেকট্রন থাকতে পারে৷ এটি সব সময় চায় ইলেকট্রন ছেড়ে দিতে৷

PN জাংশানঃ

PN জাংশন
PN জাংশন

P টাইপ ল্যাটিস ও N টাইপ ল্যাটিসের মিলিত স্থানকেই PN জাংশন বলে৷ বাস্তবে একটা সিলেকন ল্যাটিসের এক প্রান্তে Ga যোগ করে P টাইপ অন্য প্রান্তে As যোগ করে N টাইপ বানানো হয়৷ এবং N টাইপ অঞ্চলের বাড়তি ইলেকট্রনগুলো P টাইপ অঞ্চলে এসে হোল পূরণ করে বা Ga এর চার দিকে 8 টা ইলেকট্রন পূর্ণ করে ৷

কার্যপ্রণালীঃ

যখন P টাইপে একটা ব্যাটারির পজিটিভ প্রান্ত এবং N টাইপে নেগেটিভ প্রান্ত দেওয়া হয়৷ তখন ব্যাটারির positive প্রান্ত P টাইপ অঞ্চাল থেকে হোল পূরণকারি ইলেকট্রন গুলো টেনে নিতে থাকে৷ যার ফলে হোলের সৃষ্টি হতে থাকে৷ এবং যখনই হোলের সৃষ্টি হয় তখনই আশ-পাশের N অঞ্চল থেকে ইলেকট্রন এসে ঐ হোল পূরণকরে এবং নিজ স্থানে হোলের সৃষ্টি করে৷ যেহেতু ব্যাটারির নেগেটিভ প্রান্ত N প্রান্তের সাথে যুক্ত৷ তাই হোল সৃষ্টি হওয়ার সাথে সাথে ব্যাটারির নেগেটিভ প্রান্ত থেকে ইলেকট্রন এসে ঐ হোল পূরণ করে৷ সম্পূর্ণ চিপে ইলেকট্রন গুলো হোল পূরণ করার জন্যে এক পরমানু থেকে অপর পরমানুতে যেতে থাকে। তখন যে পরমানু থেকে ইলেকট্রন গুলো অপর পরমানুতে যায় সেখানে হলের সৃষ্টি হতে থাকে। যার ফলে মনে হয়, সম্পুর্ন চিপে হোল ও ইলেকট্রনের মত চলমান, কিন্তু দিক বিপরীত ৷

LED ও কোয়ান্টাম ফিজিক্সএখন, একটা হোল বহন কারি পরমানু অন্য একটা পরমানু থেকে ইলেকট্রন নিয়ে ঠিক যখনই অষ্টক পুর্ন করে এবং অপর পরমানুতে হোলের সৃষ্টি হয় তখনই শক্তি আলোক রূপে বিকীর্ণ হয়৷

আলোক বিকিরণ প্রক্রিয়ার ব্যাখ্যাঃ

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

u=(2ch³/π²me⁴)(n2²/n2²-n12)

এখানে,

c = আলোর বেগ
h = প্লাংকের ধ্রুবক
m = ইলেকট্রনের ভর
e = ইলেকট্রনের চার্জ
n2 = পরমানুর উপরের স্তরের প্রধান কোয়ান্টম সংখ্যা
n1 = নিচের স্তরের প্রধান কোয়ন্টাম সংখ্যা

একটি ইলেকট্রন এক শক্তিস্তর থেকে অপর শক্তিস্তরে গেলে যে শক্তি বিকিরণ করে বা শোষন করে তাকে ঐ শক্তিস্তর দ্বয়ের ইলেকট্রন ভোল্ট ডিফারেন্স- eV বলে৷ একটা অর্ধপরিবাহির জন্যে সর্ববহিস্থ শক্তিস্তর থেকে মুক্তশক্তি স্তরের শক্তিপার্থক্য 6 eV৷ তাই যখন একটা হোল পরমানু তার হোল পূরণের জন্যে একটা মুক্ত ইলেকট্রন তার সর্ববহিস্থ স্তরে নেয়। তখন শক্তি, তরিৎ চৌম্বক শক্তিরূপে নির্গত হয়৷ তাকে এভাবে প্রকাশ করা হয়-

E=hf =>eV=hc/u =>u=hc/eV

এখানে,

E = eV =পরমানুর শক্তিস্তর দ্বয়ের শক্তি পার্থক্য, পার ইলেকট্রন
f = বিকিরনের ফ্রিকোয়েন্সি
c = বিকিরনের তরঙ্গ বেগ
u = তরঙ্গ দৈর্ঘ্য

আর, ইলেকট্রনের সর্ববহিস্থ স্থর থেকে মুক্ত হতে যে পরিমান শক্তি লাগে সেটা বাইরের তরিৎ চালক বল থেকে পেয়ে থাকে৷

আর, এভাবেই LED এর অর্ধপরিবাহির পরমানুর শক্তি স্থরের উত্থান-পত্তনের মাধ্যমে এমন তরিৎ চৌম্বক বর্নালি তৈরী হয় যেটা আমরা দেখতে পাই বা এটাকেই আলো বলা হয়৷ নিচের চিত্র দেখলে আশাকরি বুঝতে আরো সহজ হবেঃ

LED থেকে আলোক বিকিরণের পদ্ধতি
LED থেকে আলোক বিকিরণের পদ্ধতি

সবাইকে অনেক ধন্যবাদ সময় নিয়ে এই দীর্ঘ লেখাটি পড়বার জন্য।

ছোটদের জন্য বিজ্ঞান – ৬

0
ছোটদের জন্য বিজ্ঞান - ৬ (বিজ্ঞানী ও উদ্ভাবন)

আমরা এর আগে আবিস্কার ও উদ্ভাবন সম্পর্কে জেনেছিলাম। এখন এই আবিস্কার ও উদ্ভাবনের সাথে কোন যন্ত্রের কে জনক বা প্রথম আবিস্কারক সেটা কিভাবে নির্ধারিত হয়ে সেটা বুঝতে চেষ্টা করবো। এই চেষ্টাটা হবে আমাদের জানা কিছু জিনিসকে নতুন ভাবে জানবার মাধ্যমে।কিছু নতুন যুক্তি উপস্থাপনের মাধ্যমে আমরা দেখবো আসলে এই আবিস্কার বা উদ্ভাবন গুলো কিভাবে একজনের নামে আসে বা এ্রর পিছনের মানুষগুলো কিভাবে হারিয়ে যায় বা গ্যাছে। এই হারিয়ে যাওয়াগুলো আসলে শুণ্যতা – এই শুণ্যতা জ্ঞানের। যা আমাদের জানা জগতে তৈরী করে পিছনের দরজাতে কিছু কালো বিন্দুর। ফলে যা বাধা হয়ে দাড়ায় নতুন জ্ঞান তৈরীতে। আবার এই সুযোগে কিছু মানুষ কুতর্ক করে বা করবার সুযোগ পায়। বিজ্ঞান, আবিস্কার ও উদ্ভাবন নিয়ে।আমরা সবাই জানি রেডিও আবিস্কার করেছে বিজ্ঞানী মার্কনী। পাশাপাশি শুনতে পাবো এটা আগেই আবিস্কার করেছিলেন আমাদের বাঙালী বিজ্ঞানী জগদীশ চন্দ্র বোস। আরেকটু ঘাটাঘাটি করলে দেখবো আরও কিছু নাম। বিজ্ঞানী টেসলা যাদের মধ্যে অন্যতম। বিজ্ঞানী টেসলা, বিজ্ঞানী মার্কনী না বিজ্ঞানী জগদীশ চন্দ্র বোস কে প্রথম আবিস্কার করেছে রেডিও তা নিয়ে ব্যাপক তর্ক আছে। আমরা এই তর্কে যাবো না, আমরা শুধু দেখবো এই রেডিও টেকনোলজীর বা প্রযুক্তির বিকাশ। বিজ্ঞানী টেসলা বা বাঙালী বিজ্ঞানী জগদীশ বোস দুজনেই মার্কনীর আগে বিনাতারে যোগাযোগ প্রযুক্তির উদ্ভাবন করেছেন কিন্তু প্রথম বাণিজ্যিক ভাবে সফল বিনাতারের প্রযুক্তি তথা সেই সময়কার টেলিগ্রাফ বার্তা বাণিজ্যিক ভাবে প্রেরণের কাজটি করেছে বিজ্ঞানী মার্কনী।

এভাবে যদি বিমান আবিস্কারের কথা বলি তবে দেখবো এর আবিস্কারক হচ্ছেন রাইট ভাইয়েরা, আসলেই কি এর আগে বিমান ছিলো না বা এর ধারণা ছিলো না? অবশ্যই ছিলো – বিমান উড্ডয়নের বিজ্ঞানের ইতাহাস অনেক পুরনো – এটা ধীরে ধীরে বিকশিত হয়েছে এর চুড়ান্ত ফল স্বরুপ রাইট ভাইয়েরা প্রথম কার্যকরী আকাশ যান তৈরী করতে সক্ষম হয়েছেন তাই উনারা এর আবিস্কারকের মর্যাদা পাচ্ছেন।

প্রতিটি আবিস্কারের পিছনেই থাকতে পারে কিছু পুর্বজ্ঞান কিন্তু যিনি এই জ্ঞানকে মানব কল্যাণে কাজে লাগাতে পারেন সেটাই আবিস্কারের মর্যাদা পাবে ও তিনিই হবেন আবিস্কর্তা। আবার যদি আমরা ভুলে যাই ঐ পুর্বজ্ঞানের কথা তবে বিজ্ঞান বা আবিস্কারের আর কোন উন্নতি হবে না বা আবার হয়তো নতুন করে শুরু করতে হবে একবারে গোড়া থেকে।

বিশ্বজুরে আবিস্কার ও আবিস্কারকে স্বীকৃতি দিতে একটি প্রতিষ্ঠান আছে যা মার্কীনযুক্তরাষ্ট্রে অবস্থিত। যা পেটেন্ট অফিস নামে পরিচিত। দুইজন ব্যক্তির একজন আরেক জনের আগে আবিস্কার করবার পরও যদি পরের ব্যক্তির আগে পেটেন্টের জন্য আবেদন করেন তবে আইনগতভাবে তিনি আর প্রথম থাকবেন না। বিজ্ঞানী জগদীশ বোসের ক্ষেত্রের এমনটিই হয়েছিলো – তিনি ১৮৯৫ সালে তাঁর রেডিও যন্ত্র প্রথম প্রদর্শন করলেও কোন প্রকার পেটেন্টের জন্য আবেদন করেন নি। কাঁর আবিস্কার করা একটি যন্ত্র যা কোহেরার যন্ত্রকে কাজে লাগিয়েই মার্কনী পরে তাঁর যন্ত্র বানান ১৯০১ সালে এবং পেটেন্ট নেন। বিজ্ঞানী জগদীশ বোস পরবর্তীতে ১৯০৪ সালে পেটেন্ট করেছিলেন।

উনি হয়তো আবিস্কারকের স্বীকৃতি পান নি কিন্তু কোহেরার যন্ত্রের মুল আবিস্কারক হিসাবে উনিই স্বীকৃত যা আসলে রেডিও যন্ত্রের হুদপিন্ড। তাই কোন আবিস্কারের পিছনে একক কোন ব্যক্তির অবদান নাই থাকতে পারে আবার একক অবদান থাকতে পারে যা স্থির নয়। তাই আবিস্কার আর আবিস্কারক নিয়ে তর্ক করতে গ্যালে আমাদের উচিৎ ঐ যন্ত্রের সম্পুর্ণ ইতিহাস জানা। একেবার যন্ত্রের চিন্তা থেকে শুরু করে এর পিছনের তত্ব ও তত্বের প্রায়োগিক বিষয়গুলো। এভাবেই সম্ভব একটি আবিস্কার ও তার সম্পর্কে সম্পূর্ণ রূপে জানা যা সঠিক ভাবে বিজ্ঞানের চর্চার একটি অংশ।

হার্টবীট কাউন্টার – ডিজিটাল হৃদকম্পন পরিমাপক যন্ত্র

3
ডিজিটাল হার্টবীট কাউন্টার বানিয়ে নিন খুব সহজেই

ঈদ মোবারক। কেমন আছেন সবাই? নিশ্চই ভালো। আমিও ভালোই আছি। নাম শুনে নিশ্চই বুঝতে পারছেন আজকে আমি লিখছি হার্টবীট কাউন্টার নিয়ে। এ প্রসঙ্গে মনে পড়ে গেল বিখ্যাত সেই গান – “আমি হৃদয়ের কথা বলিতে ব্যাকুল শুধাইলো না কেহ” – এমন দুঃখে দুঃখিত হয়ে অনেকেই ব্যাথাতুর থাকেন। আবার কেউ কেউ আমার মতো বেছে নেন ইলেকট্রনিক্স! জ্বী হ্যাঁ। কেউ না শুনলেও আপনারহৃদয়ের স্পন্দন (হার্টবীট) ঠিকই ইলেকট্রনিক্সের মাধ্যমে দেখানো/গোনা সম্ভব আর তাই নিয়েই আমার আজকের লেখা – ডিজিটাল হার্টবীট মনিটর – হৃদকম্পন গণনা যন্ত্র (Heartbeat Monitor/Counter)

কাজ কীঃ

এটি কারো হৃদকম্পনের হার কে ডিজিটাল ভাবে প্রদর্শন করে।

কীভাবে কাজ করে  – মূলতত্ত্বঃ

আমাদের আঙ্গুলের মধ্যদিয়ে কোনো আলো প্রবাহিত হলে তার কিছু পরিমান আলো আমাদের ধমনী বাহিত রক্ত কণিকা (blood cell) তে প্রতিফলিত হয় ( বিশেষ করে infrared ray)। যখন হার্টবীট হয় তখন আঙ্গুলর অগ্রভাগে থাকা ধমনীতে blood cell এর পরিমান বৃদ্ধি পায় যারফলে reflection এর মাত্রাও বৃদ্ধি পায়। কিন্তু এর amplitude খুবই কম। তাই এই amplitude কে amplifier circuit এর মাধ্যমে বৃদ্ধি করে microcontroller এর 3 নং পিন এ দেওয়া হয় Digitally process করবার জন্য। microcontroller এই সিগনাল প্রসেস করে digitally display করে।

প্রসঙ্গক্রমে আসুন দেখে নেই কিছু প্রাণীর হৃদস্পন্দন এর হার-

কিছু প্রাণীর হৃদস্পন্দন এর হার

হার্টবীট - বিভিন্ন প্রাণীর

অনেক জ্ঞানের কথা হলো। সেসব থাক আপাতত। আসুন তবে এবার হার্টবীট মনিটর এর জন্য কি কি লাগবে তা দেখি-

 

প্রয়োজনীয় উপকরনঃ

  • PIC16f628 microcontroller
  • MCP602 op-amp
  • IR LED
  • IR Photo Diode
  • LM7805
  • 7 segment (3 digit) common anode LED
  • Capacitor (1uf, 100nf)
  • Crystal 4 Mhz
  • Transistor BC547, BC557
  • Resistor (150R, 330R, 470R, 1K, 6.8K,68K, 680K)
  • Push Button Switch

আসুন মাইক্রোকন্ট্রোলার টির বিভিন্ন পিন দেখে নেই –

মাইক্রোকন্ট্রোলার পিন আউট

PIC16F627A_for_Heartbeat_Monitor_Ckt_Amader_Electronics_BD

হার্টবীট মনিটর/কাউন্টার সার্কিট ডায়াগ্রাম

নিচের সার্কিটটুকু হার্টবীট মনিটরের মাইক্রোকন্ট্রোলার পার্ট। এর সাথে এম্পলিফায়ার অংশ যুক্ত করতে হবে।

হার্টবীট মনিটরের জন্য মাইক্রোকন্ট্রোলার সার্কিট

নিচে এম্পলিফায়ার সার্কিট ডায়াগ্রাম অংশটুকু দিচ্ছি। বিশেষ ভাবে উল্লেখ্য যে এই এম্পলিফায়ার কিন্তু সাধারণ অডিও এম্পলিফায়ার নয়। যেহেতু IR LED থেকে প্রাপ্ত সিগনাল খুব দূর্বল হয় তাই এর জন্য এই বিশেষ এম্পলিফায়ার সার্কিট ব্যবহার করতে হবে। এখানে অপরেশনাল এম্পলিফায়ার আইসি MCP602 ব্যবহার করা হয়েছে যা এই কাজের জন্যই বিশেষভাবে প্রস্তুত কৃত। এটি ছাড়া অন্যকোনো আইসি ব্যবহার করা যাবে না।

হার্টবীট কাউন্টারের জন্য এম্পলিফায়ার সার্কিট

 

আজকে আপাতত এ পর্যন্তই। পার্টস কিনে সার্কিট বানিয়ে ফেলুন। ভেরোবোর্ডেও বানাতে পারেন। তবে ভালো ফলাফলের জন্য পিসিবি তে বানানো উচিৎ। আগামী পর্বে প্রোগ্রামিং কোড নিয়ে হাজির হবো আর আমার বানানো সার্কিটের ছবিও সেখানে থাকবে। সাথে আমার ল্যাবে টেস্ট করা ফলাফল ও সেখানে দিব।

ততক্ষণ পর্যন্ত ভালো থাকবেন। শুভকামনা ও আবারো ঈদ মোবারক জানিয়ে আজকের মতো বিদায় নিচ্ছি।

 

ড্যান্সিং সার্কিট

0
Completed Dancing LED-Motor Circuit Title picture

ড্যান্সিং সার্কিটঃ শব্দের তালে তালে…

আজকে আপনাদের সামনে হাজির হয়েছি ইলেক্ট্রনিক্স এর মজাদার একটি সার্কিট নিয়ে৷ মজার এই সার্কিটির নাম হল ড্যান্সিং সার্কিট  😉 গানের তালে তালে কিংবা হাত তালি অথবা শীস দিলেই নাচতে শুরু করবে। কী নাচবে? বলছি…

ড্যান্সিং সার্কিট ডায়াগ্রামের চিত্র

ড্যান্সিং সার্কিট এর ডায়াগ্রাম চিত্র

ড্যান্সিং সার্কিটের মূল কার্যাবলী

মাইক্রোফোন থেকে অডিও কাপলিং ক্যাপাসিটর দিয়ে সিগনাল প্রথম ট্রানজিস্টরের বেজে দেওয়া হয়। ট্রানজিস্টর তা এম্পলিফাই করে পরবর্তী ট্রানজিস্টরের বেজে দেয়। সেই ট্রানজিস্টর, সিগনালকে এম্পিলিফাই করার জন্য মোটরে/এলইডি সংযুক্ত ট্রানজিস্টরকে দেয়। ট্রানজিস্টর উক্ত সিগনাল কে এম্পিলিফাই করে মোটর/এলইডি চালনার জন্য উপযুক্ত ভোল্টেজে রুপান্তর করে। যাতে মোটরকে ঘুরাতে পারবে। আর মাইক্রোফোন শব্দের আধিক্যের উপর নির্ভর করে কম বেশি সিগনাল প্রেরন করে। আর সেই সিগনালের উপর নির্ভর করে পাওয়ার এম্পিলিফাই করে। যার ফলে গানের বা শব্দের তালে তালে মোটরের/এল.ই.ডি ঘূর্ণন/আলো বৃদ্ধি বা হ্রাস পায়। আর সেটাকে মেকানিজমেরর সাহায্যে কোন কিছুকে নাচানো সম্ভব। যেমনঃ ছোট কোনো ফুলদানি।

ড্যান্সিং সার্কিট পার্টস লিস্ট

  1. রেজিস্টরঃ ২২০ ওহম (১টা), ৪৭০ ওহম (১টা), ১ কিলো ওহম (১টা), ৮.২ কিলো ওহম (১টা), ১০ কিলো ওহম (২টা), ৮২০ কিলো ওহম (১টা)
  2. ট্রানজিস্টর ৩টা (২টা BC547, ১টা BC557)
  3. ক্যাপাসিটর ৩টা 10n/103 pf, 100n/104 pf, 10uf
  4. ১টা সুইচ
  5. ১টা সাধারণ মাইক্রোফোন (যেগুলো আমরা হেডফোনে কিংবা মোবাইলে ব্যবহার করি)
  6. কিছু হট গ্লু (যাতে তার গুলো ভেরো বোর্ডের থেকে সরে না যায়। হট গ্লু না দিলেও চলে। সার্কিট কাজ করবে)

ভেরো বোর্ডে আমার বানানো ড্যান্সিং সার্কিটের চিত্র

ড্যান্সিং সার্কিট টি ভেরো বোর্ডে সম্পূর্ণ করবার পরের চিত্রঃ ১
ড্যান্সিং সার্কিট টি ভেরো বোর্ডে সম্পূর্ণ করবার পরের চিত্রঃ ১
ড্যান্সিং সার্কিট টি ভেরো বোর্ডে সম্পূর্ণ করবার পরের চিত্রঃ ২
ড্যান্সিং সার্কিট টি ভেরো বোর্ডে সম্পূর্ণ করবার পরের চিত্রঃ ২

ড্যান্সিং সার্কিট বানাতে যেয়ে মজার অভিজ্ঞতা

যখন সার্কিট টা প্রথমে দেখি তখনি খুব খুশি ছিলাম। যখন সার্কিট টা বানানোর পর দেখি যে সার্কিট টা ঠিক উল্টা কাজ করছে। তখন রাইয়ান ভাইয়াকে বললাম যে সার্কিট কাজ করছেনা। ভাইয়া অনেক সাজেশন দিলেন। তারপরও কোনো সমাধান পাচ্ছিলাম না। তখন রাইয়ান ভাইয়া বললেন আউটপুট এর ট্রানজিস্টর টি চেক করতে। ভাইয়া বললেন সার্কিটটা ভাল করে দ্যাখো। আমি প্রথমে খেয়াল করিনি যে  আউটপুট এ BC557 ট্রানজিস্টার লাগানো। আমি দেখে তো অবাক! ও মা এ যে অন্য একটি ট্রানজিস্টর। তখনি ট্রানজিস্টরটি পরিবর্তন করে BC557 লাগালাম। দেখি যে সার্কিট ঠিকঠাক মত কাজ করছে 😀

গুরুত্বপূর্ণ কিছু শিক্ষণীয় বিষয়

  1. যেকোনো সার্কিট বানানোর আগে ডায়াগ্রাম ভালো করে দেখা ও বোঝা।
  2. সার্কিট বানানোর সময় ধৈর্য ধারণ করা।
  3. আর সার্কিট কাজ না করলে কারণ অনুসন্ধান করা যে কেন সার্কিট টি কাজ করছে না

এ থেকে আমার প্রাথমিক ট্রাবলশুটিং জ্ঞানও রপ্ত হলো।

সবাই অবশ্যই বানাবেন এই ড্যান্সিং সার্কিট। আর সমস্যা হলে আমি ও আমরা তো আছিই আপনাদের সাথে।

বিশেষ কৃতজ্ঞতাঃ অংকন দাস