কোড অনুসন্ধান

আরডুইনোর সাথে TEMT6000 ফটোট্রানজিস্টর অ্যাম্বিয়েন্ট লাইট সেন্সর ব্যবহার করা

আরডুইনোর সাথে TEMT6000 ফটোট্রানজিস্টর অ্যাম্বিয়েন্ট লাইট সেন্সর ব্যবহার করা

এই টিউটোরিয়ালে, আমরা Arduino-এর সাথে TEMT6000 অ্যাম্বিয়েন্ট লাইট সেন্সর কীভাবে ব্যবহার করতে হয় তা অন্বেষণ করব। এই সেন্সরটি আমাদের চারপাশের আলোর তীব্রতা পরিমাপ করতে দেয় এবং এটি বিভিন্ন অ্যাপ্লিকেশনে ব্যবহার করা যেতে পারে, যেমন আলোর অবস্থার উপর ভিত্তি করে স্ক্রিনের উজ্জ্বলতা সামঞ্জস্য করা। এই গাইডের শেষে, আপনার কাছে একটি কার্যকরী উদাহরণ থাকবে যা আলোর মাত্রা পড়ে এবং সিরিয়াল মনিটরে প্রদর্শন করে।

TEMT6000 সেন্সরটি একটি ফটোট্রান্সিস্টর হিসেবে কাজ করে, যা এটি সনাক্ত করা আলোর পরিমাণের সাথে সামঞ্জস্যপূর্ণ একটি ভোল্টেজ আউটপুট করে। এই ভোল্টেজটি Arduino-এর অ্যানালগ ইনপুট পিন দ্বারা সহজেই পড়া যায়, যা আমাদের এটিকে মিলিভোল্ট বা ভোল্টে অর্থপূর্ণ রিডিংয়ে রূপান্তর করতে দেয়। কোড এবং ওয়্যারিংয়ের বিস্তারিত ওয়াকথ্রুর জন্য আপনি ভিডিওটি দেখতে পারেন (ভিডিওতে 00:00 এ)।

হার্ডওয়্যার ব্যাখ্যা

এই প্রকল্পের প্রধান উপাদানগুলির মধ্যে রয়েছে TEMT6000 সেন্সর এবং Arduino বোর্ড। TEMT6000 একটি ছোট এবং দক্ষ অ্যাম্বিয়েন্ট লাইট সেন্সর যা আলোর মাত্রা সনাক্ত করতে একটি ফটোট্রান্সিস্টর ব্যবহার করে। এটির তিনটি পিন রয়েছে: V (ভোল্টেজ), G (গ্রাউন্ড), এবং S (সিগন্যাল)। সিগন্যাল পিনটি একটি ভোল্টেজ আউটপুট করে যা আলোর তীব্রতার সাথে পরিবর্তিত হয়, যা Arduino তার অ্যানালগ ইনপুটের মাধ্যমে পড়ে।

Arduino মাইক্রোকন্ট্রোলার হিসেবে কাজ করে যা TEMT6000 সেন্সর থেকে আউটপুট পড়ে। এটি এই ডেটা প্রক্রিয়া করে এবং সনাক্ত করা আলোর মাত্রার উপর ভিত্তি করে কাজ করার জন্য প্রোগ্রাম করা যেতে পারে। এটি সেন্সরটিকে বিভিন্ন অ্যাপ্লিকেশনের জন্য উপযুক্ত করে তোলে, সাধারণ আলো সনাক্তকরণ থেকে শুরু করে স্মার্ট ডিভাইসে স্বয়ংক্রিয় আলো সমন্বয়ের মতো আরও জটিল সিস্টেম পর্যন্ত।

ডেটাশিটের বিবরণ

প্রস্তুতকারক Vishay
পার্ট নম্বর TEMT6000
লজিক/আইও ভোল্টেজ 3.0 – 5.5 V
সাপ্লাই ভোল্টেজ 5 V
আউটপুট কারেন্ট 20 mA সর্বোচ্চ
পিক সংবেদনশীলতা 570 nm
পাওয়ার ডিসিপেশন 100 mW
জাংশন তাপমাত্রা 100 °C
প্যাকেজ 4 x 2 x 1.05 mm
নোট / ভেরিয়েন্ট NPN ফটোট্রান্সিস্টর

 

  • সেন্সরটি একটি স্থিতিশীল 5V সাপ্লাই দিয়ে চালিত হয়েছে তা নিশ্চিত করুন।
  • সঠিক অপারেশনের জন্য সিগন্যাল পিনটি গ্রাউন্ডের সাথে সংযোগ করতে একটি 10kΩ রোধ ব্যবহার করুন।
  • স্যাচুরেশন এড়াতে সেন্সরটি সরাসরি সূর্যের আলো থেকে দূরে রাখুন।
  • উচ্চ-তাপমাত্রার পরিবেশে ব্যবহার করলে হিট-সিংকিং বিবেচনা করুন।
  • ফ্লোটিং ইনপুট এড়াতে সঠিক ওয়্যারিং পরীক্ষা করুন।
  • প্রয়োজন অনুযায়ী নির্দিষ্ট অ্যাপ্লিকেশনের জন্য রিডিং ক্যালিব্রেট করুন।

ওয়্যারিং নির্দেশাবলী

Arduino-wiring-for-TEMT6000-light-sensor
Using a TEMT6000 phototransistor ambient light sensor for Arduino
Using TEMT6000 Phototransistor Ambient Light Sensor for Arduino — Using a TEMT6000 phototransistor ambient light sensor for Arduino

TEMT6000 সেন্সরটি Arduino-এর সাথে ওয়্যার করতে, সেন্সরের V পিনটি Arduino-এর 5V পিনের সাথে সংযোগ করে শুরু করুন। এরপর, গ্রাউন্ড সংযোগের জন্য সেন্সরের G পিনটি Arduino-এর একটি GND পিনের সাথে সংযোগ করুন। অবশেষে, S পিনটি, যা সিগন্যাল পিন, Arduino-এর অ্যানালগ ইনপুট পিন A0-এর সাথে সংযোগ করুন। এই সেটআপটি Arduino-কে অ্যাম্বিয়েন্ট আলোর মাত্রার উপর ভিত্তি করে সেন্সর থেকে ভোল্টেজ আউটপুট পড়তে অনুমতি দেবে।

সমস্ত সংযোগ নিরাপদ তা নিশ্চিত করা গুরুত্বপূর্ণ যাতে কোনো আলগা ওয়্যারিং না থাকে, যা ভুল রিডিংয়ের কারণ হতে পারে। আপনি যদি একটি ব্রেডবোর্ড ব্যবহার করেন, তাহলে সংযোগগুলি ডাবল-চেক করুন যাতে সেন্সরটি বর্ণনা অনুযায়ী Arduino-এর সাথে সঠিকভাবে ওয়্যার করা থাকে।

কোড উদাহরণ ও ওয়াকথ্রু

কোডে, আমরা #define light A0 ব্যবহার করে লাইট সেন্সরের জন্য ইনপুট পিন সংজ্ঞায়িত করে শুরু করি। এটি A0 পিনের সাথে সংযুক্ত TEMT6000 সেন্সর থেকে সিগন্যাল পড়ার জন্য Arduino সেট আপ করে।

#define light A0 // ইনপুট পিন সংজ্ঞায়িত করুন

void setup() {
  Serial.begin(9600);
}

setup() ফাংশনে, আমরা 9600 বড রেটে সিরিয়াল কমিউনিকেশন শুরু করি, যা আমাদের সিরিয়াল মনিটরে ডেটা পাঠাতে দেয়।

loop() ফাংশনে, আমরা analogRead(light) ব্যবহার করে আলোর মাত্রা পড়ি এবং তারপর সেই মানটি মিলিভোল্টে ম্যাপ করি:

