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点阵的使用。