Module: j5e/light
Description
A module for measuring light levels using a photoresistor.
A photoresistor is a passive component that decreases resistance with respect to receiving luminosity (light) on the component's sensitive surface. The resistance of a photoresistor decreases with increase in incident l intensity; in other words, it exhibits photoconductivity. A photoresistor can be applied in light-sensitive detector circuits and light-activated and dark-activated switching circuits acting as a resistance semiconductor. In the dark, a photoresistor can have a resistance as high as several megaohms (MΩ), while in the light, a photoresistor can have a resistance as low as a few hundred ohms. If incident light on a photoresistor exceeds a certain frequency, photons absorbed by the semiconductor give bound electrons enough energy to jump into the conduction band. The resulting free electrons conduct electricity, thereby lowering resistance. The resistance range and sensitivity of a photoresistor can substantially differ among dissimilar devices. Moreover, unique photoresistors may react substantially differently to photons within certain wavelength bands.Read more on Wikipedia
In electronics, an analog-to-digital converter is a system that converts an analog signal, such as a sound picked up by a microphone or light entering a digital camera, into a digital signal. An ADC may also provide an isolated measurement such as an electronic device that converts an analog input voltage or current to a digital number representing the magnitude of the voltage or current. Typically the digital output is a two's complement binary number that is proportional to the input, but there are other possibilities.Read more on Wikipedia
Requires
Class: Light
The Light class allows for control of photoresistors
Constructor
new Light(io)
Parameters
(required)
Description:
Pin identifier or IO Options (See instantiation)
Example
// Use a photoresistor
import Light from "j5e/light";
const light = await new Light(12);
light.on("change", data => {
trace(light.level);
});
Properties
(read only)
(read only)
(read only)
(read only)
(read only)
(read only)
(read only)
Events
- event:data
- event:change
Methods
Light.configure
Note: This method is not part of the public API, and is subject to change.
Configure a Light sensor
light.configure();
Returns: The instance on which the method was called
Example
import Light from "j5e/light";
const light = await new LED(14);
light.configure({
interval: 50
});
Light.configure
Note: This method is not part of the public API, and is subject to change.
Configure a Sensor
light.configure(options);
Returns: The instance on which the method was called
Parameters
(required)
Description:
Device configuration options
Description:
Analog reference voltage
Default: 3.3
Description:
Wether the device is currently performing reads every
Default: true
Description:
Interval between readings in millseconds
Default: 100
Description:
Limit the output range
Description:
The input range of the sensor
Default: [0, N]
Description:
The output range for the sensor's value
Default: [0, N]
Description:
The minimum amount of change required to emit a "change" event
Default: 1
Example
// Passing in Cofiguration Options
import Sensor from "j5e/sensor";
const sensor = await new Sensor({
pin: 12
});
sensor.configure({
interval: 500
});
sensor.on("change", data => {
trace(data);
});
Light.enable
Enable a disabled sensor.
light.enable();
Returns: instance
Example
import Sensor from "j5e/sensor";
const sensor = await new Sensor(12);
sensor.disable();
// Wait 5 seconds and then take readings
timer.setTimeout(function() {
sensor.enable();
});
Light.disable
Disable an enabled sensor.
light.disable();
Returns: instance
Example
import Sensor from "j5e/sensor";
const sensor = await new Sensor(12);
// Take reading for 5 seconds and then stop
timer.setTimeout(function() {
sensor.disable();
});
Light.read
Synchronous read of a sensor.
light.read();
Returns: sensor value
Example
import Sensor from "j5e/sensor";
const sensor = await new Sensor(12);
let myValue = sensor.read();
Light.scale
scale/scaleTo Set a value scaling range
light.scale(low, high, low, high);
Returns: instance
Parameters
(required)
Description:
Lowerbound
(required)
Description:
Upperbound
Description:
Lowerbound
Example
import Sensor from "j5e/sensor";
const sensor = await new Sensor(12);
// Scale all future values to 8-bit range
sensor.scale([0, 255]);
Light.scaleTo
scaleTo Scales value to integer representation
light.scaleTo(low, low, high);
Returns: The scaled value
Parameters
(required)
Description:
An array containing a lower and upper bound
(required)
Description:
A number to use as a lower bound
(required)
Description:
A number to use as an upper bound
Example
import Sensor from "j5e/sensor";
const sensor = await new Sensor(12);
// Scale the returned value to 8-bit range
sensor.scaleTo([0, 255]);
Light.fscaleTo
fscaleTo Scales value to single precision float representation
light.fscaleTo(low, low, high);
Returns: The scaled value
Parameters
(required)
Description:
An array containing a lower and upper bound
(required)
Description:
A number to use as a lower bound
(required)
Description:
A number to use as an upper bound
Example
import Sensor from "j5e/sensor";
const sensor = await new Sensor(12);
// Scale the returned value to float between 0 and 1
sensor.fscaleTo([0, 1]);
Light.within
Fire a callback when the value is within a certain range
light.within(range, unit, callback);
Parameters
(required)
Description:
The upper and lower ends of the range to watch
(required)
Description:
The property to test
(required)
Description:
A callback to run when the event is fired.
Light.on
Create an event listener
light.on(event, listener);
Parameters
(required)
Description:
The name of the event to listen for
(required)
Description:
A callback to run when the event is fired.
Light.removeListener
Remove an event listener
light.removeListener(event, listener);
Parameters
(required)
Description:
The name of the event that we are removing a listener from
(required)
Description:
The callback that we are removing
Light.emit
Note: This method is not part of the public API, and is subject to change.
Emit an event
light.emit(event);
Parameters
(required)
Description:
The name of the event to emit
Light.once
Create an event listener that will only fire one time.
light.once(event, listener);
Parameters
(required)
Description:
The name of the event to listen for
(required)
Description:
A callback to run when the event is fired.
Light.configure
Configure a Sensor
light.configure(options);
Returns: The instance on which the method was called
Parameters
(required)
Description:
Device configuration options
Description:
Analog reference voltage
Default: 3.3
Description:
Wether the device is currently performing reads every
Default: true
Description:
Interval between readings in millseconds
Default: 100
Description:
Limit the output range
Description:
The input range of the sensor
Default: [0, N]
Description:
The output range for the sensor's value
Default: [0, N]
Description:
The minimum amount of change required to emit a "change" event
Default: 1
Example
// Passing in Cofiguration Options
import Sensor from "j5e/sensor";
const sensor = await new Sensor({
pin: 12
});
sensor.configure({
interval: 500
});
sensor.on("change", data => {
trace(data);
});