adc-pi-gpio

Using an ADC with a Pi

adc-pi-gpio

Node.js Bit banging communication between ADC and the Raspberry Pi.

Largely inspired by ladyada's script: https://gist.github.com/ladyada/3151375.

  • install with npm install adc-pi-gpio --save
  • check the demo sample:
var ADC = require('../adc-pi-gpio'),
    config = {
        tolerance : 2,
        interval : 300,
        channels : [ 0 ],
        SPICLK: 12,
        SPIMISO: 16,
        SPIMOSI: 18,
        SPICS: 22
    };
 
var adc = new ADC(config);
 
process.on('SIGTERM', function(){
    adc.close();
});
process.on('SIGINT', function(){
    adc.close();
});
 
adc.init();
 
adc.on('ready', function() {
    console.log('Pins ready, listening to channel');
});
adc.on('close', function() {
    console.log('ADC terminated');
    process.exit();
});
adc.on('change', function(data) {
    console.log('Channel ' + data.channel + ' value is now ' + data.value + ' which in proportion is: ' + data.percent);
});

ADC class, that represents an instance of an ADC.

Below is a code snippet that shows the configuration possibilities.

The opts object is optional. And each key inside it too.

The values shown there are the defaults fallback.

var ADC = require('adc-pi-gpio'),
  opts = {
    tolerance : 2,
    interval : 300,
    channels : [0],
    SPICLK: 12,
    SPIMISO: 16,
    SPIMOSI: 18,
    SPICS: 22
  };
var adc = new ADC(opts);

Init the pins that are used by the ADC and start reading on the defined ADC channels.

Close the pins used by the ADC.

Read the value of the given ADC channel.