WRITING THE SOFTWARE OF LIGHT LEVEL MEASUREMENT WITH ARDUINO [TUTORIAL LESSON 30]
Hello to everyone,
We continue from where we stayed at Arduino classes. In this lesson we will learn the software of the TSL2561 digital light sensor to read the light intensity on the sensor numerically from the LCD screen. I will also describe the element connections of this system in my Fritzing lessons.
Herkese merhaba,
Arduino derslerine kaldığımız yerden devam ediyoruz. Bu dersimizde TSL2561 dijital ışık sensörü kullanarak sensör üzerine düşen ışık şiddetini LCD ekrandan sayısal olarak okuyacağımız devrenin yazılımını öğreneceğiz. Bu derste ki devrenin eleman bağlantılarını Fritzing derslerim içerisinde de anlatacağım.
Devrede kullanılan elemanlar:
- Arduino UNO
- TSL2561 Dijital ışık sensörü
- 16x2 LCD Ekran
ALINTI GÖRSEL
ALINTI GÖRSEL
ALINTI GÖRSEL
Devre elemanlarını gördükten sonra kod yazmaya başlayabiliriz.
1.AŞAMA
Bu aşamada kullanmamız gereken kütüphaneleri çağırıyoruz. Kütphaneleri çağırdıktan sonra LCD ekran ve sensör üzerinde kullanacağımız pinleri tanmlıyoruz.
KOD:
#include "Wire.h"
#include "LiquidCrystal.h"
#include "TSL2561.h"
LiquidCrystal lcd(3, 2, 4);
TSL2561 tsl(TSL2561_ADDR_FLOAT);
char output_buffer[6];
2.AŞAMA
Kütüphane çağırma ve pin tanıtım işlemlerinden sonra kurulum aşaması olan Void Setup kısmına geçebiliriz. Bu aşamada seri başlangıç komutumuzu veri okumak için yazdıktan sonra LCD ekranın kullanacağımız fonksiyonlarının kurulumunu yapıyoruz. Ardından bir şart sağlıyoruz. Bu şart sensörün çalışmasını tanımlayacak olan şarttır. IF ve ELSE komutlarıyla bu şartlarıda sağladıktan sonra void setup aşamasını bitiriyoruz.
KOD:
Serial.begin(9600);
Serial.println(F("Serial initialized"));
lcd.begin(16, 2);
Serial.println(F("LCD initialized"));
lcd.setBacklight(HIGH);
lcd.setCursor(0, 0);
lcd.print(F("Vis:"));
lcd.setCursor(0, 1);
lcd.print(F("Lux:"));
if (tsl.begin()) {
Serial.println(F("Sensor initialized"));
} else {
Serial.println(F("Sensor failed to initialize"));
}
tsl.setGain(TSL2561_GAIN_0X);
tsl.setTiming(TSL2561_INTEGRATIONTIME_13MS);
3.AŞAMA
Void setup aşamasını yukardaki kodlarla tamamladık. Şimdi loop döngüsünü yazacağız.
Bu aşamada dijital ışık sensöründen alınan sayısal değerlerin dönüşümünü yapıp LCD ekran üzerinde okutacak olan döngüyü yazıyoruz. Delay komutu ile döngünün çalışma hızını 500 ms olarak belirledikten sonra yazılımızı bitiriyoruz.
KOD:
uint32_t full_luminosity = tsl.getFullLuminosity();
uint16_t ir_spectrum = full_luminosity >> 16;
uint16_t full_spectrum = full_luminosity & 0xFFFF;
lcd.setCursor(5, 0);
snprintf_P(output_buffer, 6, PSTR("%5d"), (full_spectrum - ir_spectrum));
lcd.print(output_buffer);
lcd.setCursor(5, 1);
snprintf_P(output_buffer, 6, PSTR("%5d"), tsl.calculateLux(full_spectrum, ir_spectrum));
lcd.print(output_buffer);
delay(500);
Kodlarımız bu kadardı. UNO kartımız hazır. Hazırladığımız UNO kartını devreye ekleyebiliriz. Sensör üzerine düşen ışığı LCD ekrandan okuyarak ortamın ışık seviyesini belirleyebiliriz. Bu tasarım tıp alanında stüdyolarda ve bazı tarım ürünlerinin yetişitirilmesinde kullanılır. Bunların dışında da çeşitli alanlarda kullanılabilir. Bu devrenin eleman bağlantılarını Fritzing dersinde detaylı bir şekilde anlatacağım. Anlatacağım dersleri takip ederek kendi devrenizi oluşturabilirsiniz. Herlese iyi çalışmalar.
GITHUB
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @sametceylan I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x