Ljus Sensing Fairy ljus
Ber om ursäkt för video - måste du se det i HD, och även då du kanske inte kan topp gör ut all kod.
Du behöver:
- En STM32F4DISCOVERY styrelse
- En USB-TTL converter - det är inte avgörande, utan den lysdioderna kommer flimrar när USB är inkopplad, men när du tar bort det de kommer bli bra
- En WS2811 LED string
- En ljus beroende Resistor (LDR) och matchande normala resistor (i mitt fall 200k)
- Espruino JavaScript-tolken programvaran
Jag ansluten:
- De vita + röda trådarna av WS2811s till 0v och 5v
- Den gröna ledningen av LDR till stift PA7
- LDR mellan marken och stift PC1
- Ett 200kOhm motstånd mellan PC3 och PC1
Det finns mer information om kontroll och ledningar upp lamporna på Espruino handledning för WS2811s. Den faktiska koden måste du kopiera och klistra in är:
funktion onInit() {
SPI1.Setup ({baud: 3200000, mosi:A7});
C3.set(); Dra den ljussensor potentiella delningslisten upp till 3.3V
}
onInit();
var ljus = 0,0; en genomsnittlig
funktion getPattern() {
var lightInstant = analogRead (C1) * 3;
ljus = lightInstant * 0,1 + ljus * 0,9;
var cols = [];
för (var jag = 0; jag < 50; i ++) {
var c = (-Math.abs(i-25)*10) + ljus * 1024-200.
om (c < 0) c = 0;
om (c > 255) c = 255;
cols.push(c);
c = (-Math.abs(i-25)*10) + ljus * 1024-450;
om (c < 0) c = 0;
om (c > 255) c = 255;
cols.push(c);
c = (-Math.abs(i-25)*10) + ljus * 1024-600;
om (c < 0) c = 0;
om (c > 255) c = 255;
cols.push(c);
}
returnera cols;
}
funktion doLights() {
SPI1.send4bit(getPattern(), 0b0001, 0b0011);
}
setInterval (doLights, 50);
Och jobbet gjort! Om du skriver 'save()' det ska fortsätta att arbeta även efter power off.