第1步:材料
对于这个项目,我使用了以下组件:
- Arduino Nano
- 4针OLED LCD屏幕(背光)
- 10K欧姆电阻
- 4针按钮
- 电线
- 3D打印机
步骤2:设置OLED屏幕
我首先确保屏幕工作并且可以通过Arduino很好地控制 - 我开始使用常规尺寸模型并最终缩小使用Arduino Nano,希望设计更加紧凑。
如图所示,屏幕的四个引脚应连接到Arduino,如下所示:
VCC - 》 5V电源
GND - 》 GND
SCL - 》 A5
SDA - 》 A4
然后可以使用芯片控制屏幕。可以在https://randomnerdtutorials.com/guide-for-oled-display-with-arduino/找到一些基本的入门代码。 Adafruit GFX和SSD1306库是必需的,并且包含了使屏幕工作的繁重工作,因此在Arduino IDE中实现简单的内置模式或文本显示相对简单。
步骤3:添加按钮
我希望此设备具有交互性,因此我在其设置中添加了一个按钮。这非常简单,我们只需将按钮上的一个引脚连接到Arduino的3.3V电源,另一端连接到其第二个数字输入。按钮也与10K欧姆电阻器串联接地。
一旦到位,Arduino就可以从按钮接收输入并在屏幕上显示结果。
第4步:编程
我已粘贴下面设备的代码。它只包含几个if循环,并定义一个里程变量,当按下按钮时,里程变量会增加并显示在屏幕上。我还包括延迟,因此如果按下按钮,它会更快地增加。
#include
#include
#include
//OLED显示TWI地址#define OLED_ADDR 0x3C
Adafruit_SSD1306显示(-1);
#if(SSD1306_LCDHEIGHT!= 64)#error(“高度不正确,请修复Adafruit_SSD1306.h!”); #endif
//常量不会改变。它们用于设置引脚号:const int buttonPin = 2;//按钮引脚的数量const int ledPin = 13;//LED引脚的编号
//变量将改变:int buttonState = 0;//用于读取按钮状态的变量int miles = 240;//计算里程数
void setup(){//将LED引脚初始化为输出:pinMode(ledPin,OUTPUT);//将按钮引脚初始化为输入:pinMode(buttonPin,INPUT);
//初始化并清除display display.begin(SSD1306_SWITCHCAPVCC,OLED_ADDR); display.clearDisplay(); display.display(); Serial.begin(9600);//更新显示所有上述图形display.display(); }
void loop(){//读取按钮值的状态:buttonState = digitalRead(buttonPin);
//检查是否按下了按钮。如果是,则buttonState为HIGH:if(buttonState == HIGH){//打开LED:digitalWrite(ledPin,HIGH);//增量里程变量display.clearDisplay();里程+ = 1;延迟(100); } else {//关闭LED:digitalWrite(ledPin,LOW); }
//检查鞋子是否太旧(超过250英里)if(miles》 250){display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,55); display.print(“新对的时间!”); } else {display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,55); display.print(“你很高兴!”); }//display field values//display Headers display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(5,0); display.print(“Miles Run:”);
display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(15,30); display.print(“”); display.print(英里);//display message display.display(); Serial.print(英里); }
步骤5:装置设备
为了使器件更小,我换成了Arduino Nano。这个代码都不需要改变,但是Arduino最近更换了他们的bootloader,所以如果你从中国购买一台带有CH34X芯片的廉价Nano,你可能需要下载一些驱动程序并使用旧的bootloader(这是一个选项) IDE)。我将组件直接焊接到芯片上,然后3D打印出一个可以在这里找到的小盒子。我在前面为屏幕切了一个洞,然后在侧面有两个小孔,用于充电线和按钮。因为这只是一个原型而且专注于电子功能,所以我用一些电工胶带将它们固定在一起,并用安全销固定在鞋子上。我试图通过将电池的正极引线连接到Arduino上的Vin和负极引线接地来切换到电池供电(使用9V)以使设备更便携。我包括一个与正极引线串联的拨动开关来控制电源。这首先工作,但由于某种原因,其他开关不起作用,屏幕偶尔会出现故障。我认为我发现的拨动开关可能有问题,但为了时间的缘故,我现在决定放弃电池的想法。
-
里程表
+关注
关注
1文章
15浏览量
9860
发布评论请先 登录
相关推荐
评论