-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpca.js
More file actions
41 lines (33 loc) · 1.26 KB
/
pca.js
File metadata and controls
41 lines (33 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
Copyright ou © ou Copr. Clément Bossut, (2018)
<bossut.clement@gmail.com>
Ce logiciel est un programme informatique servant à écrire et jouer une conduite lumière synchronisée avec du son sur une Raspberry Pi avec PCA8596.
Ce logiciel est régi par la licence CeCILL soumise au droit français et
respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
sur le site "http://www.cecill.info".
*/
const i2c = require('i2c-bus')
, busNumber = 1 // RaspberryPi configuration
, bus = i2c.openSync(busNumber)
, LED0ON = 6 // ON_L-ON_H-OFF_L-OFF_H
, ALLCALLADDR = 112
let pca = {}
pca.getAddresses = function() {
return bus.scanSync(64,111)
}
pca.init = function(cb) {
bus.sendByteSync(0,6) // Software Reset
setTimeout(()=>{
bus.writeByteSync(ALLCALLADDR,0,0b00100001) //out of sleep and autoincrement
bus.writeByteSync(ALLCALLADDR,0xFB,0) //Remove all led force on
cb()
}, 20)
}
pca.setLed = function(addr, n, val) {
if (n < 0 || n > 15) return;
if (val <= 0) bus.writeByteSync(addr, LED0ON+3+n*4, 16)
else bus.writeWordSync(addr, LED0ON+2+n*4, val)
}
module.exports = pca