Tsl2561 & 1.3" oled

Hello, I want to print the values that I have obtained using the tsl2561 lux sensor on the screen. While I can see the lux values on the serial monitor before connecting the screen, when I connect the screen, it only shows the value once, sometimes it does not show, strange texts appear on the screen. Why is the problem caused and how can I solve it?

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_TSL2561_U.h>
#include <U8glib.h>
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE)

Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);

//
/*
Displays some basic information on this sensor from the unified
sensor API sensor_t type (see Adafruit_Sensor for more information)
*/
/
/
void displaySensorDetails(void)
{
sensor_t sensor;
tsl.getSensor(&sensor);
Serial.println("------------------------------------");
Serial.print ("Sensor: "); Serial.println(sensor.name);
Serial.print ("Driver Ver: "); Serial.println(sensor.version);
Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id);
Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" lux");
Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" lux");
Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" lux");
Serial.println("------------------------------------");
Serial.println("");
delay(500);
}

//
/*
Configures the gain and integration time for the TSL2561
*/
/
/
void configureSensor(void)
{
/* You can also manually set the gain or enable auto-gain support /
// tsl.setGain(TSL2561_GAIN_1X); /
No gain ... use in bright light to avoid sensor saturation /
// tsl.setGain(TSL2561_GAIN_16X); /
16x gain ... use in low light to boost sensitivity /
tsl.enableAutoRange(true); /
Auto-gain ... switches automatically between 1x and 16x */

/* Changing the integration time gives you better sensor resolution (402ms = 16-bit data) /
tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS); /
fast but low resolution /
// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_101MS); /
medium resolution and speed /
// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_402MS); /
16-bit data but slowest conversions */

/* Update these values depending on what you've set above! */
Serial.println("------------------------------------");
Serial.print ("Gain: "); Serial.println("Auto");
Serial.print ("Timing: "); Serial.println("13 ms");
Serial.println("------------------------------------");
}

//
/*
Arduino setup function (automatically called at startup)
*/
/
/
void setup(void)
{
Serial.begin(9600);
Serial.println("Light Sensor Test"); Serial.println("");

/* Initialise the sensor /
if(!tsl.begin())
{
/
There was a problem detecting the ADXL345 ... check your connections */
Serial.print("Ooops, no TSL2561 detected ... Check your wiring or I2C ADDR!");
while(1);
}

/* Display some basic information on this sensor */
displaySensorDetails();

/* Setup the sensor gain and integration time */
configureSensor();

/* We're ready to go! */
Serial.println("");
}

//
/*
Arduino loop function, called once 'setup' is complete (your own code
should go here)
*/
/
/
void loop(void)
{
/* Get a new sensor event */
sensors_event_t event;
tsl.getEvent(&event);

/* Display the results (light is measured in lux) /
if (event.light)
{
Serial.print(event.light); Serial.println(" lux");
u8g.firstPage();
do {
u8g.setFont(u8g_font_profont12);
u8g.setPrintPos(15,30);
u8g.print(event.light);
}while (u8g.nextPage() );
}
else
{
/
If event.light = 0 lux the sensor is probably saturated
and no reliable data could be generated! */
Serial.println("Sensor overload");
u8g.firstPage();
do {
u8g.setFont(u8g_font_profont12);
u8g.setPrintPos(15,30);
u8g.print("Sensor overload");
}while (u8g.nextPage() );
}
delay(250);
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.