کوډ ولټوئ

د TEMT6000 فوټوټرانزیسټر محیطي رڼا سینسر د Arduino سره کارول

د TEMT6000 فوټوټرانزیسټر محیطي رڼا سینسر د Arduino سره کارول

په دې ټیوټوریل کې، موږ به وپلټو چې څنګه د TEMT6000 محیطي رڼا سینسر د Arduino سره وکاروو. دا سینسر موږ ته اجازه راکوي چې د محیطي رڼا شدت اندازه کړو او په بېلابېلو غوښتنلیکونو کې وکارول شي، لکه د رڼا شرایطو پر بنسټ د سکرین روښانتیا تنظیمول. د دې لارښود په پای کې، تاسو به یو فعال مثال ولرئ چې د رڼا کچې لوستل او په سیریل مانیټر کې یې ښکاره کوي.

د TEMT6000 سینسر د فوټوټرانزیسټر په توګه کار کوي، او یو ولتاژ تولیدوي چې د رڼا مقدار سره مطابقت لري چې دا یې کشف کوي. دا ولتاژ په اسانۍ سره د Arduino د انلاګ انپټ پنونو لخوا لوستل کیدی شي، چې موږ ته اجازه راکوي چې دا په ملی ولټ یا ولټ کې په معنی لرونکو لوستنو بدل کړو. تاسو کولی شئ د کوډ او تارونو تفصیلي کتنې لپاره ویډیو وګورئ (په ویډیو کې په 00:00).

هارډویر تشریح شوی

د دې پروژې اصلي برخې د TEMT6000 سینسر او د Arduino بورډ شامل دي. TEMT6000 یو کوچنی او اغېزمن محیطي رڼا سینسر دی چې د رڼا کچې کشف کولو لپاره فوټوټرانزیسټر کاروي. دا درې پنونه لري: V (ولتاژ)، G (ځمکه)، او S (سیګنال). د سیګنال پن یو ولتاژ تولیدوي چې د رڼا شدت سره توپیر کوي، کوم چې Arduino د خپل انلاګ انپټ له لارې لوستي.

Arduino د مایکروکنټرولر په توګه کار کوي چې د TEMT6000 سینسر څخه محصول لوستي. دا دا معلومات پروسس کوي او د کشف شوي رڼا کچې پر بنسټ د عملونو ترسره کولو لپاره برنامه کیدی شي. دا سینسر د مختلفو غوښتنلیکونو لپاره مناسب کوي، د ساده رڼا کشف څخه تر ډیرو پیچلو سیسټمونو لکه په سمارټ وسیلو کې اتوماتیک رڼا تنظیماتو پورې.

ډیټاشیټ تفصیلات

جوړونکی Vishay
د برخې شمېره 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 تنظیموي ترڅو د TEMT6000 سینسر څخه سیګنال ولولي چې په پن A0 پورې تړلی دی.

#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

}

هغه شیان چې تاسو ورته اړتیا لرئ

سرچینې او حوالې

فایلونه📁

هیڅ فایل شتون نلري.