我要做一个蠕动泵的工作记录(一),用arduino mega2560 自主编程以 reprap 12864 LCD 作显示

arduino mega2560 与  LCD12864(RepRapDiscount_Full_Graphic_Smart_Controller) 是3D打印机的配套使用的硬件,直接下载马林固件就可以使用了。

我想做一个多头蠕动泵,arduino mega2560可以驱动六轴步进电机,加上  LCD12864是一套好选择的硬件,

我是一个新手,现在叫萌新。但我必须全部自主编程。

我要让mega2560 驱动 RepRap LCD12864 并显示。

硬件是这样的,见下图1。


图1


由于手快拆掉忘记了二者的连接,经过多次测试,二者的连线如下,EXP1对EXP1,见下图2


图2

问题不少。

1、百度认为用u8glib可以驱动显示12864LCD,但需要对应12864LCD的芯片行进SETUP,百度没有指出RepRap的Smart_Controller是用是什么厂家的芯片。

2、幸好在GOOGLE的搜到的E文网站有老外指出了,这东西用这代码就可以驱动显示了。  U8GLIB_ST7920_128X64_1X u8g(23, 17, 16);

别少看这句代码,翻了百度数页也找不到。


首先用arduino 的管理库下载U8glib的库文件,选择U8glib 目前是Oliver的1.19.1版本,见下图3


图3


全部亲测可执行的代码如下:

#include "U8glib.h"

U8GLIB_ST7920_128X64_1X u8g(23, 17, 16);

// draw函数用于包含实现显示内容的语句
void draw() {
  // 设置字体
u8g.setFont(u8g_font_unifont);
  // 设置文字及其显示位置
  u8g.drawStr( 0, 20, "Hello Arduino");
}

void setup() {
  // put your setup code here, to run once:
  // u8glib图片循环结构:
  u8g.firstPage();  
  do {
    draw();
  } 
while( u8g.nextPage() );
  // 等待一定时间后重绘
  delay(500);
}

void loop() {
  // put your main code here, to run repeatedly:
  
}
显示效果如下图4:

图4


使用u8glib在LCD12864让编程教科书上的HELLO出现了。

第一步完成,用时一整晚。

下一步,我的蠕动泵控制界面,需要做一个菜单。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
连接Arduino Mega2560、MAX30102和OLED 12864的方法如下: 1. 连接MAX30102模块和Arduino Mega2560板 - VCC引脚连接到Arduino Mega2560板的5V引脚 - GND引脚连接到Arduino Mega2560板的GND引脚 - SDA引脚连接到Arduino Mega2560板的SDA引脚(20号引脚) - SCL引脚连接到Arduino Mega2560板的SCL引脚(21号引脚) 2. 连接OLED 12864Arduino Mega2560板 - VCC引脚连接到Arduino Mega2560板的5V引脚 - GND引脚连接到Arduino Mega2560板的GND引脚 - SDA引脚连接到Arduino Mega2560板的SDA引脚(20号引脚) - SCL引脚连接到Arduino Mega2560板的SCL引脚(21号引脚) 3. 编写代码 - 引入MAX30105和Adafruit_SSD1306库 - 初始化MAX30102模块和OLED 12864 - 读取MAX30102模块的数据,将数据显示在OLED 12864上 示例代码如下: ``` #include <Wire.h> #include "MAX30105.h" #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED显示屏宽度 #define SCREEN_HEIGHT 64 // OLED显示屏高度 MAX30105 particleSensor; Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { Serial.begin(9600); Wire.begin(); particleSensor.begin(Wire, I2C_SPEED_FAST); particleSensor.setup(); particleSensor.setPulseAmplitudeRed(0x0A); particleSensor.setPulseAmplitudeGreen(0); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); } void loop() { uint32_t ir, red; float bpm; int32_t spo2; particleSensor.getIR(&ir); particleSensor.getRed(&red); bpm = particleSensor.getHeartRate(); spo2 = particleSensor.getSpO2(); display.clearDisplay(); display.setTextSize(1); display.setCursor(0,0); display.print("Heart Rate: "); display.print(bpm); display.setCursor(0,10); display.print("SpO2: "); display.print(spo2); display.display(); Serial.print(ir); Serial.print(","); Serial.print(red); Serial.print(","); Serial.print(bpm); Serial.print(","); Serial.println(spo2); } ``` 注意:以上代码仅供参考,具体实现需要根据具体情况进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值