Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Arduino
100 min
Share

التعرف على الألوان باستخدام لوحة الأردوينو

تتكون الألوان التى نراها من مزيج من ثلاثة ألوان أساسية هى الأحمر (R)، الأخضر (G)، والأزرق (B). يعتمد تكون الألوان التي نراها على نسبة هذه الألوان الأساسية في الضوء المنعكس أو المنبعث من الأشياء. عند مزج نسب مختلفة من هذه الألوان، يمكن الحصول على مجموعة واسعة من الألوان، وهو ما يُعرف بنظام ألوان RGB.

Project Video

Overview

في هذا المشروع سوف نقوم ببناء نظام يكشف عن الألوان باستخدام لوحة الأردوينو وحساس الألوان، بحيث عند وضع بطاقة بلون ما أمام الحساس فإنه سيتم طباعة اسم اللون على شاشة كريستالية وسيتم تشغيل مصباح باللون الذي تم وضعه على الحساس.

Getting the Items

Arduino Uno R3 (Voltaat Version)
Get Item
2×16 LCD with I2C Module
Get Item
Color Recognition Module (TCS3200)
Get Item
RGB LED Common Cathode (3 Pack)
Get Item
1/4 Watt Resistor (20 Pack)
Get Item
Half-size Breadboard
Get Item
Jumper Wires - Male to Male (40 Pack)
Get Item
Jumper Wires – Male to Female (40 Pack)
Get Item

Steps

Wiring it Up

قم بتوصيل الأسلاك بين حساس الألوان TCS3200 والشاشة الكريستالية ومصباح الـ RGB ولوحة الأردوينو كما هو موضح في الصورة أدناه.

التوصيلات من الاردوينو الى لوحة التجارب  :

•  منفذ ال 5 فولت ← المنافذ الموجبة بلوحة التجارب

•  منفذ الجراوند ← المنافذ السالبة بلوحة التجارب

التوصيلات من حساس الألوان :

•  المنفذ الموجب لحساس الالوان ← المنافذ الموجبة بلوحة التجارب

•  المنفذ السالب لحساس الالوان ← المنافذ السالبة في لوحة التجارب

•  المنفذ s1 لحساس الالوان ← منفذ رقم 9 في لوحة الأردوينو

•  المنفذ s0 لحساس الالوان ← منفذ رقم 8 في لوحة الأردوينو

•  منفذ الout لحساس الالوان ← منفذ رقم 12 في لوحة الأردوينو

•  المنفذ s2 لحساس الالوان ← منفذ رقم 10 في لوحة الأردوينو

•  المنفذ s3 لحساس الالوان ← منفذ رقم 11 في لوحة الأردوينو

التوصيلات من مصباح الRGB :

•  منفذ المصباح الأحمر (R) ← مقاومة 220 اوم ← منفذ رقم 3 فى لوحة الاردوينو

•  الطرف السالب بالمصباح ← المنافذ السالبة بلوحة التجارب

•  منفذ المصباح الأخضر (G) ← مقاومة 220 اوم ← منفذ رقم 5 فى لوحة الاردوينو

•  منفذ المصباح الأزرق (B) ← مقاومة 220 اوم ← منفذ رقم 6 فى لوحة الاردوينو

التوصيلات من الشاشة الكريستالية:

• المنفذ الموجب للشاشة الكريستالية ← المنافذ الموجبة بلوحة التجارب

• المنفذ السالب للشاشة الكريستالية ← المنافذ السالبة بلوحة التجارب

• المنفذ SCL للشاشة الكريستالية ← منفذ رقم A5 فى لوحة الاردوينو

• المنفذ SDA للشاشة الكريستالية ← منفذ رقم A4 فى لوحة الاردوينو

Coding

/*

‍Voltaat learn (http://learn.voltaat.com)

Tutorial: Color Detection with Arduino!

Connections from the Arduino to the breadboard:

• Arduino 5v pin → breadboard 5v line

• Arduino GND pin → breadboard GND line

Connections from the color sensor:

• Positive pin of the color sensor → breadboard 5v line

• Negative pin of the color sensor → breadboard GND line

• S1 pin of the color sensor → Arduino pin 9

• S0 pin of the color sensor → Arduino pin 8

• OUT pin of the color sensor → Arduino pin 12

• S2 pin of the color sensor → Arduino pin 10

• S3 pin of the color sensor → Arduino pin 11

Connections from the RGB LED:

• Red led pin→220-ohm resistor→ Arduino pin 3

• Negative pin→ Breadboard ground line

• Green led pin→ 220-ohm resistor → Arduino pin 5

• Blue led pin→ 220-ohm resistor → Arduino pin 6

Connections from the LCD:

• I2C module GND pin → Breadboard GND line

• I2C module 5V pin → breadboard GND line

• I2C module SDA pin → Arduino pin A4

• I2C module SCL pin → Arduino pin A5

*/

#include <LiquidCrystal_I2C.h>

#include <tcs3200.h>

int red, green, blue, white;

tcs3200 tcs(8, 9, 10, 11, 12);  // (S0, S1, S2, S3, output pin)

// Define RGB LED pins

#define LED_R 3

#define LED_G 5

#define LED_B 6

LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD I2C address may vary; adjust if needed

void setup() {

  // Initialize RGB LED pins as outputs

  pinMode(LED_R, OUTPUT);

  pinMode(LED_G, OUTPUT);

  pinMode(LED_B, OUTPUT);

  // Initialize LCD

  lcd.begin(16, 2);

  lcd.backlight(); // Turn on the LCD backlight

}

void loop() {

  // Read color values from the sensor

  red = tcs.colorRead('r');

  green = tcs.colorRead('g');

  blue = tcs.colorRead('b');

  white = tcs.colorRead('c'); // reads color value for white (clear)

  // Clear LCD for each loop iteration

  lcd.clear();

  // Check which color value is the largest and illuminate that color

  if (red > green && red > blue) {

    // Illuminate red

    analogWrite(LED_R, 255);

    analogWrite(LED_G, 0);

    analogWrite(LED_B, 0);

    // Display color on LCD

    lcd.setCursor(0, 0);

    lcd.print("Color: Red");

  } else if (green > red && green > blue) {

    // Illuminate green

    analogWrite(LED_R, 0);

    analogWrite(LED_G, 255);

    analogWrite(LED_B, 0);

    // Display color on LCD

    lcd.setCursor(0, 0);

    lcd.print("Color: Green");

  }

    else if (blue > red && blue > green) {

    // Illuminate blue

    analogWrite(LED_R, 0);

    analogWrite(LED_G, 0);

    analogWrite(LED_B, 255);

    // Display color on LCD

    lcd.setCursor(0, 0);

    lcd.print("Color: Blue");

  } else {

    // If colors are close or undefined, turn off all LEDs

    analogWrite(LED_R, 0);

    analogWrite(LED_G, 0);

    analogWrite(LED_B, 0);

    // Display mixed color on LCD

    lcd.setCursor(0, 0);

    lcd.print("Color: Mixed");

  }

  delay(200); // Delay to avoid rapid updates

}

Testing it Out

بعد رفع الكود البرمجي على لوحة الأردوينو، ستجد أن لوحة الأردوينو تطبع اسم اللون الموجود أمام الحساس على الشاشة الكريستالية، وستجد أن المصباح يضيء باللون الذي يوجد أمام الحساس.

Resources

No items found.