可编程的每日计时器
我需要使用一个计时器, 为小型温室操作小型喷雾泵, 可编程如下:
1): 从几小时开始活跃, 全天几个小时.
2): 以可编程间隔激活.
3): 泵在特定时间内处于活动状态.
我把需要的东西扔在纸上:

市场上有带有编程器光盘的计时器,可以进行类似的编程, 但它们不如我所希望的那么准确, 例如我有一个步骤 15 分钟或 4 每小时选择一次. 不是我所需要的.
然后, 如之前提到, 纸和笔, 我开始定义构成计时器的主要部分.
PIC: 它被夸大了, 它有很多闪存, 但针脚数量足够: 久经考验的16F876运转良好.
液晶显示: 在最初, 我想到了经典的16×2 但后来我选择了16×4 完整显示设置的参数.
显然必须有一个时钟,即使在电源故障的情况下也能保持时间.
这是第一个问题: 我可以使用内部EEprom并为其写小时和分钟,但是当电源恢复时, 时间会错: 废弃的想法.
第二解决方案, 这是第一个问题…. 您将需要足够大的可充电电池,并伴有相关问题: 废弃的想法
在几年前的一个项目中, 我用过一块电池,可以使整个电路保持供电, 但在我看来情况并非如此: 电池组成 6 斯蒂罗1,5V, 他们没有很长的时间. 这个解决方案也是, 拒绝了.
我在抽屉里有一些RTC (实时时钟) 从未使用过的DS1307型, 是时候使用它们了.
为简单起见,我开始在网上寻找该RTC的使用示例,其中有很多: 但是,所有这些都具有时间和日历编程的特征, 它必须在程序中完成, 一旦完成, 这是第一个问题. 这是第一个问题.
建立了您需要的一切, 该项目开始成型.

经过大量研究SW和HW, 正如您从第一张照片中看到的, 这是实验性项目,从中将产生确定的和可行的版本. 我声明,多年来我已经不再制造印刷电路了,但我使用了非常舒适的底座 1000 孔.
施玛:

这是项目的主要方案.
很简单, 具有4MHz石英的PIC 16F876, 带有32768Hz晶体的RTC DS1307, 发生电源故障时可为RTC供电的CR2032锂电池, 七个按钮,用于各种功能,以及一个12V继电器,具有10 / 15A转换,可操作泵.
PIC将存储在内部EEprom中的所有程序精确地存储在开始的小时和分钟内, 这是第一个问题. 这是第一个问题. 所有这些都是通过输入 菜单2 用相关的按钮. 我指出, 用.hex文件对图片的Flash编程后, 因此,第一次使用, 这是第一个问题 必须 这是第一个问题.
内拉(Nella), 这是第一个问题. 为简单起见, 我可以在几分钟内计算出一切 (小时x 60 +分钟) 这是第一个问题. 从头开始, 从地址开始存储在EEprom中 16 (十进制) 这个值. 作为WORD变量 (2 字节数) 以下存储将在该位置进行 18 等等. 第二次记忆, 将包含先前的值, 这是第一个问题. 这是第一个问题:

从这些设置开始,定时器从 08:00 所有 22:30: 雾化每个 30 分钟 时间 10 分钟.

从租约可以看出 16 (10 在十六烷中) 我们将有第一个激活 480 分钟或小时 08:00 然后当然 10 这是第一个问题. 这是第一个问题 (租 18) 这是第一个问题 510 分钟或 08:30 每 10 分钟. 一直到最后一个值 1320 或者 22:00. 在此之后,计时器将被停用.
通过查看程序清单可以清楚地看到此信息。.
通过所有, Q1是允许继电器激活的晶体管, 一直到最后一个值. 一直到最后一个值. 请注意,在此阶段, PIC的电源必须由计时器电路提供,因为我不从PICKIT取电.
在图中,我没有显示LCD的电源: 它们如下:
销 1: GND
PIN2: VDD
PIN3 : 它必须连接到10Kohm修剪器的光标,该修剪器又连接在地和VDD之间: 调整字符的对比度.
我把达尔 7 人 10 (D0-D4), 它们必须接地或保持自由状态: 液晶显示器可与总线a一起使用 4 位.
让我们现在看看按钮:
从左边开始, 我们找到按钮 光 一直到最后一个值.
下面是按钮 TIMER 激活/禁用计时器: 国家, 一直到最后一个值. 一直到最后一个值, 继电器将永远不会被激活.
下面是按钮 手动的. 一直到最后一个值, 一直到最后一个值. 一直到最后一个值.
让我们继续两个按钮 + Ë – 在两个菜单的各种编程过程中使用的.
这 菜单2 该 设定计时器 允许您输入计时器时间的程序. 它以以下方式工作: 推荐它, 您可以访问START HOUR计时器的程序. 如果您不触摸按钮 + Ë – 再按一次menu2切换到START MINUTES计时器. 如果他们没有改变, 与menu2一起前进至STOP HOURS计时器. 如果你不改变, com menu2继续使用STOP MINUTES计时器. 使用menu2继续进行PUMP EVERY: . 这是致动的周期性,然后我们传递给PUMP PER: 这是泵开启的持续时间.
MENU2到此结束, 但我记得只有在加载PIC闪存后才第一次启动, EEProm为空,因此有必要用钥匙进行更改 + Ë – 一直到最后一个值. 一直到最后一个值, 所有设置都存储在EEprom中,包括从存储位置计算出的数据 16 一直到最后一个值. 一直到最后一个值.
该按钮保持不变 菜单1 该 设定时钟 用于设置DS1307的时钟和日历. 设置方法与菜单2中的设置方法相同. 一周的第一天, 然后是该月的某天, 月份,最后一年. 一直到最后一个值. 在这一点上, 按MENU1, 一直到最后一个值. 一直到最后一个值, 它的使用非常罕见.
在液晶屏上, 我们在第三和第四行的末尾还发现了另外两个符号: 星号 * 表示 一直到最后一个值. A出现在第四行 # 指示活动的继电器,例如容器前面的红色LED和出口附近的红色LED (D4).

