Add frequency select to pigpiod node

This commit is contained in:
Dave Conway-Jones 2021-01-26 18:52:41 +00:00
parent 4bdb6216d3
commit 3a007399f6
No known key found for this signature in database
GPG Key ID: 88BA2B8A411BE9FF
3 changed files with 39 additions and 11 deletions

View File

@ -1,6 +1,6 @@
{
"name": "node-red-node-pi-gpiod",
"version": "0.1.1",
"version": "0.2.0",
"description": "A node-red node for PiGPIOd",
"dependencies" : {
"js-pigpio": "*"

View File

@ -399,6 +399,28 @@
<option value="1" data-i18n="pi-gpiod.initpin1"></option>
</select>
</div>
<div class="form-row" id="node-set-freq">
<label for="node-input-freq"> <span data-i18n="rpi-gpio.label.freq"></span></label>
Frequency: <select id="node-input-freq" style="width:80px;">
<option value="8000">8000</option>
<option value="4000">4000</option>
<option value="2000">2000</option>
<option value="1600">1600</option>
<option value="1000">1000</option>
<option value="800">800</option>
<option value="500">500</option>
<option value="400">400</option>
<option value="320">320</option>
<option value="250">250</option>
<option value="200">200</option>
<option value="160">160</option>
<option value="80">80</option>
<option value="50">50</option>
<option value="40">40</option>
<option value="20">20</option>
<option value="10">10</option>
</select> Hz
</div>
<div class="form-row">
<label for="node-input-host"><i class="fa fa-globe"></i> <span data-i18n="pi-gpiod.label.host"></label>
<input type="text" id="node-input-host" placeholder="localhost" style="width:250px;">
@ -450,7 +472,8 @@
level: { value:"0" },
out: { value:"out" },
sermin: { value:"1000" },
sermax: { value:"2000" }
sermax: { value:"2000" },
freq: { value:"800" }
},
inputs:1,
outputs:0,
@ -478,29 +501,32 @@
var hidestate = function () {
if ($("#node-input-out").val() === "pwm") {
$('#node-set-freq').show();
$('#node-set-tick').hide();
$('#node-set-state').hide();
$('#node-set-minimax').hide();
$('#node-input-set').prop('checked', false);
$("#dig-tip").hide();
$("#pwm-tip").show();
$("#ser-tip").hide();
$('#dig-tip').hide();
$('#pwm-tip').show();
$('#ser-tip').hide();
}
else if ($("#node-input-out").val() === "ser") {
$('#node-set-freq').hide();
$('#node-set-tick').hide();
$('#node-set-state').hide();
$('#node-set-minimax').show();
$('#node-input-set').prop('checked', false);
$("#dig-tip").hide();
$("#pwm-tip").hide();
$("#ser-tip").show();
$('#dig-tip').hide();
$('#pwm-tip').hide();
$('#ser-tip').show();
}
else {
$('#node-set-freq').hide();
$('#node-set-tick').show();
$('#node-set-minimax').hide();
$("#dig-tip").show();
$("#pwm-tip").hide();
$("#ser-tip").hide();
$('#dig-tip').show();
$('#pwm-tip').hide();
$('#ser-tip').hide();
}
};
$("#node-input-out").change(function () { hidestate(); });

View File

@ -86,6 +86,7 @@ module.exports = function(RED) {
this.set = n.set || false;
this.level = parseInt(n.level || 0);
this.out = n.out || "out";
this.freq = parseInt(n.freq) || 800;
this.sermin = Number(n.sermin)/100;
this.sermax = Number(n.sermax)/100;
if (this.sermin > this.sermax) {
@ -120,6 +121,7 @@ module.exports = function(RED) {
PiGPIO.write(node.pin, out);
}
if (node.out === "pwm") {
PiGPIO.set_PWM_frequency(node.pin, node.freq);
PiGPIO.set_PWM_dutycycle(node.pin, parseInt(out * 2.55));
}
if (node.out === "ser") {