node-red-contrib-ads1x15
Version:
Node-Red node for ADS1015 and ADS1115 I2C ADC
131 lines (123 loc) • 5.16 kB
HTML
<script type="text/x-red" data-template-name="ads1x15">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-chip"><i class="fa fa-microchip"></i> Chip</label>
<select id="node-input-chip">
<option value="0" >ads1015</option>
<option value="1" >ads1115</option>
</select>
</div>
<div class="form-row">
<label for="node-config-input-device"><i class="fa fa-globe"></i> I2C Device</label>
<input type="text" id="node-config-input-device" placeholder="/dev/I2C-1" style="width: 45%;">
</div>
<div class="form-row">
<label for="node-config-input-address"><i class="fa fa-user"></i> Address</label>
<input type="text" id="node-config-input-address" placeholder="0x48">
</div>
<div class="form-row">
<label for="node-input-channel"><i class="fa fa-random"></i> Channel</label>
<select id="node-input-channel">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
</select>
</div>
<div class="form-row" id="samplesPerSecond0">
<label for="input-samplesPerSecond0"><i class="fa fa-sign-in"></i> Samples Per Second</label>
<select id="input-samplesPerSecond0">
<option value="8">8</option>
<option value="16">16</option>
<option value="32">32</option>
<option value="64">64</option>
<option value="128">128</option>
<option value="250">250</option>
<option value="475">475</option>
<option value="860">860</option>
</select>
</div>
<div class="form-row" id="samplesPerSecond1">
<label for="input-samplesPerSecond1"><i class="fa fa-sign-in"></i> Samples Per Second</label>
<select id="input-samplesPerSecond1">
<option value="128">128</option>
<option value="250">250</option>
<option value="490">490</option>
<option value="920">920</option>
<option value="1600">1600</option>
<option value="2400">2400</option>
<option value="3300">3300</option>
</select>
</div>
<input type="hidden" id="node-input-samplesPerSecond">
<div class="form-row">
<label for="node-input-progGainAmp"><i class="fa fa-wrench"></i> Gain</label>
<select id="node-input-progGainAmp">
<option value="6144">6144</option>
<option value="4096">4096</option>
<option value="2048">2048</option>
<option value="1024">1024</option>
<option value="512">512</option>
<option value="256">256</option>
</select>
</div>
<!--<div class="form-tips">Scan for connected devices on I2C.</div>-->
</script>
<script type="text/x-red" data-help-name="ads1x15">
<p>Reads data from a ads1x15.</p>
</script>
<script type="text/javascript">
RED.nodes.registerType('ads1x15', {
category: 'input',
defaults: {
name: { name: "" },
chip: { value: 0 },
address: { value: 0x48 },
i2c_dev: { value: '/dev/i2c-1' },
channel: { value: 0 },
samplesPerSecond: { value: '250' },
progGainAmp: { value: '4096' },
},
color: "red",
inputs: 1,
outputs: 1,
icon: "serial.png",
label: function () {
return this.name || "ads1x15";
},
labelStyle: function () {
return this.name ? "node_label_italic" : "";
},
oneditprepare: function () {
var chip = $("#node-input-chip").val();
chip == "0" ? (
$("#input-samplesPerSecond0").val(this.samplesPerSecond)
) : (
$("#input-samplesPerSecond1").val(this.samplesPerSecond)
);
$("#node-input-chip").change(function () {
var chip = $("#node-input-chip").val();
chip == "1" ? (
$("#samplesPerSecond0").hide(),
$("#samplesPerSecond1").show(),
$("#samplesPerSecond1").val('250')
) : (
$("#samplesPerSecond1").hide(),
$("#samplesPerSecond0").show(),
$("#samplesPerSecond0").val('250')
);
});
},
oneditsave: function () {
var chip = $("#node-input-chip").val();
chip == "0" ? (
$("#node-input-samplesPerSecond").val($("#input-samplesPerSecond0").val())
) : (
$("#node-input-samplesPerSecond").val($("#input-samplesPerSecond1").val())
);
}
});
</script>