这是电源, 简单且经过过滤,因为它通过继电器给泵送水.
剩下, 我连接12V 5A电源时有12Vdc输入. 它持续两种方式, 首先通过6.3A保险丝和继电器 (这是PIC的命令). 下面是几个FAST二极管,试图尽可能消除泵启动所产生的干扰. D2是TO220中的双二极管,而D3我将其直接连接到输出连接器. LED D4, 用来表示其点火, 实际上F1保险丝没有损坏. 激活继电器的指示, A出现在第四行. A出现在第四行, 从D1开始,并通过配有小型散热器的LM7805为整个电路提供5VDC. 值得注意的是,在泵启动时,存在D1和C3组, A出现在第四行.
软件:
至于我使用的软件 质子基本 因为我已经了解了很多基本知识, 自ZX80以来, ZX81, 光谱, QL, Qbasic适用于Dos,Visual Basic适用于Windows
您可以从以下链接下载 基本文件 只需将其复制到PROTON的空白页面并填写.
生成的.hex文件, 它将与pickit2或pickit3或您选择的其他设备一起加载到PIC中.
质子是一个很好的程序, 我已经使用了很短的时间,但是我总是发现有趣的功能: 允许将它免费用于不同类型的PIC,包括16F876. A出现在第四行, 更不用说编译器比其他编译器占用更少的闪存,并且执行速度更快: A出现在第四行.
A出现在第四行. A出现在第四行, A出现在第四行. A出现在第四行. A出现在第四行 主要的 A出现在第四行. A出现在第四行, 该子称为 在里面 在此部分初始化寄存器和变量,然后从阅读DS1307开始, 按键,您将采取相应行动. 有许多子程序处理给出的数据并返回结果. 在里面: 这是一个变量 “修改” 设置了 (= 1) 如果有任何数据被修改,因此所有相关数据都已存储, 内拉EEprom. 在里面. 因此,我们来到了管理中断的部分. 我必须使用其中的两个,而精确地使用一个,它会对B端口上连接的其中一个键的压力产生反应 4 一个 7. 第二个, 相对于听到门B上的按钮压力的RB0。 0. 有了这两个中断, 我负责显示屏背光的开启. 在里面, 在里面, 每100毫秒产生一次中断 : 算了 10 打断, 我明白了 1 根据我用于背光计数的时间 60. 在里面, 我用它来打开或关闭背光而没有定时. 为了完成, 在里面.
实现:
这是完成的项目:
在里面: 在里面. 在里面, 稳定器和继电器. 继电器上方的CR2032电池.
下面是显示器的后视图, 键盘和LED


组件侧面的内部视图

焊接面: 下, 注意那个小戒指 (块) 用金属丝制成的, 用于增强RTC的石英屏蔽.

对于黄色标签: 我用Excel创建了它们,并尝试了各种字符的大小和居中. 然后我把它们切掉, 双面胶带将它们粘贴到容器上,并用透明胶带保护它们.
在里面, 任务完成. 在里面, 我也希望这个项目能有所帮助.
Pierluigi

在里面.
在里面. 在里面 “在里面”. 在里面, 在里面. 在里面, 被固定 “被固定” 被固定, 被固定.
谢谢, Pierluigi
被固定 . 被固定.
被固定 .
和, 被固定, 被固定. 然而, 被固定, 被固定.
被固定. 被固定.
被固定. 被固定, 被固定.
被固定, 被固定.
我喜欢做这些项目, 我喜欢做这些项目. 我喜欢做这些项目. 我喜欢做这些项目: 我喜欢做这些项目. 我喜欢做这些项目, 我喜欢做这些项目.
我喜欢做这些项目, 我喜欢做这些项目.
我喜欢做这些项目.
我喜欢做这些项目. 我喜欢做这些项目. 我喜欢做这些项目 “我喜欢做这些项目” 并远离其他想法.