第二篇、基于Arduino uno,用oled0.96寸屏幕显示数字和字符——结果导向

0、结果

说明:先来看看实际的结果,如果是你想要的,可以接着往下看。

1、外观

说明:本次使用的oled是0.96寸的,别的规格的屏幕不一定适用本教程,一般而言有显示白色、蓝色和蓝黄一起显示的。 

2、连线

说明:只需要连接四根线。

  • uno————oled 0.96
  •     5V--------------VCC
  • GND--------------GND
  •  SCL--------------SCL
  •  SDA--------------SDA

3、源程序

说明:采用非阻塞方式编写,一定时间显示一次数据,并将对应功能进行函数化,方便移植。

/****************************************oled96 part****************************************/
#include <Arduino.h>                                                          //include library
#include <U8g2lib.h>                                                          //include library
#include <Wire.h>                                                             //include library

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

#define oledTimeInterval 1000                                                 //Detect the time interval of a trip
unsigned long oledTimes = 0;                                                  // Record the device running time
int textNum = 0;
/****************************************set up and loop part*********************************/
void setup() {
  u8g2.begin();                                                               //Example Initialize the IIC
}
void loop() {
  oledDisplayMath();                                                          //Display math
}
/****************************************oled96 part****************************************/
/*Display math*/
void oledDisplayMath() {
  if (millis() - oledTimes >= oledTimeInterval) {                              //This command is executed once in a while
    oledTimes = millis();
    textNum++;
    u8g2.setFont(u8g2_font_ncenB14_tr);                                         //u8g2_font_6x12_tr
    u8g2.setFontDirection(0);
    u8g2.firstPage();
    do {
      u8g2.setCursor(0, 15);                                                    //0 means start at the first column and 15 means end at row 15
      u8g2.print("Hello World!");
      u8g2.setCursor(0, 31);                                                    //0 means start at the first column and 15 means end at row 15
      u8g2.print("Num: ");
      u8g2.setCursor(64, 31);
      u8g2.print(textNum);
    } while ( u8g2.nextPage() );
  }
}

4、注意事项

说明:需要在线下载<u8glib.h>库文件。
5、基本原理

OLED 0.96寸显示屏是一种基于有机发光二极管(OLED)技术的显示屏幕。OLED通过利用有机物质在电流的作用下发光的特性来实现图像显示。0.96寸OLED屏幕是一种小型、高分辨率的显示器,可以用于各种嵌入式应用中。其原理如下:

1.内部架构

OLED 0.96寸显示屏由灰阶控制电路和OLED显示面板两部分组成。OLED显示面板由一系列的有机材料构成,包括发光材料和电子传输材料。发光材料负责发出红、绿、蓝三种颜色的光,而电子传输材料则负责将电子传输到每一个有机点上。

2.工作原理

当有电流通过OLED显示面板时,在每一个有机点处都会发射出光。OLED灰阶控制电路控制大量的电信号调整每一个像素点上的亮度,从而产生图像。与传统的液晶显示屏相比,OLED显示屏无需背光,具有更快的响应速度、更高的对比度和更鲜艳的颜色。其像素点是自发光的,因此可以在较小的屏幕上实现高分辨率和精细的图像显示。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 Arduino 上使用 OLED 显示数字时钟,您需要先连接 OLED 显示屏到 Arduino 板上。 一般来说,OLED 显示屏连接到 Arduino 板上需要使用 I2C 总线。I2C 总线需要连接到 Arduino 板的 SDA 和 SCL 引脚上。 以下是一个简单的代码示例,它可以在 OLED 显示屏上显示数字时钟: ```C++ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET -1 #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(0, 0); } void loop() { display.clearDisplay(); display.setCursor(0, 0); // 获取当前时间 int hour = hour(); int minute = minute(); int second = second(); // 显示时间 display.print(hour); display.print(":"); if (minute < 10) { display.print("0"); } display.print(minute); display.print(":"); if (second < 10) { display.print("0"); } display.print(second); display.display(); delay(1000); } ``` 这个代码示例使用 Adafruit_SSD1306 库来控制 OLED 显示屏。在 setup() 函数中,我们初始化了 OLED 显示屏,并设置了字体和文本颜色。在 loop() 函数中 ### 回答2: Arduino OLED显示数字时钟是一种在Arduino开发板上使用OLED显示屏来显示时间的方法。OLED显示屏是一种高亮度、低功耗和高对比度的显示屏,非常适合用于显示时钟。要实现这个功能,我们需要连接一个OLED显示屏到Arduino开发板上,并编写一段代码来控制显示屏。 首先,我们需要连接OLED显示屏到Arduino开发板。一般来说,OLED显示屏有四个引脚:电源引脚VCC和GND,以及数据引脚SDA和时钟引脚SCL。我们需要将这些引脚连接到Arduino开发板上相应的引脚。 然后,我们需要编写一段代码来控制OLED显示屏。首先,我们需要使用一个库来和OLED显示屏进行通信。有很多不同的库可供选择,例如Adafruit SSD1306库。我们需要通过包含这个库来访问其函数和方法。 在代码中,我们需要初始化OLED显示屏,并设置其参数,例如屏幕大小和亮度。然后,我们可以使用显示函数来显示时间。Arduino开发板有一个内部时钟,我们可以使用它来获取当前时间,并将其格式化为适合在OLED显示屏上显示的形式。格式化后的时间可以使用写入函数来在OLED显示屏上显示。 最后,我们需要将代码上传到Arduino开发板上,并确保电路连接正确。一旦上传成功,OLED显示屏就会开始显示数字时钟。我们可以在显示屏上看到实时的时间,并且这个数字时钟将持续运行,直到我们断开电源或停止代码运行。 通过这种方式,我们可以很容易地使用ArduinoOLED显示屏来创建一个简单而实用的数字时钟。这个项目还可以扩展,例如添加日期显示、闹钟设置等功能。 ### 回答3: Arduino是一种具有开源硬件和软件的微控制器平台,它被广泛用于制作各种电子项目。OLED(有机发光二极管)是一种先进的显示技术,具有高亮度、高对比度和低功耗的优点。在Arduino上使用OLED显示数字时钟可以实现一个简单而实用的电子时钟。 首先,我们需要连接ArduinoOLED显示屏。Arduino Uno板上有I2C总线,它可以用于连接OLED显示屏。我们将OLED的SDA引脚连接到A4引脚上,将OLED的SCL引脚连接到A5引脚上。 接下来,我们需要编写Arduino代码来控制OLED显示屏。使用U8g2库可以简化操作。首先,我们需要包含U8g2库的头文件并定义OLED对象。然后,在setup函数中初始化OLED对象,并设置OLED显示屏的字体和显示模式。在loop函数中,我们可以使用U8g2库提供的函数来显示当前的时间。 要显示一个数字时钟,我们可以通过使用Arduino中的时钟函数来获取当前的小时、分钟和秒钟。然后,我们可以调用U8g2库的显示函数,将时间显示OLED屏幕上。 在代码中添加一些控制逻辑,比如按下一个按钮切换显示格式或者调整时间,可以让我们的数字时钟更加灵活和实用。 总的来说,通过使用ArduinoOLED显示屏,我们可以很容易地制作一个数字时钟。这个数字时钟不仅可以显示时间,还可以通过添加一些控制逻辑来增加更多实用的功能。这是一个简单而有趣的电子项目,适合初学者和爱好者尝试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值