Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Tutorial Penginderaan Warna Arduino – Sensor Warna TCS230 TCS3200

Dalam Tutorial Arduino ini kita akan belajar cara mendeteksi warna menggunakan Arduino dan Sensor Warna TCS230/TCS3200. Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini untuk lebih jelasnya.

Cara Kerja Sensor Warna TCS230 / TCS3200

TCS230 mendeteksi cahaya warna dengan bantuan rangkaian fotodioda 8 x 8. Kemudian menggunakan Current-to-Frequency Converter pembacaan dari fotodioda diubah menjadi gelombang persegi dengan frekuensi berbanding lurus dengan intensitas cahaya. Terakhir, dengan menggunakan Arduino Board kita dapat membaca output gelombang persegi dan mendapatkan hasil untuk warnanya.

Jika kita melihat lebih dekat pada sensor, kita dapat melihat bagaimana sensor itu mendeteksi berbagai warna. Fotodioda memiliki tiga filter warna yang berbeda. Enam belas di antaranya memiliki filter merah, 16 lainnya memiliki filter hijau, 16 lainnya memiliki filter biru dan 16 fotodioda lainnya jernih tanpa filter.

Setiap 16 fotodioda dihubungkan secara paralel, sehingga dengan menggunakan dua pin kontrol S2 dan S3 kita dapat memilih mana yang akan dibaca. Jadi misalnya kita ingin mendeteksi warna merah, kita bisa menggunakan 16 fotodioda filter merah dengan mengatur kedua pin ke level logika rendah sesuai tabel.

Sensor memiliki dua pin kontrol lagi, S0 dan S1 yang digunakan untuk menskalakan frekuensi output. Frekuensi dapat diskalakan ke tiga nilai preset yang berbeda yaitu 100%, 20% atau 2%. Fungsi penskalaan frekuensi ini memungkinkan keluaran sensor dioptimalkan untuk berbagai penghitung frekuensi atau mikrokontroler.

Sekarang kita siap untuk melanjutkan dan menghubungkan sensor TCS230 ke papan Arduino. Berikut skema rangkaiannya.

Anda bisa mendapatkan komponen yang diperlukan untuk tutorial Arduino ini dari link di bawah ini:

  • Sensor Warna TCS230 TCS3200…….
  • Dewan Arduino ……………………………
  • Breadboard dan Kabel Lompat ……… 
  •  

Kode Sumber Sensor Warna TCS230

Deskripsi: Pertama kita perlu menentukan pin yang terhubung dengan sensor dan menentukan variabel untuk membaca frekuensi. Di bagian setup kita perlu mendefinisikan empat pin kontrol sebagai output dan output sensor sebagai input Arduino. Disini kita juga perlu mengatur skala frekuensi, untuk contoh ini saya akan mengaturnya menjadi 20%, dan memulai komunikasi serial untuk menampilkan hasilnya di Serial Monitor.

Di bagian loop, kita akan mulai dengan membaca fotodioda yang difilter berwarna merah. Untuk tujuan itu kami akan mengatur dua pin kontrol S2 dan S3 ke level logika rendah. Kemudian menggunakan fungsi “pulseIn()” kita akan membaca frekuensi keluaran dan memasukkannya ke dalam variabel “frekuensi”. Menggunakan fungsi Serial.print() kami akan mencetak hasilnya pada monitor serial. Prosedur yang sama berlaku untuk dua warna lainnya, kita hanya perlu menyesuaikan pin kontrol untuk warna yang sesuai.

/*     Arduino Color Sensing Tutorial
 *      
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 *  
 */
 
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8

int frequency = 0;

void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);
  
  // Setting frequency-scaling to 20%
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  
  Serial.begin(9600);
}

void loop() {
  // Setting red filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("R= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);

  // Setting Green filtered photodiodes to be read
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("G= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);

  // Setting Blue filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("B= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.println("  ");
  delay(100);
}Code language: Arduino (arduino)

Sekarang jika kita menjalankan Serial Monitor kita akan mulai mendapatkan beberapa nilai. Nilai ini bergantung pada penskalaan frekuensi yang dipilih, serta dari pencahayaan di sekitarnya.

Perhatikan di sini bahwa tiga nilai berbeda karena sensitivitas yang berbeda dari setiap jenis fotodioda, seperti yang terlihat dari diagram respons spektral fotodioda dari lembar data sensor.

Namun demikian, sekarang mari kita lihat bagaimana nilai-nilai bereaksi ketika kita akan membawa warna yang berbeda di depan sensor. Jadi misalnya jika kita membawa warna merah, nilai awalnya akan turun, dalam kasus saya dari sekitar 70 menjadi sekitar 25.

Jadi sekarang jika kita ingin merepresentasikan warna yang terdeteksi dengan Model RGB yang memiliki nilai dari 0 hingga 255, kita akan menggunakan fungsi map() untuk memetakan atau mengonversi pembacaan ke nilai dari 0 hingga 255.

//Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,70,255,0);

Nilai 70 akan dipetakan ke 0, dan nilai 25 ke 255. Prosedur yang sama berlaku untuk dua warna lainnya.

Berikut kode sumber terakhir untuk contoh ini:

/*     Arduino Color Sensing Tutorial
 *      
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 *  
 */
 
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8

int frequency = 0;

void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);
  
  // Setting frequency-scaling to 20%
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  
  Serial.begin(9600);
}

void loop() {
  // Setting red filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,72,255,0);
  // Printing the value on the serial monitor
  Serial.print("R= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);

  // Setting Green filtered photodiodes to be read
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 30,90,255,0);
  // Printing the value on the serial monitor
  Serial.print("G= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);

  // Setting Blue filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,70,255,0);
  // Printing the value on the serial monitor
  Serial.print("B= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.println("  ");
  delay(100);
}Code language: Arduino (arduino)

Perhatikan bahwa warnanya tidak terlalu akurat tetapi masih cukup bagus untuk proyek sederhana. Sebagai contoh lain dari sensor warna TCS230 di video saya selanjutnya kita akan belajar cara membuat Mesin Sortir Warna Otomatis Arduino.

Jangan ragu untuk mengajukan pertanyaan apa pun di bagian komentar di bawah dan jangan lupa untuk melihat koleksi Proyek Arduino saya.


Proses manufaktur

  1. Sensor Cahaya Raspberry Pi:Tutorial LDR Sederhana
  2. Tutorial Kunci RFID Arduino
  3. Pemantauan CO2 dengan Sensor K30
  4. Berapa Tinggi Anda?
  5. Sensor Sidik Jari Kapasitif dengan Arduino atau ESP8266
  6. Arduino Cloud Sensor Tower
  7. Pencampur Warna RGB Arduino
  8. Pencampur Warna Arduino
  9. Warna Musik
  10. Tutorial Arduino 01:Memulai