- /*
- 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏
- 项目程序之四:I2C LCD16x2液晶屏模拟频谱Arduino音乐项目
- Arduino------LCD1602
- 5V-------------VCC
- GND-----------GND
- A4-----------SDA IIC 数据线
- A5-----------SCL IIC 时钟线
- */
-
-
-
-
- // Set the LCD address to 0x27 in PCF8574 by NXP and Set to 0x3F in PCF8574A by Ti
- LiquidCrystal_I2C lcd(0x27, 16, 2);
-
- int i = 0;
- int j = 0;
- int randomnum;
- int k = 0;
- byte customChar1[] = {
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F
- };
-
- byte customChar2[] = {
- 0x00,
- 0x00,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F
- };
- byte customChar3[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F
- };
- byte customChar4[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x1F,
- 0x1F
- };
- byte customChar5[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00
- };
-
- void setup() {
- Serial.begin(9600);
- lcd.init(); //初始化LCD
- lcd.createChar(4, customChar1);
- lcd.createChar(3, customChar2);
- lcd.createChar(2, customChar3);
- lcd.createChar(1, customChar4);
- lcd.createChar(0, customChar5);
- lcd.clear();
- lcd.setCursor(4, 0);
- lcd.print("Welcome");
- lcd.setCursor(0, 1);
- lcd.print("TeachMeSomething");
- delay(2000);
- lcd.clear();
- lcd.backlight(); //打开背光
- }
-
- void loop() {
- randomnum = random(6, 9);
- Serial.print ("random numer = ");
- Serial.println (randomnum);
-
- for (i = randomnum ; i > 0; i = i - 3)
- {
- int z = i;
- Serial.print ("i value = ");
- Serial.println (i);
- Serial.print ("j= ");
- Serial.println (j);
- Serial.print ("k= ");
- Serial.println (k);
- test();
- lcd.setCursor(7, 0);
- lcd.write(j);
- lcd.setCursor(7, 1);
- lcd.write(k);
- i--;
- test();
- lcd.setCursor(8, 0);
- lcd.write(j);
- lcd.setCursor(8, 1);
- lcd.write(k);
- lcd.setCursor(6, 0);
- lcd.write(j);
- lcd.setCursor(6, 1);
- lcd.write(k);
- i--;
- test();
- lcd.setCursor(9, 0);
- lcd.write(j);
- lcd.setCursor(9, 1);
- lcd.write(k);
- lcd.setCursor(5, 0);
- lcd.write(j);
- lcd.setCursor(5, 1);
- lcd.write(k);
-
- i--;
- test();
- lcd.setCursor(10, 0);
- lcd.write(j);
- lcd.setCursor(10, 1);
- lcd.write(k);
- lcd.setCursor(4, 0);
- lcd.write(j);
- lcd.setCursor(4, 1);
- lcd.write(k);
-
- i--;
- test();
- lcd.setCursor(11, 0);
- lcd.write(j);
- lcd.setCursor(11, 1);
- lcd.write(k);
- lcd.setCursor(3, 0);
- lcd.write(j);
- lcd.setCursor(3, 1);
- lcd.write(k);
-
- i--;
- test();
- lcd.setCursor(12, 0);
- lcd.write(j);
- lcd.setCursor(12, 1);
- lcd.write(k);
- lcd.setCursor(2, 0);
- lcd.write(j);
- lcd.setCursor(2, 1);
- lcd.write(k);
-
- i--;
- test();
- lcd.setCursor(13, 0);
- lcd.write(j);
- lcd.setCursor(13, 1);
- lcd.write(k);
- lcd.setCursor(1, 0);
- lcd.write(j);
- lcd.setCursor(1, 1);
- lcd.write(k);
-
- i--;
- test();
- lcd.setCursor(14, 0);
- lcd.write(j);
- lcd.setCursor(14, 1);
- lcd.write(k);
- lcd.setCursor(0, 0);
- lcd.write(j);
- lcd.setCursor(0, 1);
- lcd.write(k);
-
- delay(50);
- lcd.clear();
-
- i = z;
- }
- }
-
- void test()
- {
-
- if (i == 8)
- {
- j = 4;
- k = 4;
- }
- if (i == 7)
- {
- j = 3;
- k = 4;
- }
- if (i == 6)
- {
- j = 2;
- k = 4;
- }
- if (i == 5)
- {
- j = 1;
- k = 4;
- }
- if (i == 4)
- {
- j = 0;
- k = 4;
- }
- if (i == 3)
- {
- j = 0;
- k = 3;
- }
- if (i == 2)
- {
- j = 0;
- k = 2;
- }
- if (i == 1)
- {
- j = 0;
- k = 1;
- }
- if (i == 0)
- {
- j = 0;
- k = 0;
- }
- }