arduino控制OLED 屏幕

本文探讨了物联网设备的连接方式,包括使用Adafruit GFX库进行显示和Wire、SPI通信协议的使用。同时展示了如何通过编程实现设备连接,并分析了不同天气条件下的图像图标,如多云、下雨、太阳等。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、实物连接

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、代码实现

//#include <Adafruit_GFX(1).h>















#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <SPI.h>

#include "bitmap.h"
//#include "sensorManage.h"

#define uint8  unsigned char
#define uint16 unsigned int

#define OLED_RESET 8
Adafruit_SSD1306 display(OLED_RESET);

//constant define
#define PICTURE_GLCD_HEIGHT 64 
#define PICTURE_GLCD_WIDTH  128
#define BAR_Y 20
#define BAR_X 57
#define BAR_WIDTH 50

//pin define
#define photoPin A0

void setup()   
{
   
     
    //----- by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
    display.begin(SSD1306_SWITCHCAPVCC, 0x3c);  // initialize with the I2C addr 0x3D (for the 128x64)
    display.clearDisplay();
}

void loop()
{
   
   
    //showLight();
    showLogo(0, 0);
}

void showLogo(uint8 x, uint8 y)
{
   
   
    display.clearDisplay();   // clears the screen and buffer
    display.drawBitmap(x, y,  logo_CLB, PICTURE_GLCD_WIDTH, PICTURE_GLCD_HEIGHT, 1);
    display.display();
}


头文件

代码如下:



#include <avr/pgmspace.h>

////////////////////////////////////////////////////
// 16x24 Logo
////////////////////////////////////////////////////
const unsigned char PROGMEM IMG_logo_24x24[] = {
   
   
0x07,0xff,0xe0,
0x07,0xff,0xe0,
0x07,0xff,0xe0,
0x08,0x10,0x10,
0x10,0x10,0x08,
0x10,0x00,0x08,
0x10,0x00,0x08,
0x10,0x00,0x08,
0x10,0x00,0x08,
0x10,0x02,0x08,
0x10,0x04,0x08,
0x10,0x08,0x0c,
0x1c,0x10,0x3c,
0x10,0x08,0x0c,
0x10,0x08,0x08,
0x10,0x04,0x08,
0x10,0x04,0x08,
0x10,0x02,0x08,
0x10,0x02,0x08,
0x10,0x10,0x08,
0x08,0x10,0x10,
0x07,0xff,0xe0,
0x07,0xff,0xe0,
0x07,0xff,0xe0
}; 

////////////////////////////////////////////////////
// 8x8 Indicator
////////////////////////////////////////////////////
const unsigned char PROGMEM IMG_indicator_emg[] = {
   
   
0x00,
0x18,
0x18,
0x18,
0x00,
0x18,
0x00,
0x00
}; 

const unsigned char PROGMEM IMG_indicator_msg[] = {
   
   
0x00,
0x3c,
0x42,
0x42,
0x34,
0x08,
0x00,
0x00
}; 

////////////////////////////////////////////////////
// 16x16 icon bitmap matrix
////////////////////////////////////////////////////

#define GET_ICON(A) ICON_BITMAP_##A

//----- Change below count if you added new icon
#define ICON_ARRAY_SIZE 65

