10591|19

140

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

简单的点阵书写屏 [复制链接]

 
本帖最后由 ginny 于 2016-1-12 19:52 编辑

现在网上有很多点阵书写屏,突然心血来潮也想做一个玩玩,做个简单的,能实现功能就行。


硬件基本上用的是51开发板上的,stc的单片机,光笔用的是光敏电阻,其实最好用光敏二级管和光敏三极管,

可惜手头上没有。光敏电阻的缺点就是响应时间在ms级太慢了,光敏三级管可以达到us级。

用光敏电阻大的点阵书写屏做不了,先做个8*8的玩玩。红绿双色点阵屏,可以简单组成三种颜色。

点阵书写屏最重要的就是读取光笔的坐标,有了它你就玩花样了。

读取方式很多,大部分是用定时扫描。我的比较简单就直接用类似矩阵按键那样的扫描方式,逐行逐列扫描。


话不多说,看图:


光敏电阻遇到光电阻会减小,我就把它串联一个电阻,然后单片机读取这个电阻的电压,

3.5v以上的电压单片机就会认为是1,电路图很简单的。


如果不书写时,扫描最好不要进行,所以我后来装了个按键



经过不断的改进调延时,最后做出一个简单版点阵书写屏。

它有颜色选择:绿色、红色、混色(绿色和红色),还有擦除功能。



看看书写的效果,手机拍摄效果太差,只能用亚克力板挡掉一些光线。



最后看视频


此帖出自创意市集论坛

最新回复

挺有创意的  详情 回复 发表于 2017-1-2 14:46

赞赏

6

查看全部赞赏

点赞 关注(3)
个人签名喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
 
 

回复
举报

120

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
思路不错,结合AD可以作个带灰度的
此帖出自创意市集论坛
 
 
 

回复

140

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
cj_in 发表于 2016-1-12 19:54
思路不错,结合AD可以作个带灰度的

嗯嗯,是的,如果用stm32和光敏三极管就可以实现更多功能了。
此帖出自创意市集论坛
个人签名喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
 
 
 

回复

606

帖子

1

TA的资源

一粒金砂(中级)

4
 
腻害啊
此帖出自创意市集论坛
个人签名疏雨客晚归,荒烟乱,几许江南无晴!又落花,残香织梦,莫  莫  莫,白首衷肠……
 
 
 

回复

2万

帖子

340

TA的资源

版主

5
 
创意不错,可以搞个小产品
此帖出自创意市集论坛
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

6
 
真棒的创意,赞一个
此帖出自创意市集论坛
个人签名

So TM what......?

 

 
 

回复

2721

帖子

0

TA的资源

纯净的硅(中级)

7
 
            有新意
此帖出自创意市集论坛
 
 
 

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

8
 
做得非常好。

虽然原理没有什么新颖,但能使用这个原理做成东西却非常了不起!!
此帖出自创意市集论坛
 
 
 

回复

2721

帖子

0

TA的资源

纯净的硅(中级)

9
 
光敏电阻旁边是不是连了一个按键?
此帖出自创意市集论坛
 
 
 

回复

113

帖子

1

TA的资源

一粒金砂(中级)

10
 
很久之前电子竞赛做的这个。。。可惜能力不足
此帖出自创意市集论坛
 
 
 

回复

140

帖子

0

TA的资源

一粒金砂(中级)

11
 
suoma 发表于 2016-1-12 21:37
光敏电阻旁边是不是连了一个按键?

嗯,是的,接了个按键。按键的作用是:按下去点阵才开始扫描。因为一直扫描的话,显示效果不好。
如果要效果更好些,可以把按键设计成光笔下压的按键。这样只要光笔在点阵屏上一压就开始扫描,这样同步性更好。
此帖出自创意市集论坛
个人签名喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
 
 
 

回复

140

帖子

0

TA的资源

一粒金砂(中级)

12
 
daiyoko 发表于 2016-1-13 19:41
小白看不懂,為何放在某點就會亮起來?
如何判斷點陣試的位置??

行列扫描方式,和矩阵按键原理一样。首先行扫描,从第一行扫描到第八行。
假设光笔是在第四行,那么当扫描到第四行时,光笔的电阻就会迅速降低,
这时再读取光笔的电压值,如果下降到一定阻值时,单片机读到的就为0(0到1.5v stc单片机会认为是0)。
记录下当前行,然后开始列扫描,从第一列扫描到第八列,假设光笔在第三列,
那么扫描到第三列时,单片机就会读到0,这时再记录当前列。最后就得到了本次扫描时光笔的坐标值了。
然后把这个坐标存储在一个数组里,这个数组就是需要显示的所有点阵坐标。
因为扫描和点阵的显示是分时的,所以只要控制好延时就可以显示出触屏的效果了。
此帖出自创意市集论坛
个人签名喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
 
 
 

回复

140

帖子

0

TA的资源

一粒金砂(中级)

13
 
本帖最后由 ginny 于 2016-1-15 12:49 编辑
daiyoko 发表于 2016-1-14 20:09
還是不明白

下面是 8x8 点阵屏,手上是光敏電阻。

+++++++++++++++++
+ x + y +  +  +  + ...

单片机通过读光敏电阻的电压来判断光笔所在位置。
光笔受光照光敏电阻变的很小,单片机读到0,光笔没有受光照光敏电阻变的很大,单片机读到1。
单片机每扫描行(列)读取一次,读到0时记录行(列)值。

