Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

[经验] 【Arduino】168种传感器模块系列实验(144)---0.91寸OLED液晶屏

[复制链接]
 楼主| 发表于 2021-9-20 10:51 | 显示全部楼层
  【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百四十四:0.91寸OLED液晶屏显示模块 IIC
  项目十六:使用FFT库的迷你音乐频谱仪(声谱可视化器)(测试视频113秒)

https://v.youku.com/v_show/id_XN ... hcb.playlsit.page.1


发表于 2021-9-24 08:49 | 显示全部楼层
板凳坐好,好好学习
 楼主| 发表于 2021-9-24 10:11 | 显示全部楼层
willvivi 发表于 2021-9-24 08:49
板凳坐好,好好学习

谢谢鼓励
 楼主| 发表于 2021-9-25 07:14 | 显示全部楼层
终于找到黄色的,收了二片

34.jpg
 楼主| 发表于 2021-9-25 07:49 | 显示全部楼层
  【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百四十四:0.91寸OLED液晶屏显示模块 IIC
  项目十七:综合测试,中文显示四个字

  实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百四十四:0.91寸OLED液晶屏显示模块 IIC
  4.   项目十七:综合测试,中文显示四个字
  5.   实验接线方法: max9814接A0
  6.   oled模块    Ardunio Uno
  7.   GND---------GND接地线
  8.   VCC---------5V 接电源
  9.   SDA---------A4
  10.   SCL ------- A5
  11. */

  12. #include <Wire.h>
  13. #include <Adafruit_GFX.h>
  14. #include <Adafruit_SSD1306.h>

  15. #define OLED_RESET     4
  16. Adafruit_SSD1306 display(128, 32, &Wire, OLED_RESET);

  17. //取16X16汉字字模 逐行式 顺向高位在前
  18. static const unsigned char PROGMEM str1[] =
  19. {
  20.   0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08,
  21.   0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
  22. };/*"中",0*/

  23. static const unsigned char PROGMEM str2[] =
  24. {
  25.   0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x08, 0x20, 0x08, 0x20,
  26.   0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x30, 0x18, 0xC0, 0x06
  27. };/*"文",1*/
  28. static const unsigned char PROGMEM str3[] =
  29. {
  30.   0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0,
  31.   0x04, 0x40, 0x44, 0x44, 0x24, 0x44, 0x14, 0x48, 0x14, 0x50, 0x04, 0x40, 0xFF, 0xFE, 0x00, 0x00
  32. };/*"显",2*/

  33. static const unsigned char PROGMEM str4[] =
  34. {
  35.   0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x01, 0x00,
  36.   0x01, 0x00, 0x11, 0x10, 0x11, 0x08, 0x21, 0x04, 0x41, 0x02, 0x81, 0x02, 0x05, 0x00, 0x02, 0x00
  37. };/*"示",3*/

  38. void setup() {
  39.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  40.   display.setTextColor(WHITE);//开像素点发光
  41.   display.clearDisplay();//清屏

  42.   display.setTextSize(2); //设置字体大小
  43.   display.setCursor(0, 0);//设置显示位置
  44.   display.println("-TonyCode-");//输出字符

  45.   display.drawBitmap(32, 16, str1, 16, 16, 1); //画出字符对应点阵数据
  46.   display.drawBitmap(48, 16, str2, 16, 16, 1); //画出字符对应点阵数据
  47.   display.drawBitmap(64, 16, str3, 16, 16, 1); //画出字符对应点阵数据
  48.   display.drawBitmap(80, 16, str4, 16, 16, 1); //画出字符对应点阵数据
  49.   display.display();//打开显示
  50. }

  51. void loop() {
  52. }
复制代码


 楼主| 发表于 2021-9-25 07:55 | 显示全部楼层
  实验场景图

35.jpg
 楼主| 发表于 2021-9-25 08:35 | 显示全部楼层
  【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百四十四:0.91寸OLED液晶屏显示模块 IIC
  项目十八:简单的流动文本显示

  实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百四十四:0.91寸OLED液晶屏显示模块 IIC
  4.   项目十八:简单的流动文本显示
  5.   实验接线方法:
  6.   oled模块    Ardunio Uno
  7.   GND---------GND接地线
  8.   VCC---------5V 接电源
  9.   SDA---------A4
  10.   SCL ------- A5
  11. */

  12. #include<FLOW.h>
  13. FLOW first;
  14. String s="Hello Eagler8!";

  15. void setup(){
  16.   first.Begin();
  17. }

  18. void loop(){
  19.   first.Now(24,8,s,1);
  20.   first.Clear(50);
  21. }
复制代码


 楼主| 发表于 2021-9-25 08:44 | 显示全部楼层
  实验场景图

36.jpg
 楼主| 发表于 2021-9-25 09:57 | 显示全部楼层
本帖最后由 eagler8 于 2021-9-25 10:03 编辑

  【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百四十四:0.91寸OLED液晶屏显示模块 IIC
  项目十九:OLED屏显示时钟

  实验开源代码
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百四十四:0.91寸OLED液晶屏显示模块 IIC
  4.   项目十九:OLED屏显示时钟
  5.   实验接线:
  6.   oled模块    Ardunio Uno
  7.   GND---------GND接地线
  8.   VCC---------5V 接电源
  9.   SDA---------A4
  10.   SCL ------- A5
  11. */

  12. #include "ssd1306.h"

  13. uint32_t lastMillis;
  14. uint8_t  hours = 10;
  15. uint8_t  minutes = 02;
  16. uint8_t  seconds = 0;

  17. void printSeconds() {
  18.   if (seconds & 1) {
  19.     ssd1306_printFixed(54,  2, ":", STYLE_NORMAL);
  20.   }
  21.   else {
  22.     ssd1306_printFixed(54,  2, " ", STYLE_NORMAL);
  23.   }
  24. }

  25. void printMinutes() {
  26.   char minutesStr[3] = "00";
  27.   minutesStr[0] = '0' + minutes / 10;
  28.   minutesStr[1] = '0' + minutes % 10;
  29.   ssd1306_printFixed(78,  2, minutesStr, STYLE_NORMAL);
  30. }

  31. void printHours() {
  32.   char hoursStr[3] = "00";
  33.   hoursStr[0] = '0' + hours / 10;
  34.   hoursStr[1] = '0' + hours % 10;
  35.   ssd1306_printFixed(6,  2, hoursStr, STYLE_NORMAL);
  36. }

  37. void setup() {
  38.   //如果您需要使用 128x32 显示,请将下面的行替换为 ssd1306_128x32_i2c_init()
  39.   ssd1306_128x32_i2c_init();
  40.   ssd1306_fillScreen(0x00);
  41.   ssd1306_setFixedFont(comic_sans_font24x32_123);
  42.   lastMillis = millis();
  43.   printHours();
  44.   printMinutes();
  45. }

  46. void loop() {
  47.   if ((uint32_t)(millis() - lastMillis) >= 1000) {
  48.     lastMillis += 1000;
  49.     if (++seconds > 59)
  50.     {
  51.       seconds = 0;
  52.       if (++minutes > 59)
  53.       {
  54.         minutes = 0;
  55.         if (++hours > 23)
  56.         {
  57.           hours = 0;
  58.         }
  59.         printHours();
  60.       }
  61.       printMinutes();
  62.     }
  63.     printSeconds();
  64.   }
  65. }
复制代码


 楼主| 发表于 2021-9-25 10:05 | 显示全部楼层
  实验场景图

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

本版积分规则

小黑屋|Archiver|手机版|Arduino爱好者

GMT+8, 2022-12-10 00:17 , Processed in 0.073871 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表