Search Code

Arduino સાથે TEMT6000 ફોટોટ્રાન્ઝિસ્ટર એમ્બિયન્ટ લાઇટ સેન્સરનો ઉપયોગ કરવો

Arduino સાથે TEMT6000 ફોટોટ્રાન્ઝિસ્ટર એમ્બિયન્ટ લાઇટ સેન્સરનો ઉપયોગ કરવો

આ ટ્યુટોરિયલમાં, આપણે Arduino સાથે TEMT6000 એમ્બિયન્ટ લાઇટ સેન્સરનો ઉપયોગ કેવી રીતે કરવો તે શોધીશું. આ સેન્સર આપણને એમ્બિયન્ટ લાઇટની તીવ્રતા માપવાની મંજૂરી આપે છે અને તેનો ઉપયોગ વિવિધ એપ્લિકેશનોમાં થઈ શકે છે, જેમ કે લાઇટિંગ પરિસ્થિતિઓના આધારે સ્ક્રીનની તેજસ્વિતા સમાયોજિત કરવી. આ માર્ગદર્શિકાના અંત સુધીમાં, તમારી પાસે એક કાર્યકારી ઉદાહરણ હશે જે લાઇટ સ્તરો વાંચે છે અને તેમને સીરિયલ મોનિટર પર પ્રદર્શિત કરે છે.

TEMT6000 સેન્સર ફોટોટ્રાન્ઝિસ્ટર તરીકે કાર્ય કરે છે, જે તે શોધે છે તે પ્રકાશની માત્રાને અનુરૂપ વોલ્ટેજ આઉટપુટ કરે છે. આ વોલ્ટેજ Arduino ના એનાલોગ ઇનપુટ પિન દ્વારા સરળતાથી વાંચી શકાય છે, જે આપણને તેને મિલિવોલ્ટ અથવા વોલ્ટમાં અર્થપૂર્ણ રીડિંગ્સમાં રૂપાંતરિત કરવાની મંજૂરી આપે છે. તમે કોડ અને વાયરિંગના વિગતવાર વોકથ્રુ માટે વિડિઓ જોઈ શકો છો (વિડિઓમાં 00:00 પર).

હાર્ડવેર સમજાવ્યું

આ પ્રોજેક્ટના મુખ્ય ઘટકોમાં TEMT6000 સેન્સર અને Arduino બોર્ડ શામેલ છે. TEMT6000 એ એક નાનું અને કાર્યક્ષમ એમ્બિયન્ટ લાઇટ સેન્સર છે જે લાઇટ સ્તરો શોધવા માટે ફોટોટ્રાન્ઝિસ્ટરનો ઉપયોગ કરે છે. તેમાં ત્રણ પિન છે: V (વોલ્ટેજ), G (ગ્રાઉન્ડ), અને S (સિગ્નલ). સિગ્નલ પિન એક વોલ્ટેજ આઉટપુટ કરે છે જે લાઇટની તીવ્રતા સાથે બદલાય છે, જેને Arduino તેના એનાલોગ ઇનપુટ દ્વારા વાંચે છે.

Arduino માઇક્રોકંટ્રોલર તરીકે સેવા આપે છે જે TEMT6000 સેન્સરમાંથી આઉટપુટ વાંચે છે. તે આ ડેટા પ્રોસેસ કરે છે અને શોધાયેલ લાઇટ સ્તરોના આધારે ક્રિયાઓ કરવા માટે પ્રોગ્રામ કરી શકાય છે. આ સેન્સરને સરળ લાઇટ શોધથી લઈને સ્માર્ટ ઉપકરણોમાં સ્વચાલિત લાઇટિંગ ગોઠવણો જેવી વધુ જટિલ સિસ્ટમો સુધીની વિવિધ એપ્લિકેશનો માટે યોગ્ય બનાવે છે.

ડેટાશીટ વિગતો

ઉત્પાદક વિશે
ભાગ નંબર TEMT6000
લોજિક/IO વોલ્ટેજ 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 નો ઉપયોગ કરીને લાઇટ સેન્સર માટે ઇનપુટ પિન વ્યાખ્યાયિત કરીને શરૂ કરીએ છીએ. આ Arduino ને પિન A0 સાથે જોડાયેલા TEMT6000 સેન્સરમાંથી સિગ્નલ વાંચવા માટે સેટ કરે છે.

#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 પર).

Images

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
Language: 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

}

Things you might need

Resources & references

Files📁

No files available.