Attiny的功耗和功能在我看来做一个浇花的水泵控制器还是很不错的。以前动手做过,但失败的一塌糊涂,也懒得找原因。今天又把过去的玩儿捡起来,重新鼓捣一番,给它加了个LED显示器,看看它的葫芦里到底装的什么药。结果还真发现了它的秘密。原来在用Arduino IDE为它做C++编程时,表达式中不接受 unsigned long 和 int 两种类型时间的混用,不知道这算不算是bug。总之数据是乱的,动作自然就失控了。

这次做了一个复古风格的设计,用电位器(而不是按键)设定水泵工作的时长。自我感觉有点儿意思。

好久没过来了,这里把代码贴出来:

#include "SSD1306_minimal.h"
#include <avr/pgmspace.h>
SSD1306_Mini oled;#define PUMP 1
unsigned long t;  //浇水间隔的周期
unsigned long tnext;
void setup() {oled.init(0x3c);oled.clear();oled.startScreen();oled.cursorTo(0, 1);oled.printString("Pump Controler");oled.cursorTo(0, 2);oled.printString("Based on Attiny85");oled.cursorTo(0, 4);oled.printString("By zintiger");oled.cursorTo(0, 6);oled.printString("v1.0 2021.6");delay(3000);oled.clear();pinMode(PUMP, OUTPUT);t=86400;  //每间隔24小时启动一次。tnext=t;
}void loop() {char s[32];unsigned long tc=millis()/1000;sprintf(s,"CPU clock=%d",tc);//oled.clear();oled.cursorTo(0, 1);oled.printString(s);//注意,attiny的C程序在unsigned long 和 unsigned int 混用的时候,会出现计算错误。unsigned long cdt = tnext-tc; //倒计时时长(s)unsigned long h=cdt/3600;unsigned long m=(cdt-h*3600)/60;unsigned long sec=cdt-h*3600-m*60;sprintf(s,"%02lu:%02lu:%02lu",h,m,sec);oled.cursorTo(0, 3);oled.printString(s);int sensorValue = analogRead(A2);//芯片的第3脚,获得电位器数据(0-1023)int dt=sensorValue/34;  //换算成水泵工作时长0-30秒。sprintf(s,"Pump work %2d(s)",dt);oled.cursorTo(0, 5);oled.printString(s);if(tc>tnext){tnext+=t;digitalWrite(PUMP, HIGH);   // turn the Pump on.delay(dt*1000);  digitalWrite(PUMP, LOW);    // turn the Pump off. }delay(1000);
}

