13983浏览
楼主: 驴友花雕

[项目] 【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏

[复制链接]

驴友花雕  中级技神
 楼主|

发表于 2022-6-4 07:47:27

0.96I2C OLED液晶屏模块的几个实验
1、程序一:显示"Hello World!"
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序一:显示"Hello World!"
  4.   驱动库:https://github.com/olikraus/u8glib/
  5.   Arduino------OLED屏
  6.   5V------------VCC
  7.   GND-----------GND
  8.   A4-----------SDA IIC 数据线
  9.   A5-----------SCL IIC 时钟线
  10. */
  11. #include "U8glib.h"//导入驱动库
  12. //设置 u8g 对象,请从以下构造函数调用之一中删除注释
  13. //带有所有构造函数调用的设备在这里:https://github.com/olikraus/u8glib/wiki/device
  14. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0); // I2C/TWI
  15. // U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // 快速 I2C/TWI
  16. void draw(void) {
  17.   //重绘整个屏幕的图形命令应该放在这里
  18.   u8g.setFont(u8g_font_unifont);
  19.   //u8g.setFont(u8g_font_osb21);
  20.   u8g.drawStr( 0, 22, "Hello World!");
  21. }
  22. void setup(void) {
  23.   //如果需要,翻转屏幕
  24.   // u8g.setRot180();
  25.   //分配默认颜色值
  26.   if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
  27.     u8g.setColorIndex(255);     // 白色
  28.   }
  29.   else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
  30.     u8g.setColorIndex(3);      //最大强度
  31.   }
  32.   else if ( u8g.getMode() == U8G_MODE_BW ) {
  33.     u8g.setColorIndex(1);      //像素开启
  34.   }
  35.   else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
  36.     u8g.setHiColorByRGB(255, 255, 255);
  37.   }
  38.   pinMode(8, OUTPUT);
  39. }
  40. void loop(void) {
  41.   //图片循环loop
  42.   u8g.firstPage();
  43.   do {
  44.     draw();
  45.   } while ( u8g.nextPage() );
  46.   //延迟一段时间后重建图片
  47.   //delay(50);
  48. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-4 07:48:50

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-4 07:51:18

程序二:动态Time秒表
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序二:动态Time秒表
  4.   驱动库:https://github.com/olikraus/u8glib/
  5. */
  6. #include "U8glib.h"//导入驱动库
  7. String i = "Time:";
  8. int s = 0; //用来显示变量秒
  9. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);      // 小E开发板上面就是用的这个
  10. void draw() {
  11.   u8g.setFont(u8g_font_unifont); //  设置字体 这句必要
  12.   u8g.drawStr( 1, 10, "hello eagler8!");//第一个是x第二个是y坐标
  13.   u8g.setFont(u8g_font_ncenB14);//还是先设置一个字体
  14.   u8g.setPrintPos(0, 44); //然后设置一个位置
  15.   u8g.print(i);//然后就是数据
  16.   u8g.print(s);
  17. }
  18. void setup(void) {
  19. }
  20. void loop(void) {
  21.   if (s != millis() / 10)
  22.     s = millis() / 10;
  23.   //上面这一句是取系统运行秒数  单位ms除以1000就是秒
  24.   u8g.firstPage();
  25.   do {
  26.     draw();
  27.   }
  28.   while ( u8g.nextPage() ); //延迟一段时间后重新生成图片
  29.   delay(10);
  30. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-4 08:36:13

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-4 08:37:55

程序三:循环显示数字1-100及cm
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序三:循环显示数字1-100及cm
  4.   驱动库:https://github.com/olikraus/u8glib/
  5. */
  6. #include "U8glib.h"//导入驱动库
  7. U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);  
  8. // I2C / TWI 实例化
  9. void setup() {
  10. }
  11. void loop() {
  12.   for(int i=1;i<101;i++){
  13.      u8g.firstPage();  //一下是显示实现部分
  14.   do {
  15.   u8g.setFont(u8g_font_fub30);
  16.   //设置字体和自号,目前测试字号有fub14,17,20,30
  17.   u8g.setPrintPos(10, 50); //显示的位置
  18.   u8g.print(i);//显示变量i的值
  19.   u8g.setFont(u8g_font_fub17);//设置字体和自号
  20.   u8g.setPrintPos(80, 50); //显示的位置
  21.   u8g.print("cm");//显示cm字样
  22.   }
  23.   while( u8g.nextPage() );
  24.   
  25.   delay(100);//显示的时间间隔。
  26.   }
  27. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-4 08:41:09

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-4 10:01:46

程序四:显示U8Glib标志,以及Copyright(c)2022, eagler8@126.com
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序四:显示U8Glib标志,以及Copyright(c)2022, eagler8@126.com
  4.   驱动库:https://github.com/olikraus/u8glib/
  5.   Arduino------OLED屏
  6.   5V------------VCC
  7.   GND-----------GND
  8.   A4-----------SDA IIC 数据线
  9.   A5-----------SCL IIC 时钟线
  10. */
  11. #include "U8glib.h"//导入驱动库
  12. // I2C / TWI 实例化
  13. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);
  14. void drawColorBox(void) {
  15.   u8g_uint_t w, h;
  16.   u8g_uint_t r, g, b;
  17.   w = u8g.getWidth() / 32;
  18.   h = u8g.getHeight() / 8;
  19.   for ( b = 0; b < 4; b++ )
  20.     for ( g = 0; g < 8; g++ )
  21.       for ( r = 0; r < 8; r++ )
  22.       {
  23.         u8g.setColorIndex((r << 5) |  (g << 2) | b );
  24.         u8g.drawBox(g * w + b * w * 8, r * h, w, h);
  25.       }
  26. }
  27. void drawLogo(uint8_t d) { //U8Glib标志LOGO
  28. #ifdef MINI_LOGO
  29.   u8g.setFont(u8g_font_gdr17r);
  30.   u8g.drawStr(0 + d, 22 + d, "U");
  31.   u8g.setFont(u8g_font_gdr20n);
  32.   u8g.drawStr90(17 + d, 8 + d, "8");
  33.   u8g.setFont(u8g_font_gdr17r);
  34.   u8g.drawStr(39 + d, 22 + d, "g");
  35.   u8g.drawHLine(2 + d, 25 + d, 34);
  36.   u8g.drawVLine(32 + d, 22 + d, 12);
  37. #else
  38.   u8g.setFont(u8g_font_gdr25r);
  39.   u8g.drawStr(0 + d, 30 + d, "U");
  40.   u8g.setFont(u8g_font_gdr30n);
  41.   u8g.drawStr90(23 + d, 10 + d, "8");
  42.   u8g.setFont(u8g_font_gdr25r);
  43.   u8g.drawStr(53 + d, 30 + d, "g");
  44.   u8g.drawHLine(2 + d, 35 + d, 47);
  45.   u8g.drawVLine(45 + d, 32 + d, 12);
  46. #endif
  47. }
  48. void drawURL(void) {
  49. #ifndef MINI_LOGO
  50.   u8g.setFont(u8g_font_4x6);
  51.   if ( u8g.getHeight() < 59 )
  52.   {
  53.     u8g.drawStr(53, 9, "Copyright(c)2022,");
  54.     u8g.drawStr(77, 18, "eagler8@126.com");
  55.   }
  56.   else
  57.   {
  58.     u8g.drawStr(0, 54, "Copyright(c)2022,eagler8@126.com");//底下小字
  59.   }
  60. #endif
  61. }
  62. void draw(void) {
  63.   if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
  64.     drawColorBox();
  65.   }
  66.   u8g.setColorIndex(1);
  67.   if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) {
  68.     drawLogo(2);
  69.     u8g.setColorIndex(2);
  70.     drawLogo(1);
  71.     u8g.setColorIndex(3);
  72.   }
  73.   drawLogo(0);
  74.   drawURL();
  75. }
  76. void setup(void) {
  77. }
  78. void loop(void) {
  79.   u8g.firstPage();
  80.   do {
  81.     draw();
  82.     u8g.setColorIndex(1);
  83.   } while ( u8g.nextPage() );
  84.   delay(200);
  85. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-4 10:02:56

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-5 19:40:19

程序五:显示 Hello! 2022.5.12
1)实验开源仿真编程(Linkboy V4.63)

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-5 19:41:57

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-5 19:43:12

程序六:显示数字与字母
(1)实验开源图形编程(Mind+、编玩边学)

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-5 19:44:48

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-5 19:46:23

程序七:画格子
1)实验开源图形编程(Mind+、编玩边学)

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-5 19:47:43

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-6 09:26:12

程序八:二个三角形
1)实验开源图形编程(Mind+、编玩边学)

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-6 09:27:54

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-6 09:29:43

程序九:二个同心圆形
1)实验开源图形编程(Mind+、编玩边学)

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-6 09:31:42

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-7 09:00:10

2、程序十:大号字体的“hello”
1)实验开源图形编程(Mind+、编玩边学)

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-7 09:02:14

2)实验场景图

【Arduino】168种传感器模块系列实验(97)---0.96寸OLED液晶屏图1

回复

使用道具 举报

糖醋花生  高级技师

发表于 2022-6-8 08:46:29


我用的还是旧版的,哈哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail