রাত তখন প্রায় ১২টা। টেবিলে একটা Arduino Uno বোর্ড, কিছু তার, একটা ছোট্ট লাল LED। আমি কোড লিখলাম, Upload বাটনে চাপ দিলাম — আর সেই মুহূর্তে টেবিলের কোণে সেই ছোট বাতিটা মিটমিট করে জ্বলে উঠলো।
সেটা ছিল আমার জীবনের প্রথম Arduino LED Blink প্রজেক্ট। অনুভূতিটা কেমন ছিল বলবো? মনে হয়েছিল একটা জড় পদার্থকে প্রথমবার জীবন দিয়েছি। সেই রাতের কথা আজও মনে পড়ে। কারণ ওই একটা মিটমিট করা আলোই আমাকে ইলেকট্রনিক্সের দুনিয়ায় টেনে ধরেছিল।
আপনিও যদি Arduino শিখতে চান, তাহলে এই প্রজেক্টটাই আপনার শুরু হওয়া উচিত। কেন? কারণ এটা সহজ, সস্তা — আর এটা দিয়েই বোঝা যায় Arduino আসলে কিভাবে কাজ করে। আজকের এই গাইডে আমি আপনাকে সার্কিট থেকে কোড, সমস্যা থেকে সমাধান — সবকিছু ধাপে ধাপে দেখাবো।
Arduino LED Blink কেন সবার প্রথম প্রজেক্ট হওয়া উচিত?
প্রোগ্রামিং শেখার শুরুতে সবাই “Hello World” লেখে। কিন্তু হার্ডওয়্যারের দুনিয়ায় “Hello World” হলো এই Arduino LED Blink প্রজেক্ট।
অনেকে আমাকে জিজ্ঞেস করেন, “একটা বাতি জ্বালানো শিখে কি হবে?” আমি তাদের জিজ্ঞেস করি, “বাড়ি বানাতে ইট বিছাতে জানা লাগে না?” এই প্রজেক্টটা মাত্র একটা বাতি জ্বালানো না। এটা আপনাকে একসাথে শেখায়:
- Arduino-র পিন কিভাবে কাজ করে
- কোড কিভাবে হার্ডওয়্যারে প্রাণ দেয়
- সার্কিটে ভুল হলে কিভাবে খুঁজে বের করতে হয়
- delay() দিয়ে timing কিভাবে নিয়ন্ত্রণ করা যায়
এই চারটা জিনিস বুঝলে আপনি পরে sensor, motor, relay — যা-ই করুন না কেন, ভিত্তিটা শক্ত থাকবে। আমার কাছে যেসব ছাত্র এসেছে যারা এই প্রজেক্ট স্কিপ করে বড় কাজে হাত দিয়েছে — তারা প্রায় সবাই পরে এসে বলেছে, “ভাইয়া, প্রথম থেকে শুরু করবো।” তাই এই ধাপটা কোনোভাবেই এড়ানো উচিত না।
Arduino LED Blink প্রজেক্টে কি কি লাগবে?
সুখবর হলো এই প্রজেক্টের জন্য খুব বেশি খরচ নেই। নিচে পুরো তালিকা দেওয়া হলো:
| পার্টস | পরিমাণ | আনুমানিক দাম |
|---|---|---|
| Arduino Uno বোর্ড | ১টি | ৫০০–৭০০ টাকা |
| LED (৫mm, যেকোনো রঙ) | ১টি | ২–৫ টাকা |
| ২২০ ওহম রেজিস্টর | ১টি | ১–২ টাকা |
| ব্রেডবোর্ড | ১টি | ৮০–১২০ টাকা |
| জাম্পার ওয়্যার (Male-to-Male) | ৩–৪টি | ৩০–৫০ টাকা |
| USB Type-B ক্যাবল | ১টি | বোর্ডের সাথেই থাকে |
মোট খরচ ৭০০ টাকার মধ্যে। তবে সবচেয়ে ভালো খবর কি জানেন? Arduino Uno বোর্ডে পিন ১৩-এ একটি বিল্ট-ইন LED আছে। মানে চাইলে ব্রেডবোর্ড বা বাড়তি LED ছাড়াই শুধু বোর্ড আর USB ক্যাবল দিয়ে এই প্রজেক্ট করা সম্ভব। নতুনদের জন্য এটাই সবচেয়ে সহজ শুরু।
একটা কথা বলে রাখি — USB ক্যাবল কেনার সময় একটু মানসম্পন্ন কিনবেন। চার্জিং-only ক্যাবল দিয়ে কোড আপলোড হয় না, কারণ সেগুলোতে data wire থাকে না। আমি শুরুতে এই ভুলে এক ঘণ্টা নষ্ট করেছিলাম।
LED এবং Arduino একসাথে কিভাবে কাজ করে?
সার্কিট বানানোর আগে একটু বুঝে নেওয়া দরকার — Arduino আসলে LED-কে কিভাবে জ্বালায়?
Arduino Uno-এর ভেতরে একটি মাইক্রোকন্ট্রোলার চিপ আছে — ATmega328P। আপনি যখন কোড আপলোড করেন, সেই নির্দেশগুলো ওই চিপের মেমোরিতে জমা হয়। এরপর থেকে চিপ সেই নির্দেশ মেনে কাজ করতে থাকে।
আপনি যখন কোডে লেখেন digitalWrite(13, HIGH), তখন Arduino-র ১৩ নম্বর পিনে ৫ ভোল্ট বিদ্যুৎ আসে। সেই বিদ্যুৎ LED-এর মধ্যে দিয়ে প্রবাহিত হলে আলো জ্বলে ওঠে। আবার digitalWrite(13, LOW) লিখলে ভোল্টেজ শূন্যে নেমে যায়, বাতি নেভে।
পুরো ব্যাপারটা অনেকটা আপনার ঘরের লাইটের সুইচের মতো। পার্থক্য শুধু একটাই — সুইচ টিপছেন আপনি না, সেটা করছে আপনার লেখা কোড। আর এই কোড প্রতি সেকেন্ডে লক্ষবার সুইচ টিপতে পারে।
রেজিস্টর কেন বাধ্যতামূলক — এটা না জানলে LED পুড়বে
আমার জীবনের দ্বিতীয় দিনেই একটা নীল LED পুড়িয়ে ফেলেছিলাম। কারণ? সরাসরি LED লাগিয়ে দিয়েছিলাম, রেজিস্টর দিইনি।
একটু বুঝিয়ে বলি। Arduino-র পিন থেকে সর্বোচ্চ ৪০ মিলিঅ্যাম্পিয়ার (mA) কারেন্ট বের হতে পারে। কিন্তু একটা সাধারণ LED মাত্র ১০–২০ mA সহ্য করতে পারে। রেজিস্টর না থাকলে বেশি কারেন্ট একবারে ঢুকে LED-কে পুড়িয়ে দেয়।
রেজিস্টর এখানে গতিরোধক হিসেবে কাজ করে — কারেন্টের প্রবাহ কমিয়ে LED-কে নিরাপদ রাখে। ২২০ ওহম রেজিস্টর ব্যবহার করলে পিন ১৩-এ কারেন্ট নামে প্রায় ১৫ mA-তে, যা LED-এর জন্য নিরাপদ এবং যথেষ্ট উজ্জ্বল।
সহজ হিসাব: (৫V – ২V) ÷ ২২০Ω ≈ ১৩.৬ mA
এখানে ৫V হলো Arduino-র ভোল্টেজ, ২V হলো LED-এর forward voltage। এই হিসাব মাথায় রাখলে যেকোনো LED সার্কিটে সঠিক রেজিস্টর বেছে নিতে পারবেন।

