Arduino ile Ldr ışık değişimini RGB Led ile gösterme

Arduino Başlangıç ​​Seti: Proje 4

Proje adı: RENK KARIŞTIRMA LAMBASI

Video_2019-12-19_170334

Keşfedin: analog çıkış, haritalama değerleri

Kod:

const int redPin = 11;// Red LED
const int greenPin = 10; // Green LED
const int bluePin = 9; // Blue LED

const int redSensorPin = A0; //variable to store sensor reading
const int greenSensorPin = A1; //variable to store sensor reading
const int blueSensorPin = A2;//variable to store sensor reading

int redValue = 0;
int greenValue = 0;
int blueValue = 0;

int redSensorValue = 0;
int greenSensorValue = 0;
int blueSensorValue = 0;
void setup() {
  Serial.begin(9600);// open a serial port
  pinMode(redPin, OUTPUT); // define redPin as OUTPUT
  pinMode(greenPin, OUTPUT);// define greenPin as OUTPUT
  pinMode(bluePin, OUTPUT);// define bluePin as OUTPUT
}
void loop() {
redSensorValue = analogRead(redSensorPin);
delay(5);
greenSensorValue = analogRead(greenSensorPin);
delay(5);
blueSensorValue = analogRead(blueSensorPin);

Serial.print("Raw Sensor Values \t Red: ");// \t equivalent to TAB key on the keyboard
Serial.print(redSensorValue);
Serial.print("\t Green: ");
Serial.print(greenSensorValue);
Serial.print("\t Blue: ");
Serial.println(blueSensorValue);
redValue = redSensorValue/4;
greenValue = greenSensorValue/4;
blueValue = blueSensorValue/4;
Serial.print("Mapped Sensor Values \t Red: ");
Serial.print(redValue);
Serial.print("\t Green: ");
Serial.print(greenValue);
Serial.print("\t Blue: ");
Serial.println(blueValue);
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
}

kütüphaneler ve  taslak

Bu projede, şu parçalara ihtiyacınız vardı:

1.Aruduino Uno R3 (Arduino’nun diğer sürümünü de kullanabilirsiniz)

2. atlama kabloları

3. Direnç 6 adet (3 adet 220 Ohm ve 3 adet 10 KOhm)

4. Breadboard yarım boy 

5. RGB LED (ortak katot kullanılmış) 1 adet

6. Fotorezistörler (fotoseller) 3 adet

7. Arduino IDE (siz indirebilirsiniz burada  )

8. JELLER (kırmızı, yeşil, mavi clors)

GENELYanıp sönen LED’ler eğlenceli olabilir, peki ya onları solmak ya da renkleri karıştırmak?You might expect that it’s just a mater of providing less voltage to an LED to get it to fade. The Arduino can’t vary the output voltage on its pins, it can only output 5V. Hence you’ll need to use a technique called Pulse Width Modulation (PWM) to fade LEDs. PWM rapidly turns the output pin high and low over a fixed period of time. The change happens faster than the human eye can see. It’s similar to the way movies work, quickly flashing a number of still images to create the illusion of motion. When you’re rapidly turning the pin HIGH and LOW, it’s as if you were changing the voltage. The percentage of time a pin is HIGH in a period is called duty cycle. When the pin is HIGH for half of the period and LOW for the other half, the duty cycle is 50%. A lower duty cycle gives you a dimmer LED than a higher duty cycle. The Arduino Uno has six pins set aside for PWM (digital pins 3, 5, 6, 9, 10, and 11), they can be identifed by the ~ next to their number on the board.Soluk LED’leri veya renklerini karıştırmaya ne dersiniz? Bunun sadece bir LED’e solmasını sağlamak için daha az voltaj sağlayan bir malzeme olmasını bekleyebilirsiniz. Arduino, pinlerindeki çıkış voltajını değiştiremez, sadece 5V çıkış verebilir. Darbe Genişliği Modülasyonu (PWM) adlı bir teknik kullanmanız gerekecektir.LED’leri solmaya. PWM, çıkış pimini sabit bir süre boyunca hızlı bir şekilde yüksek ve alçaltır. Değişim insan gözünün görebileceğinden daha hızlı gerçekleşir. Filmlerin çalışma biçimine benzer, hareket yanılsaması yaratmak için bir dizi hareketsiz görüntüyü çabucak bitirir. Pimi YÜKSEK ve DÜŞÜK olarak hızla döndürdüğünüz zaman, sanki voltajı değiştiriyormuşsunuz gibi. Bir pimin belirli bir dönemde YÜKSEK olduğu sürenin yüzdesine görev döngüsü denir. Pim, dönemin yarısı için YÜKSEK ve diğer yarısı için DÜŞÜK olduğunda görev döngüsü% 50’dir. Daha düşük görev döngüsü, daha yüksek görev döngüsünden daha kısık bir LED verir. Arduino Uno, PWM için ayrılan altı pime sahiptir (dijital pimler 3, 5, 6, 9, 10 ve 11), karttaki numaralarının yanında ~ ile tanımlanabilirler.

