Menggunakan Sensor Cahaya Sekitar Fototransistor TEMT6000 dengan Arduino
Dalam tutorial ini, kita akan menjelajahi cara menggunakan sensor cahaya sekitar TEMT6000 dengan Arduino. Sensor ini memungkinkan kita untuk mengukur intensitas cahaya sekitar dan dapat digunakan dalam berbagai aplikasi, seperti menyesuaikan kecerahan layar berdasarkan kondisi pencahayaan. Di akhir panduan ini, Anda akan memiliki contoh yang berfungsi yang membaca tingkat cahaya dan menampilkannya di monitor serial.

Sensor TEMT6000 beroperasi sebagai fototransistor, mengeluarkan tegangan yang sesuai dengan jumlah cahaya yang dideteksinya. Tegangan ini dapat dengan mudah dibaca oleh pin input analog Arduino, memungkinkan kita untuk mengubahnya menjadi pembacaan yang bermakna dalam milivolt atau volt. Anda dapat menonton video untuk penjelasan rinci tentang kode dan pengkabelan (di video pada 00:00).
Penjelasan Perangkat Keras
Komponen utama untuk proyek ini termasuk sensor TEMT6000 dan papan Arduino. TEMT6000 adalah sensor cahaya sekitar yang kecil dan efisien yang menggunakan fototransistor untuk mendeteksi tingkat cahaya. Sensor ini memiliki tiga pin: V (tegangan), G (ground), dan S (sinyal). Pin sinyal mengeluarkan tegangan yang bervariasi dengan intensitas cahaya, yang dibaca oleh Arduino melalui input analognya.
Arduino berfungsi sebagai mikrokontroler yang membaca keluaran dari sensor TEMT6000. Arduino memproses data ini dan dapat diprogram untuk melakukan tindakan berdasarkan tingkat cahaya yang terdeteksi. Hal ini membuat sensor ini cocok untuk berbagai aplikasi, dari deteksi cahaya sederhana hingga sistem yang lebih kompleks seperti penyesuaian pencahayaan otomatis pada perangkat pintar.
Detail Datasheet
| Produsen | Vishay |
|---|---|
| Nomor bagian | TEMT6000 |
| Tegangan logika/IO | 3,0 – 5,5 V |
| Tegangan suplai | 5 V |
| Arus keluaran | Maks 20 mA |
| Sensitivitas puncak | 570 nm |
| Disipasi daya | 100 mW |
| Suhu sambungan | 100 °C |
| Kemasan | 4 x 2 x 1,05 mm |
| Catatan / varian | Fototransistor NPN |
- Pastikan sensor diberi daya dengan suplai 5V yang stabil.
- Gunakan resistor 10kΩ untuk menghubungkan pin sinyal ke ground agar beroperasi dengan benar.
- Jauhkan sensor dari sinar matahari langsung untuk menghindari saturasi.
- Pertimbangkan heat-sinking jika digunakan di lingkungan bersuhu tinggi.
- Periksa pengkabelan yang benar untuk menghindari input mengambang.
- Kalibrasi pembacaan untuk aplikasi tertentu sesuai kebutuhan.
Instruksi Pengkabelan


Untuk menghubungkan sensor TEMT6000 ke Arduino, mulailah dengan menghubungkan pin V sensor ke pin 5V pada Arduino. Selanjutnya, hubungkan pin G sensor ke salah satu pin GND pada Arduino untuk koneksi ground. Terakhir, hubungkan pin S, yang merupakan pin sinyal, ke pin input analog A0 pada Arduino. Pengaturan ini akan memungkinkan Arduino untuk membaca keluaran tegangan dari sensor berdasarkan tingkat cahaya sekitar.
Penting untuk memastikan bahwa semua koneksi aman untuk mencegah kabel yang longgar, yang dapat menyebabkan pembacaan yang tidak akurat. Jika Anda menggunakan breadboard, periksa kembali koneksi untuk memastikan bahwa sensor terhubung dengan benar ke Arduino seperti yang dijelaskan.
Contoh Kode & Penjelasan
Dalam kode, kita mulai dengan mendefinisikan pin input untuk sensor cahaya menggunakan #define light A0. Ini mengatur Arduino untuk membaca sinyal dari sensor TEMT6000 yang terhubung ke pin A0.
#define light A0 // mendefinisikan pin input
void setup() {
Serial.begin(9600);
}
Dalam fungsi setup(), kita menginisialisasi komunikasi serial pada baud rate 9600, yang memungkinkan kita untuk mengirim data ke monitor serial.
Dalam fungsi loop(), kita membaca tingkat cahaya menggunakan analogRead(light) dan kemudian memetakan nilai tersebut ke milivolt:
void loop() {
int Lvalue = analogRead(light); // membaca cahaya
int mVolt = map(Lvalue, 0, 1023, 0, 5000); // memetakan pembacaan analog ke 5000mV
float volt = (double)mVolt / 1000; // mengubah milivolt ke volt
Kode ini mengambil pembacaan analog mentah, memetakannya ke rentang 0 hingga 5000 milivolt, dan kemudian mengubahnya menjadi volt untuk interpretasi yang lebih mudah. Ini sangat penting untuk memahami tingkat cahaya yang dideteksi oleh sensor.
Terakhir, kita mencetak nilai-nilai tersebut ke monitor serial:
Serial.print(mVolt); // mencetak milivolt
Serial.print("mV ");
Serial.print(volt, 3); // mencetak volt dengan 3 tempat desimal
Serial.println("V ");
delay(1000); // menunggu selama 1000 milidetik
}
Bagian kode ini menampilkan pembacaan milivolt dan volt pada monitor serial setiap detik. Ini memungkinkan Anda untuk melihat bagaimana tingkat cahaya berubah secara real-time saat Anda menutupi atau mengekspos sensor ke cahaya.
Demonstrasi / Apa yang Diharapkan
Setelah pengkabelan selesai dan kode diunggah ke Arduino, Anda akan melihat pembacaan tingkat cahaya dalam milivolt dan volt pada monitor serial. Misalnya, dalam cahaya terang, Anda mungkin melihat nilai sekitar 2500 mV, sementara dalam kegelapan, nilai bisa turun secara signifikan (serendah 2000 mV). Jika Anda menutupi sensor atau mematikan lampu, pembacaan harus mencerminkan perubahan ini hampir seketika, menunjukkan responsivitas sensor (di video pada 02:30).
/*
* 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
}
Hal-hal yang mungkin Anda butuhkan
-
Amazon
Sumber daya & referensi
-
EksternalDownload TEMT6000 data sheetvishay.com
Berkas📁
Tidak ada file tersedia.