const unsigned char PROGMEM ICON_BITMAP_1[] = {
   
   
0x00,0x00,
0x00,0x00,
0x04,0x40,
0x07,0xc0,
0x0f,0xe0,
0x0b,0xa0,
0x1f,0xf0,
0x00,0x00,
0x5f,0xf4,
0x5f,0xf4,
0x5f,0xf4,
0x5f,0xf4,
0x1f,0xf0,
0x0c,0x60,
0x0c,0x60,
0x00,0x00
};
const unsigned char PROGMEM ICON_BITMAP_2[] = {
   
   
0x00,0x00,
0x00,0x00,
0x03,0x80,
0x06,0xc0,
0x03,0x80,
0x03,0x80,
0x03,0x80,
0x1f,0xf0,
0x03,0x80,
0x03,0x80,
0x43,0x84,
0x63,0x8c,
0x77,0xdc,
0x3f,0xf8,
0x1c,0x70,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_3[] = {
   
   
0x00,0x00,
0x00,0x00,
0x00,0xc0,
0x01,0xc0,
0x01,0x80,
0x1d,0x70,
0x3f,0xf8,
0x7f,0xf0,
0x7f,0xe0,
0x7f,0xe0,
0x7f,0xe0,
0x7f,0xf0,
0x3f,0xf8,
0x1f,0xf0,
0x0e,0xe0,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_4[] = {
   
   
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x5a,0xac,
0x5a,0xac,
0x5a,0xac,
0x5a,0xac,
0x5a,0xac,
0x5a,0xac,
0x02,0x08,
0x56,0xa8,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_5[] = {
   
   
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x3f,0xfc,
0x20,0x04,
0x6d,0xb4,
0x6d,0xb4,
0x6d,0xb4,
0x20,0x04,
0x3f,0xfc,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_6[] = {
   
   
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x3f,0xfc,
0x20,0x04,
0x61,0xb4,
0x61,0xb4,
0x61,0xb4,
0x20,0x04,
0x3f,0xfc,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_7[] = {
   
   
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x3f,0xfc,
0x20,0x04,
0x60,0x34,
0x60,0x34,
0x60,0x34,
0x20,0x04,
0x3f,0xfc,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_8[] = {
   
   
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x3f,0xfc,
0x20,0x04,
0x60,0x04,
0x60,0x04,
0x60,0x04,
0x20,0x04,
0x3f,0xfc,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_9[] = {
   
   
0x00,0x00,
0x00,0x00,
0x7f,0xfc,
0x40,0xe4,
0x70,0xe4,
0x40,0xe4,
0x70,0xe4,
0x40,0xe4,
0x70,0xa4,
0x40,0x04,
0x70,0x04,
0x40,0x04,
0x70,0x04,
0x40,0x04,
0x7f,0xfc,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_10[] = {
   
   
0x00,0x00,
0x00,0x00,
0x7f,0xfc,
0x7f,0xfc,
0x7f,0xfc,
0x40,0x04,
0x44,0xe4,
0x4d,0xb4,
0x5d,0xb4,
0x4d,0xb4,
0x4d,0xb4,
0x4d,0xb4,
0x5e,0xe4,
0x40,0x04,
0x7f,0xfc,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_11[] = {
   
   
0x00,0x00,
0x00,0x00,
0x03,0x80,
0x07,0x80,
0x0f,0x80,
0x0f,0x80,
0x0d,0x80,
0x0c,0x00,
0x0c,0x00,
0x0c,0x10,
0x0d,0xa8,
0x0f,0xa8,
0x0f,0x90,
0x07,0xec,
0x03,0x80,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_12[] = {
   
   
0x00,0x00,
0x00,0x00,
0x3f,0xf8,
0x7f,0xcc,
0x7f,0xcc,
0x7d,0xcc,
0x7f,0xfc,
0x7c,0x7c,
0x49,0x24,
0x4a,0xa4,
0x49,0x24,
0x44,0x44,
0x53,0x84,
0x40,0x04,
0x3f,0xf8,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_13[] = {
   
   
0x00,0x00,
0x00,0x00,
0x30,0x06,
0x38,0x0e,
0x1c,0x1c,
0x0e,0x38,
0x07,0x70,
0x03,0xe0,
0x01,0xc0,
0x03,0xe0,
0x07,0x70,
0x0e,0x38,
0x1c,0x1c,
0x38,0x0e,
0x30,0x06,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_14[] = {
   
   
0x00,0x00,
0x00,0x00,
0x1f,0xf0,
0x3f,0xf8,
0x3f,0xf8,
0x77,0xdc,
0x63,0x8c,
0x63,0x8c,
0x7e,0xfc,
0x3c,0x78,
0x1c,0x70,
0x0f,0xe0,
0x0f,0xe0,
0x0a,0xa0,
0x0a,0xa0,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_15[] = {
   
   
0x00,0x00,
0x00,0x00,
0x04,0x40,
0x04,0x40,
0x1f,0xf0,
0x10,0x10,
0x14,0x50,
0x70,0x1c,
0x47,0xc4,
0x40,0x04,
0x70,0x1c,
0x10,0x10,
0x17,0xd0,
0x24,0x48,
0x3c,0x78,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_16[] = {
   
   
0x00,0x00,
0x00,0x00,
0x01,0x00,
0x03,0x00,
0x1f,0xf0,
0x10,0x10,
0x14,0x50,
0x71,0x1c,
0x43,0x84,
0x41,0x04,
0x71,0x1c,
0x10,0x90,
0x17,0xd0,
0x24,0x48,
0x3c,0x78,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_17[] = {
   
   
0x00,0x00,
0x00,0x00,
0x20,0x08,
0x30,0x18,
0x1f,0xf0,
0x10,0x10,
0x14,0x50,
0x70,0x1c,
0x47,0xc4,
0x45,0x44,
0x72,0x9c,
0x10,0x10,
0x17,0xd0,
0x24,0x48,
0x3c,0x78,
0x00,0x00
}; 
const unsigned char PROGMEM ICON_BITMAP_18[] = {
   
   
0x00,0x00,
0x00,0x00,
0x60,0x0c,
0x1f,0xf0,
0x10,0x10,
0x10,0x10,
0x14,0x50,
0x70,0x1c
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gcc future.c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值