【Arduino26】88点阵显示液晶对比度实验

硬件准备

8*8点阵:1个

LCD1602显示屏:1 个

旋钮电位器:1个

220欧的电阻:1 个

面包板:1个

杜邦线:若干

硬件连线

按下图接好旋钮电位器

之后用杜邦线接好8*8点阵。

软件程序

#include 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  //LCD1602用到的IO口

const int row[8] = { A1, A2, A3, A4, A5, 6, 7, 8 };  // 行引脚对应的数组
//const int col_pin = 13;                              // 列引脚
const int knob_pin = A0;

int knob_val = -1;  //旋钮变量

//函数声明
void Init();
void test();

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  for (int thisPin = 0; thisPin < 8; thisPin++) {
    // 初始化输出引脚
    pinMode(row[thisPin], OUTPUT);
    digitalWrite(row[thisPin], LOW);
  }
  //digitalWrite(col_pin, LOW);
}

void loop() {
  Init();//初始化
  //test();
  lattice();//点阵
  displayLCD();
  //delay(100);
}

void Init() {
  for (int thisPin = 0; thisPin < 8; thisPin++) {
    // 初始化输出引脚
    pinMode(row[thisPin], OUTPUT);
    digitalWrite(row[thisPin], LOW);
  }
}

void lattice() {
  knob_val = map(analogRead(knob_pin), 0, 1023, 0, 8);  //读取旋钮模拟值
  Serial.println(knob_val);
  for (int thisPin = 0; thisPin <= knob_val; thisPin++) {
    digitalWrite(row[thisPin], HIGH);
  }
}

void displayLCD() {
  //液晶显示屏
  lcd.setCursor(6, 0);
  lcd.print("hello!");
  lcd.setCursor(5, 1);
  lcd.print(millis() / 1000);
  lcd.print(" Second");
}

void test() {
  for (int thisRow = 0; thisRow < 8; thisRow++) {
    digitalWrite(row[7], HIGH);
    delay(500);
    //digitalWrite(row[7], LOW);
  }
  //digitalWrite(col_pin, HIGH);  //列引脚输出高电平
}

产成品展示视频

88点阵显示液晶对比度

【Arduino26】88点阵显示液晶对比度实验

总结

在本次实验中,我回顾了液晶显示屏以及8*8点阵的使用。

你可能感兴趣的:(学习)