adc-pi-spi

Using an ADC (MCP3008) with a Pi over spi

Read ADC (MCP3008) using spi

Read values from an MCP3008 connected to an raspberry pi using spidev

ADC = require 'adc-pi-spi'
options =
    tolerance: 10       #default = 10 
    pollInterval: 200   #default = 200 
    channels: [0,1,2,3#default = [0] 
 
adc=new ADC('/dev/spidev0.0'options)
 
adc.on 'change'(channel, value)->
    console.log 'channel 'channel'is now'value
 
process.on 'SIGTERM'() ->
    adc.close()
 
process.on 'SIGINT'() ->
    adc.close()
 
process.on 'exit'() ->
    adc.close()

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: [0,1,2,3#default = [0] 
 
adc=new ADC('/dev/spidev0.0'options)

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)

Close the spi device

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().

  • 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

  • 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
adc.on 'change'(channel, value)->
console.log 'channel 'channel'is now'value