/* * Test of Arduino LCD library for display that uses NEC uPD7228 (or uPD16434) chips * * Author Tony Wills * Licensed CC-BY-SA * * 20180128 Initial release version 1.00 * 20180131 Testing for data plot routine, versiom 1.10 * 20180201 Testing for bar graph routine, versiom 1.20 * see http://www.arduino.scorchingbay.nz (or an archive.org copy) for more information */ #include "Arduino.h" #include "LiquidCrystal_7228.h" int i; LiquidCrystal_7228 lcd(5, 2, 3, 4, 6, 9, 10, 11, 12, 13); //(bsy, stb, cs, c_d, rst, clk, d0, d1, d2, d3) void setup() { // Serial.begin(9600); // Open debugging output // Serial terminal output eventually causes clock to stop or program to lockup Serial.println("7228 test"); lcd.begin(20, 2); //LCD initialization lcd.println("Testing"); delay(1000); } void loop() { //----- Character string output /* for (i = 0; i <= 3; i++) { lcd.clear(); //clear screen lcd.setCursor(i * 5, 0); //cursor position lcd.println("LCD TEST !"); delay(500); } lcd.home(); for (int j=0; j<2; j++) { lcd.println("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); } delay(2000); lcd.clear(); */ lcd.clear(); lcd.dataMode(auto_dec); for (int j=0; j<100; j++ ) { lcd.barGraph(random(40),0); lcd.barGraph(random(40),1); delay(10); } delay(200); lcd.noDataMode(); lcd.clear(); lcd.dataMode(auto_dec); for (int j=0; j<100; j++ ) { for (int i=0; i < 40; i++) { lcd.barGraph(i,1); lcd.noDataMode(); lcd.setCursor(0,0); lcd.print("x: "); lcd.print(i);lcd.print(" "); lcd.dataMode(auto_dec); if ((i==25)) delay(10000); delay(20); } delay(2000); for (int i=39; i >= 0; i--) { lcd.barGraph(i,1); delay(20); } } delay(20000); lcd.dataMode(auto_none); for (float k=2.0;k<10.0;k=k+1.0) { for (int i=0; i<120; i++) { int j = round((sin(((i)/k))+1) *9.5); lcd.dataPlot(i,j,0); // for (int n=0;n<=j;n++) { // lcd.dataPlot(i,n,1); delay(1); // } } // for (int i=0; i<120; i++) { // int j = round((sin(((i)/k))+1) *9.5); // lcd.dataPlot(i,j,0); // for (int n=0;n<=j;n++) { // lcd.dataPlot(i,n,1); // delay(10); // } // } lcd.noDataMode(); lcd.setCursor(9,0); lcd.print("Test :"); lcd.print(k); lcd.dataMode( auto_none ); delay(20000); } int k=2; for (int m=0; m<120; m++) { int j=0; for (int i=0;i<120;i++) { // for (int n=0;n<=j;n++) { // lcd.dataPlot((i+m) % 120,n,1); lcd.dataPlot((i+m) % 120,j,1); // delay(10); // } j=j+k; if ((j>=19) || (j<=0)){ k=0-k; } } delay(100); } lcd.noDataMode(); delay(1000); /* for (int j = 0; j < 2; j++) { if (j==0) { lcd.noCursor(); } else { lcd.cursor(); lcd.clear(); lcd.println("Now with cursor:"); // lcd.setCursor(0,1); lcd.print("Turn it on and off"); for (i=0; i<=10; i++) { lcd.noCursor(); delay(200); lcd.cursor(); delay(200); } delay(5000); } lcd.clear(); lcd.leftToRight(); lcd.println("Long lines are truncated"); delay(2000); lcd.clear(); lcd.println("Unless autoscroll on"); lcd.autoScroll(); // lcd.setCursor(0, 1); for (i = 0x20; i <= 0x7f; i++) { lcd.write(i); //ASCII display delay(100); } lcd.noAutoscroll(); delay(2000); lcd.home(); lcd.println("Or manual scroll:"); // lcd.setCursor(0, 1); lcd.lineWrap(); for (i = 0; i < 10; i++) { lcd.scrollDisplayLeft(); delay(100); } delay(500); for (i = 0; i < 10; i++) { lcd.scrollDisplayRight(); delay(100); } delay(500); for (i = 0; i < 10; i++) { lcd.scrollDisplayLeft(); delay(100); } delay(500); for (i = 0; i < 10; i++) { lcd.scrollDisplayRight(); delay(100); } delay(2000); lcd.home(); lcd.println("Without line wrap:"); lcd.noLinewrap(); // lcd.setCursor(0, 1); for (i = 0; i < 10; i++) { lcd.scrollDisplayLeft(); delay(100); } delay(500); for (i = 0; i < 10; i++) { lcd.scrollDisplayRight(); delay(100); } delay(500); for (i = 0; i < 10; i++) { lcd.scrollDisplayLeft(); delay(100); } delay(500); for (i = 0; i < 10; i++) { lcd.scrollDisplayRight(); delay(100); } delay(2000); lcd.clear(); lcd.println("Right to left text "); // lcd.setCursor(0, 1); lcd.rightToLeft(); lcd.autoScroll(); delay(2000); for (i = 0xa0; i <= 0xdf; i++) { lcd.write(i); //Katakana display delay(100); } lcd.leftToRight(); lcd.noAutoscroll(); delay(1000); lcd.clear(); lcd.println("Can println and"); lcd.println("have it scroll up..."); delay(2000); lcd.println("as you write lines"); delay(500); lcd.println("and more lines"); delay(500); lcd.println(" and more lines"); delay(500); lcd.println(" and more lines."); delay(5000); } */ }