假设这是8x8点阵:
     1  2  3  4  5  6  7  8
   ———————————
1 | 0  0  0  0  0  0  0  0
2 | 0  0  0  0  0  0  0  0
3 | 0  0  0  0  0  0  0  0
4 | 0  0  0  0  0  0  0  0
5 | 0  0  0  0  0  0  0  0
6 | 0  0  0  0  0  0  0  0
7 | 0  0  0  0  0  0  0  0
8 | 0  0  0  0  0  0  0  0

现在我们假设光笔在第4行第3列坐标就为(4,3),图中加号位置。
     1  2  3  4  5  6  7  8
   ———————————
1 | 0  0  0  0  0  0  0  0
2 | 0  0  0  0  0  0  0  0
3 | 0  0  0  0  0  0  0  0
4 | 0  0  +  0  0  0  0  0
5 | 0  0  0  0  0  0  0  0
6 | 0  0  0  0  0  0  0  0
7 | 0  0  0  0  0  0  0  0
8 | 0  0  0  0  0  0  0  0

现在点阵扫描正在就进行,从第1行扫描开始。
     1  2  3  4  5  6  7  8
   ———————————
1 | *  *  *  *  *  *  *  *
2 | 0  0  0  0  0  0  0  0
3 | 0  0  0  0  0  0  0  0
4 | 0  0  +  0  0  0  0  0
5 | 0  0  0  0  0  0  0  0
6 | 0  0  0  0  0  0  0  0
7 | 0  0  0  0  0  0  0  0
8 | 0  0  0  0  0  0  0  0

当扫描到第4行时
     1  2  3  4  5  6  7  8
   ———————————
1 | 0  0  0  0  0  0  0  0
2 | 0  0  0  0  0  0  0  0
3 | 0  0  0  0  0  0  0  0
4 | *  *  +  *  *  *  *  *
5 | 0  0  0  0  0  0  0  0
6 | 0  0  0  0  0  0  0  0
7 | 0  0  0  0  0  0  0  0
8 | 0  0  0  0  0  0  0  0
光敏电阻电阻降低,单片机读到了0,也就可以得到光笔的所在行数,第4行。

接下来就是要读光笔的列了,所以现在停止行扫描开始列扫描,从第1列扫描开始。
     1  2  3  4  5  6  7  8
   ———————————
1 | *  0  0  0  0  0  0  0
2 | *  0  0  0  0  0  0  0
3 | *  0  0  0  0  0  0  0
4 | *  0  +  0  0  0  0  0
5 | *  0  0  0  0  0  0  0
6 | *  0  0  0  0  0  0  0
7 | *  0  0  0  0  0  0  0
8 | *  0  0  0  0  0  0  0

当从第1列扫描时,光笔所在的点阵没有亮,所以光敏电阻的电阻此时又会上升到很大阻值,单片机就会读到1。

当扫描到第3列时
     1  2  3  4  5  6  7  8
   ———————————
1 | 0  0  *  0  0  0  0  0
2 | 0  0  *  0  0  0  0  0
3 | 0  0  *  0  0  0  0  0
4 | 0  0  +  0  0  0  0  0
5 | 0  0  *  0  0  0  0  0
6 | 0  0  *  0  0  0  0  0
7 | 0  0  *  0  0  0  0  0
8 | 0  0  *  0  0  0  0  0
光敏电阻电阻降低,单片机读到了0,也就可以得到光笔的所在列数,第3列。

这样就得到了光笔的坐标了(4,3)。

所以你说的如何判断x位还是y位,因为x、y在同一行,所以没法通过行来判断的,但如果再扫描一次列就可以区分x、y了。

再说下时间吧。
光笔停留在一个位置是有一定时间比如0.2s。0.2s对于我们人来说太短了,但对于单片机,它可是可以干很多很多事的。比如再进行一次扫描,扫描行完后再扫描列。其实也有一种情况发生,就是当扫描得到行值后去扫描列时,光笔位置移动了,这时就可能读取到错误的列值了。当然如果你把扫描间隔时间调短些,这种情况发生的几率就非常小了。
所以不是通过时间来判断坐标的,时间只是让扫描可以进行。
此帖出自创意市集论坛
个人签名喜好电子DIY的小伙伴可以关注我的微信公众号:电子创客派
 
 
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

14
 
很巧妙的设计,赞~
此帖出自创意市集论坛
个人签名HELLO_WATER
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(中级)

15
 
很有意思的设计,膜拜一下。
此帖出自创意市集论坛
个人签名金涵电子,手持示波器、工控主板、LED控制系统。公司网站
QQ13365690227
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

16
 
简单的原理  新奇的创意 做出来的 就是不一样。这个让我想起了  小时候连接电视 玩射击的游戏机
此帖出自创意市集论坛
 
 
 

回复

113

帖子

1

TA的资源

一粒金砂(中级)

17
 
(约)09年全国大学生电子竞赛专科组的题目,屏幕比这个大。
此帖出自创意市集论坛
 
 
 

回复

70

帖子

4

TA的资源

一粒金砂(中级)

18
 
留爪,正在准备做这个
此帖出自创意市集论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 
点阵用的是片机原来的?他和光笔是如何匹配的?
此帖出自创意市集论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

20
 
挺有创意的
此帖出自创意市集论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表