Programlama Kodları
//AÇIKLAMA
//Bu uygulamada sensör renkleri okur, ham değerleri alır. Ardından
//gerçek RGB değerlerine denk gelen değerler hesaplanır.
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensor_out 8
int red_ham = 0;
int green_ham = 0;
int blue_ham = 0;
//Bir önceki uygulamada her renk için, sensörü nesneye en yakın (rengin en yoğun
//olduğu durum) şekilde tutarak minimum değeri ve siyah bir yüzeye (rengin hiç
//olmadığı durum) tutarak maksimum değeri kaydetmiştik. Şimdi burada bu değerleri kullanacağız.
int red_min = 27;
int red_max = 187;
int green_min = 46;
int green_max = 195;
int blue_min = 29;
int blue_max = 144;
int R, G, B;
void setup()
{
Serial.begin(9600);
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(sensor_out, INPUT);
//sensörün çıkış frekansını %20 olarak ölçeklendirme
digitalWrite(S0, HIGH);
digitalWrite(S1, LOW);
}
void loop()
{
//kırmızı renk okuma
red_ham = kirmizi_ham_oku();
R = map(red_ham, red_min, red_max, 255, 0);
delay(200);
//yeşil renk okuma
green_ham = yesil_ham_oku();
G = map(green_ham, green_min, green_max, 255, 0);
delay(200);
//mavi renk okuma
blue_ham = mavi_ham_oku();
B = map(blue_ham, blue_min, blue_max, 255, 0);
delay(200);
Serial.print("R = "); Serial.print(R); Serial.print(" | ");
Serial.print("G = "); Serial.print(G); Serial.print(" | ");
Serial.print("B = "); Serial.println(B);
}
int kirmizi_ham_oku()
{
int ham;
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
ham = pulseIn(sensor_out, LOW);
return ham;
}
int yesil_ham_oku()
{
int ham;
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
ham = pulseIn(sensor_out, LOW);
return ham;
}
int mavi_ham_oku()
{
int ham;
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
ham = pulseIn(sensor_out, LOW);
return ham;
}
Devre Şeması
Cyana en yakın durumda seri port ekranı
Kırmızıya en yakın durumda seri port ekranı
Magentaya en yakın durumda seri port ekranı
Maviye en yakın durumda seri port ekranı
Sarıya en yakın durumda seri port ekranı
Yeşile en yakın durumda seri port ekranı

0 comments:
Yorum Gönder