愚人节表白简直弱爆了,清明节表白才是王道。
因为万一被拒绝,可以说:“不好意思,刚才被附体了。”

愚人节已经过去,是不是还在后悔没来的及向女神表白?别怕,错过了愚人节还有清明节!清明节表白才是王道。既然是清明节表白,当然需要寻找一份和这个节日匹配的礼物。作为一名资深技术屌,自己动手才更有诚意。细想和清明节有关联的元素,脑海中迅速浮现了一大堆形容词,最终选了两个比较有代表的形容词:蓝光和诡异。
如何将蓝光和诡异集中在同一件礼物上了,这是个问题。蓝光可以选择蓝色 LED 灯即可,可是诡异就有点难了。LED 灯如何才能产生诡异效果了,还好本人机智,利用视觉停留不就可以完美呈现吗?当 LED 移动时出现一些奇怪的东西,静止时就是普通的闪光灯。没错,这就是摇摇棒。下面就介绍如何利用 Arduino 制作摇摇棒。

硬件电路

我选择了16位 LED 灯,可以理解为对应的也就是16个像素点。晃动过程中,每个像素的的亮灭时间都需要准确控制,这里直接选取了利用16个管脚进行控制。所以,硬件电路就相当简单,采用 LED 阳极统一接高电平, LED 阴极分别接各管脚。如下图:

上图中的1N4007为整流二极管,保护电路所用,缺失并不会影响主要功能。这就是本次的核心电路,就是这么简单。当然要做成可晃动的成品,参考 Arduino 官网焊接一个最小系统即可,这里不作赘述。这样会有一个问题,就是反方向晃动时会产生镜像文字。有种办法,就是每次反方向晃动时按一下开关,当然,我们不能做这样没有追求的事情。可以采用比较常用的做法,焊一个水银开关,由于清明节,水银开关需要周一发货,索性就不展示。

软件编程

人眼的视觉停留时间大概是41.67ms(1/24),也就是说,当 LED 移动时,41.67ms内的 LED 亮灭都会被人眼作为一幅画面。手晃动的时,在第一个位置,LED 点亮其中的一部分灯,晃动到第二个位置时,点亮一部分灯。控制每一个位置 LED 灯的亮灭,也就控制了每一列的像素显示,从而控制了一整幅画面的图案。如下面示意图(以八位模拟):

Talk is cheap!

void setup() {char i;char arr[] = {0,2,3,4,5,6,7,8,9,10,11,15,16,17,18,19};for(i=0;i<16;i++){   pinMode(arr[i], OUTPUT);}}// the loop function runs over and overagain forever
void loop() {   char loveyou[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};   char i;for(i=0;i<64;i++){char j, k, tempa, tempb;char arr[] = {0,2,3,4,5,6,7,8,9,10,11,15,16,17,18,19};tempa =  loveyou[i*2 ];for(j=0;j<8;j++){char hh = (0x01 & ~tempa);digitalWrite(arr[j], hh);tempa = tempa >> 1;}tempb =  loveyou[i*2 + 1];for(k=0;k<8;k++){   char hh = (0x01 & ~tempb);digitalWrite(arr[k+8],hh);   tempb = tempb >> 1;}delay(1.2);}}

上面是 Arduino 显示”LOVE”的程序,其中 loveyou 数组中存储的是字母“LOVE”对应的 LED 亮灭点阵。这里存储的是16进制,每两个16进制数控制的一列 LED 灯的亮灭。主函数初始化了16个管脚控制16个 LED 灯,循环函数中的for循环进行的是位操作,目的是将数组中的16进制数转化成二进制控制对应的 LED 亮灭。效果如下图:

写在后面的话

上面就是作为一个技术宅送女神的表白礼物,是不是相当低碳环保?整个制作并没有比较难度的地方,最难的是清明节表白的勇气和显示图案的创意,祝大家清明节成功追到女神。

更多内容可参考:探索物联网。

