diff --git a/codingExamples/screensaver.js b/codingExamples/screensaver.js new file mode 100644 index 0000000..ff0fdaf --- /dev/null +++ b/codingExamples/screensaver.js @@ -0,0 +1,46 @@ +/* + * SCREENSAVER: bounces a nice little text over the screen + */ + +// offsets must be defined for correct display on screen! +const Xoffset = 8; +const Yoffset = 8; + +// define the function first, before using it below +function displayText(textString, x,y) { + // write some text + scrn.drawString(textString, Xoffset + x, Yoffset + y); + // write to the screen + scrn.flip(); + // clear a bit of the screen in preparation before next update + scrn.clearRect(Xoffset + x, Yoffset + y, Xoffset + x + 30, Yoffset + y + 8); +} + +// MAIN FUNCTION: bounce text and flash LED (D8) +let on = false; +let x = 0; +let y = 0; +let ix = 1; +let iy = 1; +const txt = 'HELLO'; +function main() { + setInterval(function() { + on = !on; + digitalWrite("D8",on); + y += iy; + x += ix; + if (x > (72-(txt.length*8))) ix = -ix; + if (y > 34) iy = -iy; + if (x < 1) ix = -ix; + if (y < 1) iy = -iy; + displayText(txt,x,y); + }, 100); +} + +// +// required modules/libraries (in Espruino must be included at the end due to needing functions) +// +I2C1.setup({scl:"D6",sda:"D5"}); // I2C setup +// initialize the screen and its dimensions (null can be replaced by a callback) +const scrn = require("SSD1306").connect(I2C1, main, { width:72, height:48 }); // for 72x48 LCD +