用Attiny85控制水泵浇花相关推荐

  1. diy 单片机 自动浇花_造个自动浇花装置(完)

    认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 我差不多得出去读大学了,家里刚种的薰衣草父母没时间浇花,那就造一个自动浇花装 ...

  2. 51单片机wifi物联网的浇花控制系统设计

    硬件设计 浇花控制系统采用51单片机与LCD液晶显示屏来实现,利用温度.湿度传感器及相应的显示.驱动执行机构.报警装置等实现温室作物生长环境控制器的设计.        硬件电路主要由51单片机+最小 ...

  3. 基于Android的智能浇花控制系统设计

    基于Android的智能浇花控制系统设计 本设计的主要内容是基于Android的阳台浇花控制系统的设计,主要是检测环境温度信号和土壤湿度信号,并且分别将环境温度信号和土壤湿度信号显示到LCD1602和 ...

  4. 基于STM32设计的智慧浇花系统(华为云IOT)

    1. 前言 随着社会的不断发展和人们生活水平的逐渐提高,人们逐渐追求高质量的生活,很多人都会选择在家里或办公室种植一些花卉以净化家庭空气,陶冶情操,但是很多人忙于工作.学习.出差.旅游或者一些其他的原 ...

  5. 物联网全栈教程--手把手教你开发一个智能浇花器

    下面来说一下课程的安排,本教程可以分为三大章节,30个小章节,在1-10章节,手把手讲解了如何实现一个定时/实时控制的浇花器,可以对浇花器电量进行显示,可以进行定时设置,以及实时控制,低功耗模式等等, ...

  6. arduino智能浇花系统_arduino+水泵+继电器+RFID

    arduino+继电器+电机 应用场合:加湿器.自动浇花.智能门锁.报警系统.......总之很多场合都适用.本章就介绍利用RFID卡输入,驱动水泵. /* * ------------------- ...

  7. 基于51单片机的自动浇花系统设计/基于51单片机的智能抽奖系统控制设计/基于51单片机的数字时钟与日历显示控制设计 毕业设计

    1147基于51单片机的自动浇花系统设计 设计思路:通湿度传感器实时监测湿度,通过LCD显示出实时的湿度采集值,可以通过按键设定目标界限,当达到这个界限值时,浇花系统的电机装置运行. 电路包含:LCD ...

  8. 程序员黑科技 | 用13块钱DIY微信小程序浇花神器

    作者:iotzheng,腾讯TEG平台开发工程师(江湖人称IoT小能手) 前言 去年7月的时候,公司办了一场王者荣耀大赛,我和同事们也报名参加了.首局比赛就给我们泼了冷水,"深圳湾一号业主& ...

  9. arduino智能浇花系统_创新成果 | 养花神器——智能浇花机

    养花的人应该多少都会遇到这样的问题:需要根据花的习性定时浇水,但给花浇水是个「技术活」,不记得浇水或水浇多了,都会影响花的生长. 针对这个问题,可以研究制作一个简单.实用的自动浇花机.根据检测土壤的湿 ...

  10. arduino智能浇花系统_自动浇花套件

    自动浇花套件(SKU:KIT0003) 目录 1 概述 2 技术规格 3 配送清单 4 组装示意图 5 单盆花的浇灌制作步骤 6 Arduino 样例程序 6.1 数据测量 6.2 水泵测试 7 产品 ...

最新文章

  1. 基于 Python 环境搭建 - YOLO 实现吸烟行为监测
  2. 低压成套ggd设备详细报价
  3. 南京信息工程大学c语言实验十报告,南京信息工程大学2014年C语言程序设计实验内容(全部).doc...
  4. 【计算机科学基础】VonNeumann体系结构
  5. 使用 Dawn 构建 React 项目
  6. ios assign、copy 、retain
  7. 一台计算机要两个内网,局域网如何在一台电脑上设置两个IP地址
  8. java助教的工作内容_2017-2018-2 165X 『Java程序设计』课程 助教总结
  9. BP神经网络做分类+隐含层节点确定+红酒数据为例
  10. 程序员离职的3个大忌!
  11. 对XP系统中Autorun.inf Autorun.exe以及RECYCLER文件夹的认识
  12. PDF能编辑吗,怎样去掉PDF上的水印
  13. 东南大学校园网自动重连脚本
  14. 微信小程序打开微信公众号中的文章实战教程
  15. MAC中开关机热键总结
  16. 我的大长腿,只有防弹级丝袜才能配得上
  17. JDK 12 ,JDK 13 , JDK 14 新特性 详解
  18. 二进制正负数及其表示
  19. kali linux amd显卡驱动,[求助贴] kali 2.0 安装amd 显卡驱动问题
  20. 呵呵哒!手把手教你C语言结构体与共同体

热门文章

  1. 60906磁悬浮动力系统应用研究与模型搭建
  2. 使用R,ggplot2绘制NMDS图
  3. oracle自增序列的删除,重建,回到最开始的设置值
  4. 软考- 高级信息系统项目管理师,第一章 信息化与信息系统
  5. java thread queue_java线程池技术(一):ThreadFactory与BlockingQueue
  6. 3dmax晶格指令制作石墨烯模型的图文教程
  7. 详解 Redis 中布隆过滤器解决缓存穿透问题
  8. Virtualbox Ubuntu增强功能
  9. Python:1004 成绩排名
  10. 2009年全国数模比赛,江苏三等奖名单