错过了愚人节,还有清明节 1相关推荐

  1. 错过了愚人节,还有清明节

    愚人节表白简直弱爆了,清明节表白才是王道. 因为万一被拒绝,可以说:"不好意思,刚才被附体了." 愚人节已经过去,是不是还在后悔没来的及向女神表白?别怕,错过了愚人节还有清明节!清 ...

  2. 愚人节谁最皮?华为宣布攻克兽语,小米6复刻版官宣,微信发万元红包...

    今天是4月1日,也是愚人节.因为疫情,全球都在渡过最严峻的时期,国外不少公司都宣布取消今年的愚人节彩蛋环节,但国内互联网大厂们还是在这个日子送上了有趣的彩蛋.适当地皮一皮,也让大家放松开心一下. 温馨 ...

  3. 愚人节最伟大的笑话---Flask

    愚人节笑话很少有成真的,毕竟那只是一时娱乐而已.但同样的话,对于开发者社区来说或许有例外.据Python官方维基介绍,Python社区中有着优良的愚人节传统,其中一个特别明显的例子就是PEP 0401 ...

  4. OSChina 愚人节乱弹 ——愚人节新技能!快来点满整蛊技能树!

    2019独角兽企业重金招聘Python工程师标准>>> "愚人节"是公元十五世纪宗教革命之后始出现的一个说谎节日. 当时西班牙王腓力二世曾建立一个"异端 ...

  5. 支付宝发布黑科技“如影计划”,这真的不是愚人节的玩笑

    在众多"玩笑"中,支付宝照样玩出了花. 按照以往愚人节发布"黑科技"的"传统",继往年的视网膜支付.意念支付.空付.到位.蚂上等,支付宝又在 ...

  6. 阿里愚人节发布“如影计划”,黑科技让支付宝与掌心融为一体

    雷锋网消息,4月1日愚人节,科技圈在这一天都有发布"黑科技"的习惯,阿里巴巴集团也不例外,它一共发布了两个产品--阿里云的"云计蒜"与支付宝"如影计划 ...

  7. python恶搞程序-愚人节恶搞程序源码【两种语言】

    Python: print("--------------------------") print("[愚人节专用恶搞程序]") print("[By ...

  8. 愚人节“整人”小心被病毒“整”

    4月1日,愚人节也称万愚节,是西方也是美国民间传统节日. 愚人节这天不分男女老幼,可以互开玩笑.互相愚弄欺骗以换得娱乐.然而那些试图在愚人节"整"人的网友要小心了,金山毒霸安全实验 ...

  9. 牛客2021年愚人节比赛 【题解】

    很有意思的一套题,难度不大,不过题目很有意思. 比赛链接:https://ac.nowcoder.com/acm/contest/12800 目录 A: 出愚人节欢乐赛 B: 你这题,狗屁不通 C: ...

最新文章

  1. MQTT 心跳和keepalive配置
  2. android activity根节点addview_Activity问你4个问题,你敢回答吗?
  3. Java 包的概述和讲解
  4. tomcat 随windows启动
  5. dataframe 如何选中某列的一行_如何用 Python 在笔记本上分析 100GB 数据?
  6. [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
  7. 基于 MinIO 对象存储框架的短视频点播平台设计
  8. 面向对象思想的设计原则概述
  9. Java 二分排序法
  10. 浏览器工作原理(超级详解!!!!)
  11. log4j中配置LOG_HOME无效
  12. 南京艺术学院计算机考研,南京艺术学院考研难吗?一般要什么水平才可以进入?...
  13. 录的视频太长怎么剪切?试试这个剪辑技巧
  14. 网线传输速度测试_网络传输速率及测速方法
  15. 解决微信图片不可引用的问题
  16. php7 kernel32,usleep()
  17. 动视解析现代战争3 成功因团队强
  18. 1170111415杨宇-微信小程序MiniProgramForHD
  19. Scrapy爬取知乎用户信息(代理池,MongoDB,非分布式)
  20. 2021年中国可重复使用的血压计袖带市场趋势报告、技术动态创新及2027年市场预测

热门文章

  1. Java本机内存跟踪NMT实战详解
  2. python之类与对象
  3. GIS工具maptalks开发手册(二)01-01之Geometry转化为GeoJSON——渲染点
  4. 计量经济学 (1.2)
  5. Layui之动态选项卡iframe使用
  6. VMware(1):MacOS虚拟机无法设置自动调整大小(已解决)
  7. 公式编辑的符号和英文要不要前后加空格
  8. 《Cracking the Coding Interview》——第6章:智力题——题目6
  9. 弘辽科技:淘宝店铺如何优化排名?有哪些优化方法呢?
  10. newduba首页怎么去掉_【主页劫持】关于浏览器主页被劫持到毒霸网址大全的解决方法...