WRITING THE SOFTWARE OF LIGHT LEVEL MEASUREMENT WITH ARDUINO [TUTORIAL LESSON 30]

in #utopian-io8 years ago (edited)

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.
bandicam 2017-12-29 02-58-00-958.jpg
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.
bandicam 2017-12-29 03-03-34-932.jpg
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.
bandicam 2017-12-29 03-11-42-192.jpg
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

Sort:  

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

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

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

Coin Marketplace

STEEM 0.13
TRX 0.34
JST 0.036
BTC 109587.97
ETH 4474.98
USDT 1.00
SBD 0.84