ধাপ ১ — সার্কিট সংযোগ করুন
সার্কিট মানেই জটিল — এই ভুল ধারণাটা এখনই মাথা থেকে বের করুন। এই প্রজেক্টে মাত্র তিনটা কানেকশন।
LED সংযোগের নিয়ম:
- LED-এর লম্বা পা (Anode/পজিটিভ) ব্রেডবোর্ডে বসান।
- ওই পা থেকে ২২০ ওহম রেজিস্টর দিয়ে Arduino-র Digital Pin 13-এ তার দিন।
- LED-এর ছোট পা (Cathode/নেগেটিভ) থেকে সরাসরি Arduino-র GND পিনে তার দিন।
এটুকুই। তিনটা তার, একটা রেজিস্টর, একটা LED।
সার্কিট করার আগে কিছু সতর্কতা:
- কোনো তার যেন একে অপরের গায়ে না লাগে — শর্ট সার্কিট হলে বোর্ড নষ্ট হতে পারে।
- LED কানেক্ট করার আগে নিশ্চিত করুন কোন পা লম্বা, কোনটা ছোট। লম্বা পা সবসময় পজিটিভ।
- সার্কিট করা শেষ হলে একবার চোখ বুলিয়ে নিন — সব তার ঠিক জায়গায় আছে কিনা।
আমার একটা অভ্যাস আছে — সার্কিট করার পর USB লাগানোর আগে ৩০ সেকেন্ড দেখি। এতে অনেক ছোট ভুল ধরা পড়ে যায়।
ধাপ ২ — Arduino IDE ডাউনলোড ও সেটআপ
হার্ডওয়্যার রেডি। এবার সফটওয়্যারের পালা।
Arduino IDE হলো সেই সফটওয়্যার যেখানে আপনি কোড লিখবেন এবং বোর্ডে পাঠাবেন। সম্পূর্ণ বিনামূল্যে পাওয়া যায়।
সেটআপের ধাপ:
- ডাউনলোড: arduino.cc ওয়েবসাইট থেকে আপনার OS (Windows/Mac/Linux) অনুযায়ী IDE ডাউনলোড করুন।
- ইনস্টল: সাধারণ সফটওয়্যারের মতোই ইনস্টল করুন। Driver permission চাইলে Yes দিন।
- বোর্ড সংযোগ: USB ক্যাবল দিয়ে Arduino Uno কম্পিউটারে লাগান।
- বোর্ড সিলেক্ট: IDE-তে Tools → Board → Arduino Uno সিলেক্ট করুন।
- পোর্ট সিলেক্ট: Tools → Port থেকে সঠিক COM পোর্ট বেছে নিন। পাশে “Arduino Uno” লেখা থাকবে।
পোর্ট সিলেক্ট না করা হলো নতুনদের সবচেয়ে কমন ভুল। আমি প্রথমবার এটা ভুলে গিয়ে এক ঘণ্টা কোড আপলোড না হওয়ার কারণ খুঁজেছিলাম। আপনি সেই ভুল করবেন না।
ধাপ ৩ — Arduino LED Blink কোড লাইন বাই লাইন বোঝা
এখন আসল কাজ। নিচের কোডটি Arduino IDE-তে লিখুন বা পেস্ট করুন:
/*
* Arduino LED Blink Project
* Target: LED প্রতি ১ সেকেন্ডে জ্বলবে ও নিভবে
* banglaiblog.com
*/
// LED কানেক্ট করা আছে পিন ১৩-এ
const int ledPin = 13;
void setup() {
// পিন ১৩-কে OUTPUT হিসেবে সেট করো
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH); // LED জ্বালাও
delay(1000); // ১ সেকেন্ড অপেক্ষা করো
digitalWrite(ledPin, LOW); // LED নিভাও
delay(1000); // আবার ১ সেকেন্ড অপেক্ষা করো
}এখন এই কোডের প্রতিটা লাইন কি করছে সেটা বুঝুন:
const int ledPin = 13; — এখানে আমরা ১৩ নম্বর পিনকে “ledPin” নামে চিনিয়ে রাখছি। পরে কোড বদলাতে হলে একটা জায়গা বদলালেই হবে।
pinMode(ledPin, OUTPUT); — Arduino-কে বলছি, “এই পিন থেকে বিদ্যুৎ বের হবে।” এটা setup()-এ একবারই বলতে হয়।
digitalWrite(ledPin, HIGH); — পিন ১৩-এ ৫ ভোল্ট পাঠাও। LED জ্বলে উঠবে।
delay(1000); — ১০০০ মিলিসেকেন্ড মানে ১ সেকেন্ড অপেক্ষা করো। এই সময় কিছুই করে না।
digitalWrite(ledPin, LOW); — পিন ১৩-এর ভোল্টেজ শূন্য করো। LED নেভে যাবে।
loop() ফাংশনটি বারবার চলতে থাকে। মানে বোর্ডে বিদ্যুৎ থাকলে LED চিরকাল জ্বলবে-নিভবে, আপনার কিছু করতে হবে না।
ধাপ ৪ — কোড আপলোড করুন
কোড লেখা হলে আপলোডের আগে দুটো কাজ করুন:
- Verify (✓) বাটনে চাপুন — কোডে কোনো ভুল আছে কিনা চেক করবে। নিচে “Done compiling” দেখালে ঠিক আছে।
- Upload (→) বাটনে চাপুন — কোড বোর্ডে পাঠাবে। “Done uploading” দেখালে সফল।
আপলোড হওয়ার সময় বোর্ডের TX ও RX লেখা দুটো ছোট LED দ্রুত জ্বলতে-নিভতে থাকবে। এটা স্বাভাবিক — ডেটা ট্রান্সফার হচ্ছে মানে।
আপলোড সফল হলে কয়েক সেকেন্ডের মধ্যেই দেখবেন আপনার LED প্রতি এক সেকেন্ডে জ্বলছে-নিভছে। এই মুহূর্তটা উপভোগ করুন — এটাই আপনার হার্ডওয়্যার দুনিয়ায় প্রথম পদক্ষেপ।
Blink Speed কিভাবে নিয়ন্ত্রণ করবেন?
একবার কোড কাজ করলে এবার একটু খেলাধুলা করুন। delay()-এর ভ্যালু বদলে দেখুন কি হয়।
| delay() ভ্যালু | কি হবে | কোথায় কাজে আসে |
|---|---|---|
| 2000 | প্রতি ২ সেকেন্ডে একবার জ্বলবে | ধীর সতর্কতা সংকেত |
| 1000 | প্রতি ১ সেকেন্ডে — ডিফল্ট | সাধারণ indicator |
| 500 | দ্রুত জ্বলা-নেভা | এলার্ম সিস্টেম |
| 100 | খুব দ্রুত, চোখে ধরা কঠিন | PWM সিমুলেশন |
| 10 বা কম | আর জ্বলা-নেভা দেখাবে না, আবছা জ্বলবে | Persistence of Vision |
আমি একবার জ্বলার সময় ৫০০ আর নেভার সময় ২০০০ রেখেছিলাম। মানে কম জ্বলে, বেশিক্ষণ বন্ধ থাকে। দেখতে অনেকটা হার্টবিট মনিটরের মতো লাগছিল। এই ছোট পরিবর্তনগুলোই আপনার logic building শেখায়।
এখন একটু এডভান্স কিছু করুন। জ্বলা আর নেভার সময় আলাদা করে দিন:
void loop() {
digitalWrite(ledPin, HIGH);
delay(200); // ০.২ সেকেন্ড জ্বলবে
digitalWrite(ledPin, LOW);
delay(800); // ০.৮ সেকেন্ড বন্ধ থাকবে
}এটা দেখতে একটা হার্টবিটের মতো লাগে। আপনার প্রজেক্টে ব্যবহার করলে দারুণ দেখাবে।
একাধিক LED দিয়ে Chase Light বানান
একটা LED জ্বালাতে পারলে তিনটা দিয়ে কি করা যায়? একটা সহজ Chase Light বানানো যায় — যেখানে LED গুলো পর পর জ্বলবে।
তিনটা LED লাগান পিন ১১, ১২, ১৩-এ। প্রতিটায় রেজিস্টর দিতে ভুলবেন না। কোড হবে এরকম:
int led[] = {11, 12, 13}; // তিনটা পিন
void setup() {
for (int i = 0; i < 3; i++) {
pinMode(led[i], OUTPUT);
}
}
void loop() {
for (int i = 0; i < 3; i++) {
digitalWrite(led[i], HIGH); // একটা জ্বালাও
delay(200);
digitalWrite(led[i], LOW); // নিভাও
}
}এটা চালালে LED গুলো পর পর জ্বলবে-নিভবে, দেখতে একটা চলন্ত আলোর মতো লাগবে। এই ছোট পরিবর্তনটাই আপনাকে for loop এবং array শেখাবে — পরে সেন্সর প্রজেক্টে এই জ্ঞান সরাসরি কাজে আসবে।
সাধারণ সমস্যা ও সমাধান — Troubleshooting Guide
প্রজেক্ট করতে গিয়ে সমস্যায় পড়লে ভেঙে পড়বেন না। নিচে সবচেয়ে কমন সমস্যাগুলোর সমাধান দিলাম:
সমস্যা ১: কোড আপলোড হচ্ছে না
কারণ ও সমাধান: প্রথমে চেক করুন Tools → Port থেকে সঠিক COM পোর্ট সিলেক্ট করা আছে কিনা। না থাকলে USB ক্যাবল খুলে আবার লাগান। তারপরও না হলে ক্যাবল বদলান — অনেক চার্জিং ক্যাবলে data wire থাকে না।
সমস্যা ২: LED জ্বলছে না
কারণ ও সমাধান: তিনটা জিনিস চেক করুন — এক, LED উল্টো লাগানো আছে কিনা (লম্বা পা পিন ১৩-এর দিকে হওয়া উচিত)। দুই, GND কানেকশন ঠিকঠাক আছে কিনা। তিন, ব্রেডবোর্ডে তার ভালোভাবে বসেছে কিনা।
সমস্যা ৩: LED খুব আবছা জ্বলছে
কারণ ও সমাধান: রেজিস্টরের মান বেশি হয়ে গেছে। ১০ কিলো-ওহম রেজিস্টর দিলে আলো প্রায় দেখাই যাবে না। ২২০ ওহম বা সর্বোচ্চ ১০০০ ওহম ব্যবহার করুন।
সমস্যা ৪: LED একটানা জ্বলছে, জ্বলছে-নিভছে না
কারণ ও সমাধান: কোডে delay() ঠিকমতো দেওয়া হয়েছে কিনা দেখুন। অথবা পুরানো কোনো কোড আগে থেকে বোর্ডে ছিল কিনা — নতুন কোড আপলোড করে দিন।
সমস্যা ৫: কোড কম্পাইল হচ্ছে না, Error দেখাচ্ছে
কারণ ও সমাধান: সবচেয়ে কমন কারণ হলো সেমিকোলন মিস করা। প্রতিটা লাইনের শেষে ; আছে কিনা দেখুন। IDE-এর নিচে error message দেখলে সেই লাইন নম্বরে যান।
এই প্রজেক্ট থেকে কোথায় যাবেন পরে?
LED Blink শেখা মানে শেষ নয়, বরং এটা শুরু। এখান থেকে একটা স্বাভাবিক পথ আছে যেটা অনুসরণ করলে দ্রুত এগোনো যায়:
- Push Button দিয়ে LED নিয়ন্ত্রণ — বাটন চাপলে LED জ্বলবে। এখানে শিখবেন INPUT পিন ও if-else logic।
- Potentiometer দিয়ে Blink Speed বদলানো — নব ঘুরালে LED-এর গতি বদলাবে। এখানে শিখবেন analogRead()।
- RGB LED দিয়ে রঙ বদলানো — লাল, সবুজ, নীল মিলিয়ে যেকোনো রঙ। এখানে শিখবেন PWM।
- LDR দিয়ে Smart Light System — আলো কমলে LED জ্বলবে। এখানে শিখবেন sensor integration।
প্রতিটা ধাপ আগের ধাপের উপর দাঁড়িয়ে। LED Blink-এর ভিত্তি শক্ত থাকলে এই পথে কোথাও আটকাবেন না।
শেষ কথা
সেই রাতের কথা মনে আছে? যখন প্রথমবার LED জ্বলে উঠেছিল?
ওই মুহূর্তে আমি বুঝেছিলাম — ইলেকট্রনিক্স কোনো জাদু না। এটা লজিক, ধৈর্য আর একটু কৌতূহলের মিশেল। আপনিও সেই একই অনুভূতি পাবেন যখন আপনার বানানো সার্কিটে প্রথমবার আলো জ্বলবে।
Arduino LED Blink প্রজেক্টটা ছোট, কিন্তু এর শিক্ষাটা বিশাল। এখান থেকেই রোবট, IoT, smart home — সবের যাত্রা শুরু।
প্রজেক্ট করতে গিয়ে কোনো সমস্যায় পড়লে নিচে কমেন্টে জানান। আমি নিজে উত্তর দেওয়ার চেষ্টা করি। শুভ মেকিং!
সচরাচর জিজ্ঞাসা (FAQ)
Arduino LED Blink-এ সবসময় পিন ১৩ ব্যবহার করতে হবে?
না, ২ থেকে ১৩ নম্বর যেকোনো ডিজিটাল পিন ব্যবহার করা যায়। পিন ১৩ জনপ্রিয় কারণ এতে বোর্ডের বিল্ট-ইন LED যুক্ত — বাড়তি সার্কিট ছাড়াই পরীক্ষা করা যায়।
রেজিস্টর না দিলে কি হবে?
অতিরিক্ত কারেন্টে LED পুড়ে যাবে। ২২০ ওহম রেজিস্টর কারেন্ট ১৩–১৫ mA-তে নামিয়ে LED-কে নিরাপদ রাখে। এটা বাধ্যতামূলক।
কোড আপলোড হচ্ছে না, কি করবো?
Tools → Port থেকে সঠিক COM পোর্ট সিলেক্ট করুন। তারপরও না হলে USB ক্যাবল বদলান — সস্তা ক্যাবলে data wire থাকে না।
একবার আপলোড করলে কি বোর্ডে থেকে যায়?
হ্যাঁ। Arduino-র flash memory-তে কোড স্থায়ীভাবে জমা থাকে। USB খুলে ব্যাটারি দিলেও একই কোড চলবে।
delay() ছাড়া কি Blink করানো যায়?
হ্যাঁ, millis() ফাংশন দিয়ে। এটাকে non-blocking code বলে। Blink চলার সময়েও Arduino অন্য কাজ করতে পারে — বড় প্রজেক্টে এটা জরুরি।
পুরো প্রজেক্টে কত টাকা লাগবে?
সব মিলিয়ে ৮০০–৯০০ টাকার মধ্যে। Arduino Uno ৫০০–৭০০ টাকা, বাকি পার্টস ১০০–১৫০ টাকা। Arduino IDE সম্পূর্ণ বিনামূল্যে।





