本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于Arduino 和 OLED 显示器的太空垃圾游戏

发布时间:2021-08-18
分享到:

基于Arduino 和 OLED 显示器的太空垃圾游戏

发布时间:2021-08-18
分享到:

亲爱的朋友们,在本教程中,我们将构建一个 Arduino 驱动的游戏。这是经典的太空垃圾游戏!

硬件组件

  • 阿杜诺UNO×1(或者任何其他像 Attiny85 这样的 Arduino 兼容微控制器就足够了)
  • OLED 显示屏 128x64×1  ( i2c 和 SPI 都可以工作)
  • 按钮开关 12mm ×3(SparkFun 按钮开关 12mm)
  • 电阻 10k 欧姆× 3    
  • 通用印刷电路板×1( 或者你可以在面包板上制作)
  • 母头 8 位 1 排 (0.1") ×1    
  • 公头 40 位置 1 排 (0.1") ×1    
  • 4xAA 电池座×1  

软件应用程序和在线服务    
Arduino IDE

手动工具和制造机器

  • 烙铁(通用)
  • 焊锡丝,无铅

欢迎使用Pi BOTS MakerHub。今天我们将使用Arduino 和 OLED 显示器制作游戏。

我建议使用具有 I2C 或 SPI 通信的 128x64 像素 OLED 显示器,以及更小的 Arduino(如 PRO Mini)。但是我使用 Arduino UNO,因为由于COVID19无法购买组件。我们也可以使用ATtiny85制作这个游戏机。

第 1 步:获取所有零件
该项目非常简单且易于构建。构建此项目所需的部件如下:

  • Arduino UNO 或任何其他同等产品
  • OLED 显示屏 128x64
  • 按钮
  • 10k 欧姆电阻
  • PCB或面包板
  • 公母连接器或跨接电缆

第 2 步:构建原型电路
连接非常简单。连接图如下。

连接 OLED显示器

  • 显示器的 Vcc 连接到 Arduino 的 5V 输出。
  • 显示器的 GND 连接到 Arduino GND 引脚。
  • 显示器的 SDA 引脚连接到 Arduino 的 A4 或 SDA 引脚。
  • 显示器的 SCL 引脚连接到 Arduino 的 A5 或 SCL 引脚。

连接按钮

  • Arduino D3的向上按钮
  • Arduino D4的向下按钮
  • Arduino D5 的点火按钮

第 3 步:编程 Arduino
在我们可以对 Arduino 进行编程之前,我们需要为 OLED 显示器安装U8G2 库。安装 U8G2 库并将代码上传到 Arduino 的步骤如下图所示。

第 4 步:观看我们的视频以确保您已正确完成

第 5 步 :电路原理图:

第 6 步 :Arduino代码:点击下载

在 Arduino IDE 中打开,安装 U8G2 库,然后上传

/*

  太空垃圾网

  通用 8 位图形库( https://github.com/olikraus/u8g2/ )

  版权所有( c )  2016 , olikraus@gmail.com
  版权所有。

  以源代码和二进制形式重新分发和使用,无论是否修改, 
  在满足以下条件的情况下是允许的:

  * 重新分发源代码必须保留上述版权声明,此列表 
    条件和以下免责声明。
    
  * 以二进制形式重新分发必须复制上述版权声明,这 
    文件和/或其他文件中的条件列表和以下免责声明 
    分发时提供的材料。

  本软件由版权持有人提供,并且 
  贡献者“按原样”和任何明示或暗示的保证, 
  包括但不限于对 
  特定用途的适销性和适用性 
  已拒绝。在任何情况下,版权持有人或 
  贡献者应对任何直接、间接、偶然、 
  特殊的、示范性的或间接的损害(包括但 
  不限于替代品或服务的采购; 
  使用、数据或利润的损失;或业务中断)但是 
  引起的和基于任何责任理论,无论是在合同中, 
  严格责任或侵权(包括疏忽或其他) 
  因使用本软件而以任何方式产生,即使 
  已告知此类损坏的可能性。  

*/

#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#万一
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#万一

// 请取消注释下面的构造器行之一
// U8g2 构造器列表(图片循环页面缓冲区)
//完整列表在这里:https://github.com/olikraus/u8g2/wiki/u8g2setupcpp
// 请根据您的设置更新引脚编号。如果未连接复位引脚,则
使用 U8X8_PIN_NONE
//U8G2_NULL u8g2 ( U8G2_R0 ) ;     // 空设备,一个 8x8 像素的显示器,什么都不做
// U8G2_SSD1306_128X64_NONAME_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 12 , /* dc = */ 4 , /* reset = */ 6 ) ;     // Arduboy (生产,Kickstarter 版)
//U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_SSD1306_128X64_NONAME_1_3W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* reset = */ 8 ) ;
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;
//U8G2_SSD1306_128X64_ALT0_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;    // 与 NONAME 变体相同,但可以解决“每 2 行被跳过”的问题
//U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* reset = */ 8 ) ;
//U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ SCL, /* data = */ SDA, /* reset = */ U8X8_PIN_NONE ) ;    // 没有重置显示的所有板
//U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 16 , /* data = */ 17 , /* reset = */ U8X8_PIN_NONE ) ;    // ESP32 Thing,纯软件模拟 I2C
//U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE, /* clock = */ 16 , /* data = */ 17 ) ;    // ESP32 Thing,带引脚重新映射的硬件 I2C
// U8G2_SSD1306_128X64_NONAME_1_6800 u8g2 ( U8G2_R0,13,11,2,3,4,5,6,A4,/ *使能= * / 7,/ * CS = * / 10,/ * DC = * / 9,/ *复位= */ 8 ) ;
// U8G2_SSD1306_128X64_NONAME_1_8080 u8g2 ( U8G2_R0,13,11,2,3,4,5,6,A4,/ *使能= * / 7,/ * CS = * / 10,/ * DC = * / 9,/ *复位= */ 8 ) ;
//U8G2_SSD1306_128X64_VCOMH0_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 与 NONAME 变体相同,但最大化 setContrast ()范围
//U8G2_SSD1306_128X64_ALT0_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 与 NONAME 变体相同,但可以解决“每 2 行被跳过”的问题
//U8G2_SH1106_128X64_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;
//U8G2_SH1106_128X64_VCOMH0_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;         // 与 NONAME 变体相同,但最大化 setContrast ()范围
//U8G2_SH1106_128X64_WINSTAR_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;         // 与 NONAME 变体相同,但使用更新的 SH1106 初始化序列
//U8G2_SH1106_72X40_WISE_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_SH1107_64X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_SH1107_128X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_SH1107_128X128_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;
//U8G2_SH1107_PIMORONI_128X128_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;
//U8G2_SH1107_SEEED_128X128_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ SCL, /* data = */ SDA, /* reset = */ U8X8_PIN_NONE ) ;
//U8G2_SH1107_SEEED_128X128_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;
//U8G2_SH1107_SEEED_96X96_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_SH1108_160X160_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_SH1122_256X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 // 在 u8g2.h 中启用 U8G2_16BIT
//U8G2_SSD1306_128X32_UNIVISION_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 21 , /* data = */ 20 , /* reset = */ U8X8_PIN_NONE ) ;    // Adafruit Feather M0 Basic Proto + FeatherWing OLED
//U8G2_SSD1306_128X32_UNIVISION_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ SCL, /* data = */ SDA, /* reset = */ U8X8_PIN_NONE ) ;    // Adafruit Feather ESP8266/32u4 板 + FeatherWing OLED
//U8G2_SSD1306_128X32_UNIVISION_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;    // Adafruit ESP8266/32u4/ARM 板 + FeatherWing OLED
//U8G2_SSD1306_128X32_UNIVISION_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE, /* clock = */ SCL, /* data = */ SDA ) ;    // 使用 ESP8266 HW I2C 重新映射引脚
//U8G2_SSD1306_128X32_WINSTAR_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE, /* clock = */ SCL, /* data = */ SDA ) ;    // 使用 ESP8266 HW I2C 重新映射引脚
//U8G2_SSD1306_64X48_ER_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;    // EastRising 0 .66 " OLED 分线板,Uno:A4=SDA,A5=SCL,5V 供电
//U8G2_SSD1306_48X64_WINSTAR_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);   
//U8G2_SSD1306_64X32_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
//U8G2_SSD1306_64X32_1F_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
//U8G2_SSD1306_96X16_ER_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); // EastRising 0.69" OLED 
// U8G2_SSD1322_NHD_256X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // 在 u8g2.h 中启用 U8G2_16BIT
//U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 在 u8g2.h 中启用 U8G2_16BIT
// U8G2_SSD1322_NHD_128X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1322_NHD_128X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD1325_NHD_128X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1325_NHD_128X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD0323_OS128064_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD0323_OS128064_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD1326_ER_256X32_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );          //实验司机为ER-OLED018-1
//U8G2_SSD1327_SEEED_96X96_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ SCL, /* data = */ SDA, /* reset = */ U8X8_PIN_NONE ) ;     // Seeedstudio Grove OLED 96x96
//U8G2_SSD1327_SEEED_96X96_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;     // Seeedstudio Grove OLED 96x96
// U8G2_SSD1327_EA_W128128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1327_EA_W128128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_SSD1327_EA_W128128_1_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 5 , /* data = */ 4 , /* reset = */ U8X8_PIN_NONE ) ;
//U8G2_SSD1327_EA_W128128_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ;
// U8G2_SSD1327_MIDAS_128X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1327_MIDAS_128X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD1327_WS_128X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1327_WS_128X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD1329_128X96_NONAME_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1329_128X96_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD1305_128X32_NONAME_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1305_128X32_NONAME_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD1305_128X32_ADAFRUIT_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1305_128X32_ADAFRUIT_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD1305_128X64_ADAFRUIT_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_SSD1305_128X64_ADAFRUIT_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_SSD1309_128X64_NONAME0_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );  
//U8G2_SSD1309_128X64_NONAME0_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
// U8G2_SSD1309_128X64_NONAME2_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );  
//U8G2_SSD1309_128X64_NONAME2_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
//U8G2_SSD1316_128X32_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
//U8G2_SSD1316_128X32_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     
//U8G2_SSD1317_96X96_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;   // 未测试,未确认
//U8G2_SSD1317_96X96_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;      // 未测试,未确认
//U8G2_SSD1318_128X96_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
//U8G2_SSD1318_128X96_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     
//U8G2_LD7032_60X32_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 11 , /* data = */ 12 , /* cs = */ 9 , /* dc = */ 10 , /* reset = */ 8 ) ;     // SW SPI纳米板
//U8G2_LD7032_60X32_1_4W_SW_I2C u8g2 ( U8G2_R0, /* clock = */ 11 , /* data = */ 12 , /* reset = */ U8X8_PIN_NONE ) ;     // 未测试!
// U8G2_UC1701_EA_DOGS102_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_UC1701_EA_DOGS102_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_PCD8544_84X48_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 诺基亚5110显示器
//U8G2_PCD8544_84X48_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                         // 诺基亚5110显示器
//U8G2_PCF8812_96X65_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;     // 也可以是 PCF8814
//U8G2_PCF8812_96X65_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                         // 也可以是 PCF8814
//U8G2_HX1230_96X68_1_3W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* reset = */ 8 ) ;
//U8G2_HX1230_96X68_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_KS0108_128X64_1 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * DC = * / 17,/ * CS0 = * / 14,/ * CS1 = */ 15 , /*cs2 = */ U8X8_PIN_NONE, /*重置= */ U8X8_PIN_NONE ) ;      // 将 R/W 设置为低!
// U8G2_KS0108_ERM19264_1 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * DC = * / 17,/ * CS0 = * / 14,/ * CS1 = */ 15 , /*cs2 = */ 16 , /*重置= */ U8X8_PIN_NONE ) ;      // 将 R/W 设置为低!
// U8G2_ST7920_192X32_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / U8X8_PIN_NONE,/ * DC = * / 17,/ *复位= */ U8X8_PIN_NONE ) ;
//U8G2_ST7920_192X32_1_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 18 /* A4 */ , /* data = */ 16 /* A2 */, /* CS = */ 17 /* A3 */, /* reset = */ U8X8_PIN_NONE ) ;
// U8G2_ST7920_128X64_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18 / * A4 * /,/ * CS = * / U8X8_PIN_NONE,/ * DC / RS = */ 17 /* A3 */, /*reset = */ 15 /* A1 */ ) ;     // 记得将R/W设置为0 
//U8G2_ST7920_128X64_1_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 18 /* A4 */ , /* data = */ 16 /* A2 */, /* CS = */ 17 /* A3 */, /* reset = */ U8X8_PIN_NONE ) ;
//U8G2_ST7920_128X64_1_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* CS = */ 10 , /* reset = */ 8 ) ;
//U8G2_ST7920_128X64_1_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 14 , /* data = */ 13 , /* CS = */ 15 , /* reset = */ 16 ) ; // Feather HUZZAH ESP8266, E =时钟= 14 , RW =数据= 13 , RS = CS
//U8G2_ST7920_128X64_1_HW_SPI u8g2 ( U8G2_R0, /* CS = */ 10 , /* reset = */ 8 ) ;
//U8G2_ST7920_128X64_1_HW_SPI u8g2 ( U8G2_R0, /* CS = */ 15 , /* reset = */ 16 ) ; // Feather HUZZAH ESP8266, E =时钟= 14 , RW =数据= 13 , RS = CS
// U8G2_ST7565_EA_DOGM128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST7565_EA_DOGM128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_ST7565_64128N_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_ST7565_64128N_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_ST7565_EA_DOGM132_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ PIN_ONE ) ;     // DOGM132 盾牌
//U8G2_ST7565_EA_DOGM132_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ U8X8_PIN_NONE ) ;     // DOGM132 盾牌
// U8G2_ST7565_ZOLEN_128X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST7565_ZOLEN_128X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_ST7565_LM6059_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;         // Adafruit ST7565 GLCD
//U8G2_ST7565_LM6059_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;             // Adafruit ST7565 GLCD
//U8G2_ST7565_LX12864_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
//U8G2_ST7565_LX12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_ST7565_ERC12864_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST7565_ERC12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_ST7565_ERC12864_ALT_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); //对比度改进版的ERC12864
//U8G2_ST7565_ERC12864_ALT_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ; //对比度改进版的ERC12864
// U8G2_ST7565_NHD_C12832_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST7565_NHD_C12832_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_ST7565_NHD_C12864_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST7565_NHD_C12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_ST7565_JLX12864_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST7565_JLX12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_ST7567_PI_132X64_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 7,/ * DC = * / 9,/ *复位= * / 8 );   // Pax Instruments Shield, LCD_BL = 6
//U8G2_ST7567_PI_132X64_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 7 , /* dc = */ 9 , /* reset = */ 8 ) ;   // Pax Instruments Shield, LCD_BL = 6
// U8G2_ST7567_JLX12864_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 7,/ * DC = * / 9,/ *复位= * / 8 );  
//U8G2_ST7567_JLX12864_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 7 , /* dc = */ 9 , /* reset = */ 8 ) ;  
// U8G2_ST7567_ENH_DG128064_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); 
//U8G2_ST7567_ENH_DG128064_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ; 
// U8G2_ST7567_ENH_DG128064I_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); 
//U8G2_ST7567_ENH_DG128064I_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ; 
//U8G2_ST7567_64X32_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ U8X8_PIN_NONE ) ; 
// U8G2_ST75256_JLX172104_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST75256_JLX172104_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_ST75256_JLX19296_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST75256_JLX19296_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;
// U8G2_ST75256_JLX256128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
//U8G2_ST75256_JLX256128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
// U8G2_ST75256_WO256X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
//U8G2_ST75256_WO256X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
//U8G2_ST75256_JLX256128_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 9 , /* data = */ 8 , /* cs = */ 7 , /* dc = */ 6 , /* reset = */ 5 ) ;   // MKR零,使能U8g2 16位模式对于该显示
//U8G2_ST75256_JLX256128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 7 , /* dc = */ 6 , /* reset = */ 5 ) ;   // MKR零,使能U8g2 16位模式对于该显示
// U8G2_ST75256_JLX256160_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
//U8G2_ST75256_JLX256160_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
// U8G2_ST75256_JLX256160M_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
//U8G2_ST75256_JLX256160M_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
// U8G2_ST75256_JLX256160_ALT_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
//U8G2_ST75256_JLX256160_ALT_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
// U8G2_ST75256_JLX240160_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
//U8G2_ST75256_JLX240160_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;    
//U8G2_ST75256_JLX25664_1_2ND_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;     //由于,第二I2C,使U8g2 16位模式对于该显示
// U8G2_ST75320_JLX320240_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //乌诺,启用U8g2 16位模式对于该显示
//U8G2_ST75320_JLX320240_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;                 //乌诺,启用U8g2 16位模式对于该显示
// U8G2_NT7534_TG12864R_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );  
//U8G2_NT7534_TG12864R_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
//U8G2_ST7588_JLX12864_1_SW_I2C u8g2 ( U8G2_R0, /*时钟= */ SCL, /*数据= */ SDA, /*复位= */ 5 ) ;  
//U8G2_ST7588_JLX12864_1_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 5 ) ;
// U8G2_IST3020_ERC19264_1_6800 u8g2 ( U8G2_R0,44,43,42,41,40,39,38,37,/ *使能= * / 28,/ * CS = * / 32,/ * DC = * / 30,/ *复位= */ 31 ) ; // 将 WR 引脚与 GND 连接
// U8G2_IST3020_ERC19264_1_8080 u8g2 ( U8G2_R0,44,43,42,41,40,39,38,37,/ *使能= * / 29,/ * CS = * / 32,/ * DC = * / 30,/ *复位= */ 31 ) ; // 将 RD 引脚与3 .3V
连接
// U8G2_IST3020_ERC19264_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );
// U8G2_LC7981_160X80_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将 RW 与 GND 连接
// U8G2_LC7981_160X160_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将 RW 与 GND 连接
// U8G2_LC7981_240X128_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将 RW 与 GND 连接
// U8G2_LC7981_240X64_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将 RW 与 GND 连接
// U8G2_SED1520_122X32_1 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ * DC = * / A0,/ * E1 = * / A3,/ * E2 = * / A2,/ *复位= */ A4 ) ;      // 将 R/W 设置为低!
// U8G2_T6963_240X128_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
// U8G2_T6963_256X64_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
// U8G2_T6963_160X80_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
// U8G2_T6963_128X64_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
// U8G2_T6963_128X64_ALT_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能/ WR = * / 17,/ * CS / CE = * / 14,/ * DC = * / 15 , /* 重置= */ 16 ) ; // RD 接+5V,FS0 和 FS1 接GND
// U8G2_SED1330_240X128_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 17,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将/RD = E 与+5V 连接,使能是/WR = RW,FG 与GND,14 = Uno 引脚A0
// U8G2_SED1330_240X128_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 17,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // A0 是直流引脚,/WR =  RW  = GND,使能是 /RD = E
// U8G2_RA8835_NHD_240X128_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 17,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // 将/RD = E 与+5V 连接,使能是/WR = RW,FG 与GND,14 = Uno 引脚A0
// U8G2_RA8835_NHD_240X128_1_6800 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 17,/ * CS = * / 14,/ * DC = * / 15,/ *复位= */ 16 ) ; // A0 是直流引脚,/WR =  RW  = GND,使能是 /RD = E
//U8G2_UC1601_128X32_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ; 
//U8G2_UC1601_128X32_1_3W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* reset = */ 8 ) ;
// U8G2_UC1604_JLX19264_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); 
//U8G2_UC1604_JLX19264_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;  
// U8G2_UC1608_ERC24064_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );   // SW SPI,由于 ERC24064-1 测试设置
// U8G2_UC1608_ERC240120_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 ); 
// U8G2_UC1608_240X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );   // SW SPI,由于 ERC24064-1 测试设置
//U8G2_UC1610_EA_DOGXL160_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ PIN U8ONE ) ;
//U8G2_UC1610_EA_DOGXL160_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ 9 , /* reset = */ U8X8_PIN_NONE ) ;
//U8G2_UC1611_EA_DOGM240_1_2ND_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;     // 由于,第二个 I2C,DOGM240 测试板
// U8G2_UC1611_EA_DOGM240_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );    // SW SPI,由于 DOGXL240 测试板
//U8G2_UC1611_EA_DOGXL240_1_2ND_HW_I2C u8g2 ( U8G2_R0, /* reset = */ 8 ) ;     // 由于,第二个 I2C,DOGXL240 测试板
// U8G2_UC1611_EA_DOGXL240_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );    // SW SPI,由于 DOGXL240 测试板
// U8G2_UC1611_EW50850_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 3,/ * DC = * / 16,/ *复位= */ 17 ) ; // 240x160,将 RD/WR1 引脚与3 .3V 连接,CS 为高电平
// U8G2_UC1611_CG160160_1_8080 u8g2 ( U8G2_R0,8,9,10,11,4,5,6,7,/ *使能= * / 18,/ * CS = * / 3,/ * DC = * / 16,/ *复位= */ 17 ) ; // 将 WR1 和 CD1 引脚与3 .3V 连接,将 CS0 与 cs 连接,WR0 与使能连接,CD 与直流连接
//U8G2_UC1638_160X128_1_4W_HW_SPI u8g2 ( U8G2_R2, /* cs = */ 2 , /* dc = */ 3 , /* reset = */ 4 ) ;   // 未测试 
//U8G2_SSD1606_172X72_1_4W_SW_SPI u8g2 ( U8G2_R0, /* clock = */ 13 , /* data = */ 11 , /* cs = */ 10 , /* dc = */ 9 , /* reset = */ 8 ) ;         // 电子墨水/电子纸显示
// U8G2_SSD1607_200X200_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // eInk/ePaper Display,来自嵌入式艺术家的原始 LUT
// U8G2_SSD1607_GD_200X200_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // 良好的显示
// U8G2_SSD1607_WS_200X200_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // 波共享
// U8G2_IL3820_296X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     // bottom我2 0.9英寸EINK /电子纸显示,使 16位模式对于该显示!
// U8G2_IL3820_V2_296X128_1_4W_SW_SPI u8g2 ( U8G2_R0,/ *时钟= * / 13,/ *数据= * / 11,/ * CS = * / 10,/ * DC = * / 9,/ *复位= * / 8 );     //电子纸显示,较小的闪烁和更快的速度,使 16位模式对于该显示!
//U8G2_LS013B7DH03_128X128_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ U8X8_PIN_NONE, /* reset = */ 8 ) ;     //没有直流线用于该显示
//U8G2_LS027B7DH01_400X240_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ U8X8_PIN_NONE, /* reset = */ 8 ) ;     //没有直流线用于该显示
//U8G2_LS013B7DH05_144X168_1_4W_HW_SPI u8g2 ( U8G2_R0, /* cs = */ 10 , /* dc = */ U8X8_PIN_NONE, /* reset = */ 8 ) ;     //没有直流线用于该显示
// U8G2_ST7511_AVD_320X240_1_8080 u8g2 ( U8G2_R0,13,11,2,3,4,5,6,A4,/ *使能/ WR = * / 7,/ * CS = * / 10,/ * DC = * / 9,/ *重置= */ 8 ) ; // 启用 U8g2 16Bit 模式并将 RD 引脚连接到3 .3V/5V
// 构造函数列表结束
/ *按钮设置为Arduboy生产* /
uint8_t pin_up  =  3 ;
uint8_t pin_down  =  4 ;
uint8_t pin_fire  =  5 ;
#define ST_FP 4

/* 对象类型 */
结构体_st_ot_struct
{
  /* 
    导弹和​​命中: 
      位0 : 玩家导弹和垃圾
      位1:垃圾,可能会击中玩家
  */
...

此文件已被截断,请下载以查看其完整内容。

最后:补充说明
我真的很喜欢这个项目。因为它真的很容易建造而且价格低廉。当然,还有改进的余地。我们可以通过使用像Attiny85这样的板来减小这个控制台的尺寸。此外,我们可以添加一个 3D 外壳,使这款酷炫的游戏机外观漂亮,并方便访问。

我很想听听你对这个项目的看法。你喜欢它的外观吗?你能想到这个项目的任何改进吗?请在下面的评论部分发表您的评论。谢谢。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论