Bu projedeki girdiler için foto dirençleri kullanacaksınız (fotoseller veya aynı zamanda ışığa bağlı dirençler olarak da bilinen ışık miktarına bağlı olarak dirençlerini değiştiren sensörler). Dirençlerin bir ucunu Arduino’nuza bağlarsanız, pildeki voltajı kontrol ederek dirençteki değişimi ölçebilirsiniz.

DEVRE

Breadboard’unuzu bağlayın, böylece her iki tarafta da güç ve toprak elde edin. Üç fotorezistörü ekmek tahtasının üzerine yerleştirin, böylece orta bölmeyi bir taraftan diğerine geçirirler. Her fotorezistörün bir ucunu güç kaynağına takın. Diğer tarafta toprağa 10 kilometrelik bir direnç bağlayın. Bu direnç, fotorezistör ile seri halindedir ve birlikte bir voltaj bölücü oluştururlar. Ohm Kanununa göre buluştukları noktadaki voltaj, dirençlerinin oranıyla orantılı. Fotorezistörün direnci, ışık vurduğunda değiştikçe, bu kavşaktaki voltaj da değişir. Dirençle aynı tarafta, foto dirençleri bağlantı teli ile 0, 1 ve 2 numaralı Analog Giriş pinlerine bağlayın. Üç renkli jeli alın ve her fotorezistörün üzerine bir tane yerleştirin. Kırmızı jeli A0’a bağlı fotorezistörün üzerine yerleştirin, A1’e bağlı olanın üzerinde yeşil ve A2’ye bağlı olanın üzerinde mavi. Bu filtrelerin her biri, kapladığı sensöre yalnızca belirli bir dalga boyunda ışık sağlar. Kırmızı filtre yalnızca kırmızı ışığı, yeşil filtre yalnızca yeşil ışığı ve mavi filtre yalnızca mavi ışığı geçer. Bu, sensörlerinize çarpan ışıktaki bağıl renk seviyelerini tespit etmenizi sağlar. 4 ayaklı LED, ortak bir katot RGB LED’dir.

LED’in içinde ayrı kırmızı, yeşil ve mavi elemanlar ve bir ortak zemin (katot) vardır. Katod ile Arduino’nun PWM pimlerinden çıkan anotlara (220 ohm’luk dirençlerle anotlara bağlı olan) bir voltaj farkı yaratarak, LED’in üç rengi arasında solmasına neden olursunuz. LED üzerindeki en uzun pimin ne olduğuna dikkat edin, onu breadboard’unuza yerleştirin ve bu pimi toprağa bağlayın. Diğer üç pimi, 220-ohm dirençli serideki 9, 10 ve 11 numaralı dijital pimlere bağlayın. Her LED ucunu doğru PWM pimine bağladığınızdan emin olun.

KOD

Giriş ve çıkış için kullandığınız pimler için sabitleri ayarlayın, böylece hangi sensörün LED üzerinde hangi renk ile eşleştiğini takip edebilirsiniz. Veri türü için const int kullanın . Gelen sensör değerleri ve LED’i solmak için kullanacağınız çıkış değerleri için değişkenler ekleyin. İnt datatype’i tüm değişkenler için kullanabilirsiniz . In kurulum () , 9600 bps seri iletişim başlar. Seri monitördeki sensörlerin değerlerini görmek için bunu kullanacaksınız. Ek olarak, LED’in solmasını sağlamak için kullanacağınız eşlenmiş değerleri görebileceksiniz. Ayrıca, LED pinlerini pinMode () ile çıkış olarak tanımlayın . Gelen döngü () ile A0, A1 ve A2 sensör değerleri okumak analogRead ()ve değeri uygun değişkenlerde saklayın. ADC çalışmasını yapmak için bir milisaniye harcadığı için her analog Okuma () arasına küçük bir gecikme () koyun . Sensör değerlerini bir satıra yazdırın. “ \ T ” klavyedeki “sekme” tuşuna basmaya eşdeğerdir. LED’in parlaklığını PWM ile değiştirme işlevine analogWrite () adı verilir.. İki argüman gerekir: yazılacak pin ve 0-255 arasında bir değer. Bu ikinci sayı, Arduino’nun belirtilen pime çıkartacağı görev döngüsünü gösterir. 255 değeri, pimi her zaman YÜKSEK olarak ayarlayarak ekli LED’i olabildiğince parlak hale getirir. 127 değeri, LED’i daha kısık hale getirerek, pimi dönemin yarısı kadar HIGH’a ayarlayacaktır. 0, LED’i ff döndürerek, pimi her zaman LOW olarak ayarlayacaktır. Sensör değerini 0-1023 arasındaki bir değerden analogWrite () için 0-255 arasında bir değere dönüştürmek için, sensör değerini 4’e bölün. Yeni haritalanan değerleri kendi satırlarına yazdırın.BAŞLANGIÇ

Arduino’nuzu programlayıp kablolu hale getirdikten sonra seri monitörü açın. LED, odanızdaki ışığın baskın rengine bağlı olarak muhtemelen kirli beyaz bir renkte olacaktır. Seri monitördeki sensörlerden gelen değerlere bakın, dengeli bir aydınlatmaya sahip bir ortamdaysanız, sayı muhtemelen oldukça tutarlı olmalıdır. Bulunduğunuz odadaki ışığı kapatın ve sensörlerin değerlerine ne olduğunu görün. Bir el feneri ile, sensörlerin her birini ayrı ayrı aydınlatın ve seri monitörde değerlerin nasıl değiştiğini ve LED’in renginin nasıl değiştiğini görün. Foto dirençler bir jel ile kaplandığında, sadece belirli bir dalga boyunda ışığa tepki verirler. Bu size renklerin her birini bağımsız olarak değiştirme fırsatı verecektir.

Fotorezistörün çıktısının 0 ila 1023 arasında değişmediğini fark edebilirsiniz. Muhtemelen LED’in solmasının doğrusal olmadığını fark edeceksiniz. LED yarı parlaklıkta olduğunda, daha parlak hale geldiği görülüyor. Çünkü gözlerimiz parlaklığı doğrusal olarak algılamıyor. Işığın parlaklığı, yalnızca analoga yazdığınız seviyeye () değil, aynı zamanda ışığın kullanıcıdan uzaklığına, gözünüzün ışığa olan mesafesine ve ışığın odadaki diğer ışığa göre parlaklığına bağlıdır. .ÖZET Artık RGB LED’i üzerinde kontrol sizde. Artık LED’leri parlaklaştırmak veya kısmak kolaydır. analogWrite () , görev döngüsünü değiştirerek 3, 5, 6, 9, 10 veya 11 pinlerine bağlı PWM bileşenlerini sağlayan işlevdir. Işığı kullanmanın çeşitli yolları vardır. LED’in kayması için delik açılmış bir pinpon topu, hoş bir kullanıcı veya yarı saydam bir yapıştırıcı içerisindeki ışığı kaplamak veya ışığın yüzeyini zımparalamak için yapar.

Bu konuda Youtube’daki filmlerden birini izleyin – buraya tıklayın

Posted in Makaleler.