Read ADC (MCP3008) using spi
Read values from an MCP3008 connected to an raspberry pi using spidev
Usage / Example
ADC = require 'adc-pi-spi'options = tolerance: 10 #default = 10 pollInterval: 200 #default = 200 channels: 0123#default = [0] adc='/dev/spidev0.0'options adcon 'change' consolelog 'channel 'channel'is now'value processon 'SIGTERM' adcclose processon 'SIGINT' adcclose processon 'exit' adcclose
API
- ADC(device:String,[options:Array])
- ADC.state([channel:Number])
- ADC.close()
- ADC.read(channel, callbackfunction))
ADC(device:String,[options:Array])
Setting up a new ADC. Options are optional. The device name is the full path to the spi device, like /dev/spidev0.0
options = tolerance: 10 #default = 10 pollInterval: 200 #default = 200 channels: 0123#default = [0] adc='/dev/spidev0.0'options
ADC.state([channel:Number])
Retrieve the current state of the inputs. If no channel is given, the function will return the values of all defined channels (see options). If a channel is given, the function will return only the value of the choosen channel.
The values are absolute values from the adc (e.g. 0..1023 if you are using a 10Bit chip)
ADC.close()
Close the spi device
ADC.read(channel:Number, callback: function())
Read the current value of the channel. Note: state() uses the buffered state which is updated automatically each pollInterval (see options). Read always reads the actual data without updating the state().
Options
-
tolerance
Change-Event will not fire if the difference between the current and the last value is lower than the tolerance
-
pollInterval
The ADC is polled every pollInterval milliseconds.
-
channels
The ADC channels to monitor, state() and events only contains theese channels
Events
-
change
Fires if a channel value changes more than the tolerance value. The events has two parameters:
- channel: Number the number of the channel which changed
- value: Number the absolute value of the channel
### Example
adcon 'change'consolelog 'channel 'channel'is now'value