在ATtiny13上观看

我喜欢发光时钟,当我需要另一个发光时钟时,我迅速将它们组装在ATtiny85面包板上,七段指示器TM1637和实时时钟DS1307。 但是,在组装过程中,我不再需要简化控制器的感觉。 事实证明这是事实。

免责声明

作者没有工程学背景,并且工作与微控制器无关,因为可以肯定的是,一切都一样。 此外,还没有优化能耗-我们的arduino还没有接受!

硬体


首先,我研究了可用的解决方案,但没有找到将两线式DS1307连接到ATtiny13的任何现成示例。 因为RTC已由三线DS1302代替。 显示器的连接又多了两条腿。 在复位的剩余半英尺处,有一个按钮,用于使用StackOverflow和一对电阻器设置时间。


元素的最终连接


连接图(来自staticmain

确实,从PB1和PB2微控制器(上部中央)的腿到功率正端还需要4.7-10K电阻,正负之间还有一个0.1μF电容器,但是在没有它们的情况下,它可以工作。

软件部分


ATtiny13的支脚数量不是唯一的问题。 可用内存也很小-只有1Kb,因此不适合使用现成的库。 解决方案是使用MicroCore软件包和用于TM1637的紧凑库。 没有找到DS1302,因此我不得不在存储库的基础上自己创建它。 生成的监视代码可在GitHub上获得

那些想重复的人的分步说明


  1. 零件清单
    • 单片机ATtiny13
    • 在TM1637上显示
    • 实时时钟DS1302
    • 石英在32768Hz
    • 纽扣
    • 一对1K和10K电阻
    • 3伏电池座
    • 面包板和跳线或电路板

    如果您使用Ali-Express,那么一切大约需要100卢布。
  2. 作为一名程序员-将示例中提供的带有ArduinoISP草图的Arduino上传到其中。 如果您像我一样使用Arduino Nano和引脚10-13进行连接,则需要取消注释第81行

    #define USE_OLD_STYLE_WIRING 

    在将草图加载到地面的两腿之间并抛弃Arduino之后,您需要在10mF处放置一个电容器,尽管有些缝合时没有它。


    通过略带灰尘的Arduino进行ATtiny13固件处理
  3. 为了使Arduino IDE可以与ATtiny13配合使用,将MicroCore的内容添加到%Program Files(x86)%/ Arduino / hardware文件夹中。 之后,在IDE的“工具”部分中,选择“ ATtiny13”板,其设置为:禁用BOD,启用LBO,Clock 9.6内部osc。




  4. Git源文件已经包含用于ds1302和TM1637的必需库,它们被配置为分别在引脚(请参见库头文件)和连接图片上工作,因此只需下载存储库并将clock.ino上传到ATtiny13。 固件将占用几乎所有可用空间。


    面包板上的组装设备。 绿点表示固件的ATtiny的安装位置(橙色加电源线很难看到)。
  5. 由于连接按钮的特殊性,不正确的电阻额定值和电源电压,可能有必要在clock.ino(第26行)中更改analogRead的响应阈值。
  6. 原计划使用LUT方法制造电路板,但是打印机在此过程中发生故障,因此对最终电路板的验证将无限期推迟,直到修复为止。

而不是结论


TM1637微电路控制一个七段指示器,具有两个引脚输出,其状态可以通过接口发送。 但是,它们在显示模块上没有分开,并且所用的库不支持它们。

通过在一块印刷电路板上放置微电路和微控制器,有可能选出一块更大的指示器板,但在我看来,在这种情况下,购买现成的板比较容易。 尽管对我来说,这可以成为一名优秀的无线电设计师。

Source: https://habr.com/ru/post/zh-CN448764/


All Articles