diff --git a/examples/pcf8591/index.html b/examples/pcf8591/index.html new file mode 100755 index 0000000..9136381 --- /dev/null +++ b/examples/pcf8591/index.html @@ -0,0 +1,47 @@ + + + + + + + i2c-PCF8591 + + + + + + +

+ PCF8591 +

+ +

initializing...

+

+ DAC Voltage (Range: 0V - 3.3V)
+ V + +

+ + diff --git a/examples/pcf8591/main.js b/examples/pcf8591/main.js new file mode 100644 index 0000000..f5b007a --- /dev/null +++ b/examples/pcf8591/main.js @@ -0,0 +1,31 @@ +import PCF8591 from "https://unpkg.com/@chirimen/pcf8591?module"; + +main(); + +async function main() { + const adcDisplay = document.getElementById("adcDisplay"); + const dacVoltage = document.getElementById("dacVoltage"); + const i2cAccess = await navigator.requestI2CAccess(); + const port = i2cAccess.ports.get(1); + const pcf8591 = new PCF8591(port, 0x48); + await pcf8591.init(); + await pcf8591.setDAC(3.3); + + //DAC control + document + .getElementById("dacSetButton") + .addEventListener("click", () => pcf8591.setDAC(dacVoltage.value)); + + while (true) { + let output = ""; + + // PCF8591 has 4 channels + for (let channel = 0; channel < 4; channel++) { + const voltage = await pcf8591.readADC(channel); + output += `CH${channel}: ${voltage.toFixed(3)}V
`; + } + adcDisplay.innerHTML = output; + + await sleep(500); + } +} diff --git a/examples/pcf8591/package.json b/examples/pcf8591/package.json new file mode 100644 index 0000000..a2cee61 --- /dev/null +++ b/examples/pcf8591/package.json @@ -0,0 +1,5 @@ +{ + "name": "i2c-pcf8591-example", + "version": "1.0.0", + "private": true +} diff --git a/examples/pcf8591/schematic.png b/examples/pcf8591/schematic.png new file mode 100644 index 0000000..206b22a Binary files /dev/null and b/examples/pcf8591/schematic.png differ diff --git a/node-examples/pcf8591/main.js b/node-examples/pcf8591/main.js new file mode 100644 index 0000000..4f051b1 --- /dev/null +++ b/node-examples/pcf8591/main.js @@ -0,0 +1,29 @@ +const { requestI2CAccess } = require("node-web-i2c"); +const PCF8591 = require("@chirimen/pcf8591"); +const { promisify } = require("util"); +const sleep = promisify(setTimeout); + +main(); + +async function main() { + const i2cAccess = await requestI2CAccess(); + const port = i2cAccess.ports.get(1); + const pcf8591 = new PCF8591(port, 0x48); + await pcf8591.init(); + + // Set DAC voltage (Range: 0V - 3.3V) + await pcf8591.setDAC(3.3); + + while (true) { + let output = ""; + + // PCF8591 has 4 channels + for (let channel = 0; channel < 4; channel++) { + const voltage = await pcf8591.readADC(channel); + output += `CH${channel}:${voltage.toFixed(3)}V `; + } + console.log(output); + + await sleep(500); + } +} diff --git a/node-examples/pcf8591/package.json b/node-examples/pcf8591/package.json new file mode 100644 index 0000000..ac6630d --- /dev/null +++ b/node-examples/pcf8591/package.json @@ -0,0 +1,9 @@ +{ + "name": "i2c-pcf8591-node-example", + "version": "1.0.0", + "private": true, + "dependencies": { + "@chirimen/pcf8591": "latest", + "node-web-i2c": "latest" + } +} diff --git a/node-examples/pcf8591/readme.md b/node-examples/pcf8591/readme.md new file mode 100644 index 0000000..15b0e22 --- /dev/null +++ b/node-examples/pcf8591/readme.md @@ -0,0 +1,5 @@ +# PCF8591 8bit AD,DA コンバーター + +## 配線図 + +![配線図](./schematic.png "schematic") diff --git a/node-examples/pcf8591/schematic.png b/node-examples/pcf8591/schematic.png new file mode 100644 index 0000000..206b22a Binary files /dev/null and b/node-examples/pcf8591/schematic.png differ