contrl.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // PCF8591 数模转换芯片
  2. const i2cBus = require("i2c-bus")
  3. const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
  4. class ContrlService {
  5. constructor() {
  6. this.BUS = i2cBus.openSync(1)
  7. // 寄存器地址
  8. this.ADR = 0x48
  9. // 电位器地址->对应模块in1,in2
  10. this.P1 = 0x40
  11. this.P2 = 0x41
  12. this.P3 = 0x42
  13. this.P4 = 0x43
  14. this.run()
  15. }
  16. async run() {
  17. // 数模初始值
  18. const data = await this.Orientation()
  19. process.send(data);
  20. await sleep(50)
  21. this.run()
  22. }
  23. // 获取值
  24. async Orientation() {
  25. const v0 = this.BUS.readByteSync(this.ADR,this.P1)
  26. const v1 = this.BUS.readByteSync(this.ADR,this.P2)
  27. const v2 = this.BUS.readByteSync(this.ADR,this.P3)
  28. const v3 = this.BUS.readByteSync(this.ADR,this.P4)
  29. // 接入socket 发送数据
  30. const db = `{"type":"conctrl","conctrl":{"v0":${v0},"v1":${v1},"v2":${v2},"v3":${v3}}}`
  31. return db
  32. }
  33. }
  34. new ContrlService()