void loop() {
   int Lvalue = analogRead(light); // আলো পড়ুন
   int mVolt = map(Lvalue, 0, 1023, 0, 5000); // অ্যানালগ রিডিং 5000mV-এ ম্যাপ করুন
   float volt = (double)mVolt / 1000; // মিলিভোল্টকে ভোল্টে রূপান্তর করুন

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

অবশেষে, আমরা সিরিয়াল মনিটরে মানগুলি প্রিন্ট করি:

  Serial.print(mVolt); // মিলিভোল্ট প্রিন্ট করুন
  Serial.print("mV ");
  Serial.print(volt, 3); // 3 দশমিক স্থান সহ ভোল্ট প্রিন্ট করুন
  Serial.println("V ");
  delay(1000); // 1000 মিলিসেকেন্ড অপেক্ষা করুন
}

কোডের এই অংশটি প্রতি সেকেন্ডে সিরিয়াল মনিটরে মিলিভোল্ট এবং ভোল্ট রিডিং প্রদর্শন করে। এটি আপনাকে দেখতে দেয় যে আপনি সেন্সরটি ঢেকে বা আলোতে প্রকাশ করার সাথে সাথে আলোর মাত্রা কীভাবে রিয়েল-টাইমে পরিবর্তিত হয়।

প্রদর্শন / কী আশা করবেন

ওয়্যারিং সম্পূর্ণ হলে এবং কোডটি Arduino-তে আপলোড করা হলে, আপনার সিরিয়াল মনিটরে মিলিভোল্ট এবং ভোল্টে আলোর মাত্রার রিডিং দেখা উচিত। উদাহরণস্বরূপ, উজ্জ্বল আলোতে, আপনি 2500 mV এর কাছাকাছি মান দেখতে পারেন, যখন অন্ধকারে, মানগুলি উল্লেখযোগ্যভাবে কমে যেতে পারে (2000 mV পর্যন্ত)। আপনি যদি সেন্সরটি ঢেকে দেন বা লাইট বন্ধ করেন, তাহলে রিডিংগুলি প্রায় সাথে সাথেই এই পরিবর্তনগুলি প্রতিফলিত করবে, যা সেন্সরের প্রতিক্রিয়াশীলতা প্রদর্শন করে (ভিডিওতে 02:30 এ)।

ছবি

Using a TEMT6000 phototransistor ambient light sensor for Arduino
Using TEMT6000 Phototransistor Ambient Light Sensor for Arduino
TEMT6000-Ambient-Light-Sensor-Module
TEMT6000-Ambient-Light-Sensor-Module
Arduino-wiring-for-TEMT6000-light-sensor
Arduino-wiring-for-TEMT6000-light-sensor
106-Using the TEMT6000 phototransistor ambient light sensor for Arduino
ভাষা: C++
/*
 * This is an Arduino Sketch for the TEMT6000 Phototransistor Module
 * This code reads the voltage of a common collector configuration
 * and displays the voltage in volts.
 * V pin is connected to 5V
 * G pin is connected to ground GND
 * S pin is signal connected to A0 of Arduino
 * 
   Written by Ahmad Shamshiri for Robojax.com
 * on May 10, 2018 at 14:14 in Ajax, Ontario, Canada
 * This code is provided at http://robojax.com 
 * Watch a video instruction for this code: https://youtu.be/pxR6e-3XkIk
 */
#define light A0 // define input pin

void setup() {
  // TEMT6000 Robojax.com code
  Serial.begin(9600);
  
}

void loop() {
   // TEMT6000 Robojax.com code
  int Lvalue = analogRead(light);// read the light
  int mVolt = map(Lvalue,0, 1023, 0, 5000);// map analogue reading to 5000mV
  float volt =(double)mVolt/1000;// convert millivolt to volt

  Serial.print(mVolt);// print millivolt
  Serial.print( "mV ");
  Serial.print(volt,3);// print volts with 3 decimal places
  Serial.println( "V ");
  delay(1000);// wait for 1000 milliseconds
   // TEMT6000 Robojax.com code

}

আপনাকে যা প্রয়োজন হতে পারে

সম্পদ ও রেফারেন্সসমূহ

ফাইলসমূহ📁

কোনো ফাইল উপলব্ধ নেই।