起初,上帝创造了天地。还有人类。人类创造了数字厨房定时器,就像这个。
人类说,酷但有点惨淡。让我们做一个更好的!
上帝说,我听到了你的呼唤,让 Arduinos 出现吧:地球上到处都是 Arduinos,这很好。
人类拿了一个 Arduino 并创造了一个更好的厨房定时器,就像这个。
上帝看到新的厨房计时器说:我看到了你的新厨房计时器,它看起来很糟糕,但似乎太有趣了!而这是好的。
你需要什么
既然您知道这一切的来源,让我们深入探讨一下。
我使用的所有组件都来自Arduino 入门套件,包括您在图片和视频中看到的小面包板。如果您愿意,可以随意将项目纳入更大的项目。
您还需要一个电源:在玩耍时,PC 的 USB 端口和电缆就足够了。
你需要做什么
首先:请从入门套件或您喜欢的组件箱中收集所有需要的组件;如果你没有,不要惊慌。互联网上有很多。您可以在下面找到组件列表。
而且,你也需要代码。它在它的盒子里,又在下面。
这个怎么运作
基本上,就像任何其他类似设备一样,您可以在您附近的任何商店花一美元购买。但是,这是你的。这将向您展示这些小工具实际上是如何工作的。
这里的关键字是:当前模式。计时器本身一次只能以四种模式中的一种运行:
编码
首先,我们需要包含适当的库:
如果您还没有它们,则需要下载并安装它们:
接下来,让我们初始化那个漂亮的 LCD 模块:
请随意随意打乱引脚以获得良好的布线布局:不要跟着我这样做,因为我做了一个糟糕的布线计划!:D 例如,您可以反转上述语句中的后四个引脚,以避免在下面的示意图中看到黄色电线交叉(显然,您必须相应地调整按钮引脚常数,见下文)。玩,玩得开心!在复制/粘贴之后,Arduinos 的生活就开始了!
接下来的 51 行代码包含静态变量声明和初始化。请随意浏览它们,它们清晰的名称和一些零散的评论将引导您了解整个事情。
setup() 函数执行您已经在任何 Arduino 草图中看到无数次的通常的初步步骤。唯一值得注意的是第一个语句,它将设置初始 LCD 显示光标的位置。因为,是的:这个模块要求你沿着它的行和列设置一个位置,然后“打印”一些东西,它会从那个位置开始出现。
现在让我们转到 loop() 函数。
首先,让我们发现开关状态。为了实现这一点,几乎每一个都使用了以下代码块:
针对相关引脚发出 digitalRead 并将结果与先前读取的值进行比较:如果发生变化,则存储新值以供将来参考,如果按下按钮,则 bool "xxxButtonPressed" 静态变量设置为 true。
查看下面的威廉希尔官方网站 图,您会注意到每个输入引脚都被一个 10k 电阻器强制为低电平,除非按下相应的开关并且引脚本身直接连接到 +5V。一个相当经典的场景,嗯?
之前,我说“几乎每个”都是因为有一个按钮的作用与其他按钮不同:S4。它的代码块能够检测到上述长按以进入 SETUP 模式。
接下来是模式管理块切换:每个案例查看按钮状态触发器(“xxxButtonPressed”)并将流重定向到正确的新状态,或执行正确的操作。
前面的代码片段显示了 IDLE 模式的管理方式,并且一目了然。另一个示例显示了在响铃时按下任何按钮将如何停止响铃:
下一个块 - “时间管理” - 执行实际的时间差计算,触发 RINGING 模式并在需要时实际响铃。
最后一个块——“LCD 管理”——通过在适当的位置打印适当的字符串来管理每种模式的 LCD 显示。
就是这样。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !