Sensor Warna DIY Sederhana Dari Magicbit: 5 Langkah
Sensor Warna DIY Sederhana Dari Magicbit: 5 Langkah

Video: Sensor Warna DIY Sederhana Dari Magicbit: 5 Langkah

Video: Sensor Warna DIY Sederhana Dari Magicbit: 5 Langkah
Video: Cara membuat sensor sentuh sederhana 2025, Januari
Anonim
Image
Image

Dalam tutorial ini kita akan belajar tentang cara membuat sensor warna sederhana menggunakan Magicbit dengan Arduino.

Perlengkapan

  • Magicbit
  • Kabel USB-A ke Micro-USB

Langkah 1: Cerita

Pengaturan Perangkat Keras
Pengaturan Perangkat Keras

Hai guys, terkadang Anda harus menggunakan sensor warna untuk beberapa tujuan. Tapi mungkin Anda tidak tahu bagaimana mereka bekerja. Jadi Dalam tutorial ini Anda akan belajar tentang cara membuat sensor warna DIY sederhana menggunakan Magicbit dengan Arduino. Mari kita mulai.

Langkah 2: Teori dan Metodologi

Dalam proyek ini kami berharap dapat mengajarkan Anda untuk membangun sensor warna yang dapat mendeteksi warna merah, hijau dan biru. Ini adalah contoh yang sangat mendasar. Jadi bagaimana melakukan ini. Untuk tujuan ini kami menggunakan modul RGB dari Magicbit dan LDR inbuilt. Pertama-tama Anda harus belajar tentang beberapa teori. Itu tentang jumlah pantulan cahaya. Sekarang saya mengajukan pertanyaan dari Anda. Permukaan berwarna apa yang paling banyak memantulkan cahaya warna merah ?juga permukaan apa yang paling banyak memantulkan cahaya Hijau dan Biru. Pikirkan sedikit. Tapi jawabannya sederhana. Permukaan berwarna merah sebagian besar memantulkan cahaya warna merah. Juga permukaan hijau dan biru akan memantulkan lampu hijau dan biru. Jadi dalam proyek ini kami menggunakan teori itu. Untuk mengenali warna kita memancarkan lampu merah, hijau dan biru satu per satu. Setiap kali kita mengukur jumlah pantulan dengan menggunakan nilai LDR. Jika beberapa cahaya akan memberikan refleksi paling banyak daripada dua lampu lainnya, maka permukaan itu harus sebagian besar memantulkan permukaan berwarna.

Langkah 3: Pengaturan Perangkat Keras

Ini sangat sederhana. Colokkan modul RGB Anda ke port kanan atas Magicbit. Modul ini memiliki WS2812B Neopixel LED. LED ini memiliki 4 pin. Dua untuk daya dan dua untuk Data masuk dan keluar. Karena kita menggunakan satu led kita hanya membutuhkan pin power dan data dalam pin. Jika Anda tidak memiliki modul itu, Anda dapat membeli dan modul Neopixel. Jika Anda membeli modul semacam itu, Anda harus menghubungkan pin daya dan data dalam pin ke Magicbit. Itu sangat mudah. Hubungkan VCC dan GND Magicbit ke pin daya modul RGB dan pin D33 ke pin data.

Langkah 4: Pengaturan Perangkat Lunak

Sebagian besar dilakukan oleh pemrograman. Kami menggunakan Arduino IDE untuk memprogram Magicbit kami. Dalam kode kami menggunakan beberapa perpustakaan. Mereka adalah Adafruit Neopixel library untuk mengontrol Neopixel LED dan Adafruit OLED library untuk menangani OLED. Dalam pengaturan kami mengkonfigurasi input dan output kami. Konfigurasikan juga tampilan OLED bawaan di Magicbit. Dalam loop kami memeriksa tombol tekan kiri ditekan atau tidak dari Magicbit. Jika ditekan, sinyal inputnya adalah 0. Karena sudah ditarik oleh papan. Jika ditekan maka kami melakukan pengecekan warna. Jika tidak maka layar akan menampilkan pernyataan "tidak berwarna". Ketika tombol ditekan maka secara otomatis menyalakan lampu merah, hijau dan biru satu per satu dan menyimpan jumlah refleksi warna ke dalam tiga variabel. Selanjutnya kita membandingkan nilai-nilai tersebut dan memilih warna nilai maksimum untuk ditampilkan sebagai warna keluaran.

