跑鞋里程表的制作

电子说

1.2w人已加入

描述

第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)以使设备更便携。我包括一个与正极引线串联的拨动开关来控制电源。这首先工作,但由于某种原因,其他开关不起作用,屏幕偶尔会出现故障。我认为我发现的拨动开关可能有问题,但为了时间的缘故,我现在决定放弃电池的想法。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分