/* Arduino Smart_Eink Library * Copyright (C) 2016 by NOA Labs * Author Bruce Guo (NOA Labs) * * This file is E-ink demo showing string. * * This Library is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this Library. If not, see * . */ /* D/C ~ D5 CS ~ D6 BUSY ~ D7 BS ~ D8 MOSI ~ D11 MISO ~ D12 CLK ~ D13 */ #include #include E_ink Eink; unsigned long wait_max; void wait(void) { unsigned v; unsigned long w; w = millis(); do { v = digitalRead(A0); } while( v != 0 ); w = millis() - w; Serial.print("wait: "); Serial.print(w); Serial.println(" "); } void setup() { Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); digitalWrite(8, HIGH); delay(1000); Eink.InitEink(); delay(1000); Eink.WriteComm(0x3b);//set gate line width Eink.WriteData(0x08);//60 + value*4 us --> this influences delay 4: 694/ms, 9:1062/297, 8(POR):957/266 } unsigned x = 0; void loop() { Eink.WriteComm(0x44);//set RAM x address start/end, in page 36 Eink.WriteData(0x00);//RAM x address start at 00h; Eink.WriteData(0x11);//RAM x address end at 11h(17)->72: [because 1F(31)->128 and 12(18)->76] Eink.WriteComm(0x45);//set RAM y address start/end, in page 37 Eink.WriteData(0x00);//RAM y address start at 00h; Eink.WriteData(0xab);//RAM y address start at ABh(171)->172: [because B3(179)->180] Eink.WriteComm(0x11);//data enter mode Eink.WriteData(0x07); Eink.WriteComm(0x4E);//set RAM x address count to 0; Eink.WriteData(0x00); Eink.WriteComm(0x4F);//set RAM y address count to 0; Eink.WriteData(0); Eink.ClearScreen();// clear the screen Eink.WriteComm(0x11);//data enter mode Eink.WriteData(0x07); Eink.WriteComm(0x4E);//set RAM x address count to 0; Eink.WriteData(0x08); Eink.WriteComm(0x4F);//set RAM y address count to 0; Eink.WriteData(x*2); x ++; x = x & 0x01f; //delay(1000); Eink.WriteComm(0x24); Eink.WriteData(0x00); Eink.WriteData(0x03); Eink.WriteData(0x0f); Eink.WriteData(0x3f); Eink.WriteData(0xff); Eink.WriteData(0xff); Eink.WriteData(0xff); Eink.WriteData(0xff); Eink.WriteData(0xff); Eink.WriteData(0x03); Eink.WriteData(0x0f); Eink.WriteData(0x3f); Eink.WriteData(0xff); Eink.WriteData(0xff); Eink.WriteData(0xff); Eink.WriteData(0xff); Eink.WriteData(0xff); Eink.WriteData(0x00); Eink.WriteComm(0x22);//display updata sequence option ,in page 33 Eink.WriteData(0xC0);//enable sequence: clk -> CP -> on Eink.WriteComm(0x20); Serial.print("Clk+CP "); wait(); //delay(1000); Eink.WriteComm(0x22);//display updata sequence option ,in page 33 Eink.WriteData(0x04);//enable sequence: clk -> CP -> LUT -> initial display -> pattern display Eink.WriteComm(0x20); //delay(1000); Serial.print("To Display "); wait(); Eink.WriteComm(0x22); Eink.WriteData(0x03); Eink.WriteComm(0x20); //delay(1000); Serial.print("CP/Clock off "); wait(); //delay(1000); //Eink.ClearScreen();// clear the screen //Eink.EinkP8x16Str(14,8,"NOA-Labs.com"); //Eink.EinkP8x16Str(10,8,"smart-prototyping.com"); //Eink.EinkP8x16Str(6,8,"0123456789"); //Eink.EinkP8x16Str(2,8,"ABCDEFG abcdefg"); //Eink.RefreshScreen(); } void xloop() { }