Jadi sambungkan kabel micro USB ke Magicbit dan pilih jenis papan dan port com dengan benar. Sekarang unggah kodenya. Maka saatnya untuk menguji sensor kami. Untuk mengujinya, simpan kertas atau lembaran berwarna merah, hijau atau biru di bagian atas modul LDR dan RGB dan tekan tombol tekan kiri. Kemudian layar OLED akan menunjukkan apa warna permukaannya. Jika itu salah alasannya adalah beberapa warna memiliki intensitas cahaya yang tinggi. Sebagai contoh di setiap permukaan hijau outputnya berwarna merah maka Anda harus mengurangi kecerahan lampu merah dari jumlah tertentu. Karena lampu merah memiliki kecerahan yang sangat tinggi dalam kasus itu. Sehingga memiliki refleksi yang tinggi. Jika Anda tidak tahu cara mengontrol kecerahan, lihat tutorial di tautan di bawah ini.

magicbit-arduino.readthedocs.io/en/latest/

Di tautan ini Anda dapat menemukan cara mengontrol modul RGB itu dari Magicbit. Dan juga Anda dapat menemukan cara bekerja dengan LDR dan menekan tombol menggunakan Magicbit. Baca dokumen itu dan pelajari lebih lanjut cara meningkatkan sensor warna. Karena ini adalah contoh yang sangat mendasar tentang cara kerja sensor warna. Sebagian besar jenis sensor warna bekerja dengan cara ini. Jadi cobalah untuk meningkatkan ini dengan menghilangkan kebisingan cahaya sekitar dan kebisingan lainnya.

Langkah 5: Kode Sensor Warna Arduino

#termasuk

#tentukan LED_PIN 33

#define LED_COUNT 1 Adafruit_NeoPixel LED(LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800); #include #include #include #define OLED_RESET 4 Adafruit_SSD1306 display(128, 64); #define LDR 36 #define Button 35 int R_value, G_value, B_value; void setup() { LED.begin(); LED.tampilkan(); pinMode(LDR, INPUT); pinMode(Tombol, INPUT); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); tampilan.tampilan(); penundaan (1000); tampilan.clearDisplay(); Serial.begin(9600); } void loop() { if(digitalRead(Button)==0){// jika tombol ditekan LED.setPixelColor(0, LED. Color(0, 50, 0)); //pada LED warna merah.show(); penundaan(100); R_value=analogRead(LDR);//dapatkan LED mount merah.setPixelColor(0, LED. Color(150, 0, 0));//pada LED warna hijau.show(); penundaan(100); G_value=analogRead(LDR);//dapatkan LED mount hijau.setPixelColor(0, LED. Color(0, 0, 255)); //pada LED warna biru.show(); penundaan(100); B_value=analogRead(LDR);//mendapatkan mount biru if (R_value>G_value && R_value>B_value){//merah paling tercermin Display("RED", 3); } else if (G_value>R_value && G_value>B_value){//hijau paling mencerminkan Display("GREEN", 3); } else if (B_value>R_value && B_value>G_value){//blue paling tercermin Display("BLUE", 3); } Serial.print("MERAH="); Serial.print(nilai_R); Serial.print("HIJAU="); Serial.print(G_value); Serial.print("BIRU="); Serial.println(B_nilai); } else{ LED.setPixelColor(0, LED. Color(0, 0, 0)); //mati RGB LED.show(); Tampilan("TIDAK ADA WARNA", 2); } } void Display(String commond, int size) { // menampilkan data display.clearDisplay(); display.setTextSize(ukuran); // Tampilan skala piksel 1:1 normal.setTextColor(WHITE); // Menggambar tampilan teks putih.setCursor(0, 20); // Mulai dari pojok kiri atas display.println(commond); tampilan.tampilan(); }