[TPYBoard-Micropython之会python就能做硬件 4] 学习使用电位器和1602显示屏
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604
一、实验器材
1、TPYboard V102板 一块
2、电位器 一个
3、1602 屏 一块
4、杜邦线:若干
二、电位器的使用
电位器 (英文:Potentiometer)是可变电阻器的一种。通常是由电阻体与转动或滑动系统组成,即靠一个动触点在电阻体上移动,获得部分电压输出。电位器具有三个引出端,阻值可按某种变化规律调节。电位器通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。电位器在电路中的主要作用有三个,一是用作分压器;二是用作变阻器;三是用作电流控制器。今天的实验中,我们主要是用它来控制LCD1602的对比度。
如上图,电位器(或微调电阻等等)常规引脚(仅举例说有3个引脚的电位器),两头的电阻值是固定的,中间引脚对任何一端引脚的电阻值是可变的。连接时,如果作为可变分压电阻用,则一端接输入电压,中间端接输出,余下端接地;如果作为可变电阻用,一端接输入电压,中间端接输出,余下端可悬空,或与中间端连接。
三、LCD1602的使用方法
1、1602液晶板
1602液晶板也叫字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。目前,尽管各厂家对其各自产品命名不尽相同,但均提供几乎都同样规格的模块或者兼容模块。最初采用的LCD控制器是HD44780,在各厂家生产的模块中,基本上也都采用了与之兼容的控制IC,所以从特性上基本上是一样的。因此,我们买到的模块,在端口标记上可能有所不同,有的从左向右,有的从右向左,但特性上是一样的。
2、1602的引脚情况
第1脚:VSS为电源负极
第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,本实验通过一个10K的电位器调整对比度,也可以换用一个1KΩ电阻)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。
第7~14脚:D0~D7为8位双向数据端。
第15~16脚:背灯电源。15脚背光正极,16脚背光负极。
3、1602的接线方法
的接线方法有两种,一种是线连接法,一种是线连接法。这两种方法具体可参见http://www.cnblogs.com/xiaowuyi/p/3390024.html。
四、实验板的连接方法
具体接线如下:
LCD1602 |
TPYBoard V102 |
电位器 |
VSS |
GND |
3 |
VDD |
3.3V |
1 |
V0 |
2 |
|
RS |
Y10 |
|
RW |
GND |
|
E |
Y9 |
|
D0 |
||
D1 |
||
D2 |
||
D3 |
||
D4 |
Y5 |
|
D5 |
Y6 |
|
D6 |
Y7 |
|
D7 |
Y8 |
|
A |
3.3V |
|
K |
GND |
连接后如下图:
五、显示hello world的实验
1、代码如下
# main.py -- put your code here! import pyb from pyb import Pin from pyb import delay, udelay,millis from tpyb_lcd1602 import TPYBoardLcd1602Api from tpyb_gpio_lcd1602 import TPYBoardGpioLcd1602 def main(): lcd = TPYBoardGpioLcd1602(rs_pin=Pin.board.Y10, enable_pin=Pin.board.Y9, d4_pin=Pin.board.Y5, d5_pin=Pin.board.Y6, d6_pin=Pin.board.Y7, d7_pin=Pin.board.Y8, num_lines=2, num_columns=16) lcd.lcd1602_write_string("hello world!\nThis is TPYBoard") #if __name__ == "__main__": main()
2、实验效果
六、简单的秒表
下面做一个简单的计时器,断电、按键USR置零。
# main.py -- put your code here!
import pyb
from pyb import Pin
from pyb import delay, udelay,millis
from tpyb_lcd1602 import TPYBoardLcd1602Api
from tpyb_gpio_lcd1602 import TPYBoardGpioLcd1602 lcd = TPYBoardGpioLcd1602(rs_pin=Pin.board.Y10,
enable_pin=Pin.board.Y9,
d4_pin=Pin.board.Y5,
d5_pin=Pin.board.Y6,
d6_pin=Pin.board.Y7,
d7_pin=Pin.board.Y8,
num_lines=2, num_columns=16)
sw=pyb.Switch()
def test():
global count
lcd.clear()
count = 0 sw.callback(test) #lcd.lcd1602_write_string("hello world!\nThis is TPYBoard")
#pyb.delay(1000)
#lcd.clear()
count=0
while True:
lcd.move_to(0, 0)
#%1d 宽度 返回运行当前程序的累计时间,单位是毫秒
#lcd.lcd1602_write_string("%1d" % (millis() // 1000))
delay(1000)
count += 1
lcd.lcd1602_write_string(str(count))
实现效果:
如果上面的flash显示不了,请查看:
http://v.youku.com/v_show/id_XMjQ5OTI3NzQ5Mg==.html
七、按键中断的使用
1、按键使用
tpyboard v102有两个按键,一个rst,重启键,一个usr。按键常用usr。常用的使用方法如下:
(1)定义按键
sw = pyb.Switch()
(2)常用方法
sw():读取按键状态
sw.callback(lambda:pyb.LED(1).toggle()) 定义按键回调函数,这里lambda表达式,可以查阅一下baidu。呵呵
sw.callback(None) 禁用按键回调函数
(3)更复杂的使用回调函数(按键后翻转LED2)
def test():
pyb.LED(2).toggle()
sw.callback(test)
2、中断的解释
现在谈谈按键回调函数发生时的细节。当你调用了含有 sw.callback( )的函数时,按键将在其连接引脚产生一个边沿触发(下降沿)外部中断。这意味着芯片将监听该引脚的任何状态变换,且如下事情会发生:
步骤1、当按键被按下时引脚将发生改变(电平由低到高?),芯片处理器将记录这种变化;
步骤2、处理器完成当前机器指令,退出执行状态并保存当前的状态(将寄存器的内容推入栈中)。这将停止当前运行的任何代码,例如正在执行着的 python 脚本;
步骤3、芯片开始执行与按键相关的特定外部中断触发处理。该处理指向你在 sw.callback( )函数中指定的函数功能并执行之;
步骤4、直到回调函数执行完毕,控制主权将回到中断处理手上;
步骤5、按键中断处理将返回,芯片处理器确认记录该中断被执行过;
步骤6、芯片调回步骤 2 的状态;
步骤7、继续执行开始时的代码,除了短暂的暂停,这部分代码看起来似乎没有被打断过。
当同一时间多个中断同时发生上述的过程将复杂得多。这种情况下拥有最高优先级别的中断将被首先执行,其他的中断按各自的优先级数序执行。按键中断的优先级最低。
[TPYBoard-Micropython之会python就能做硬件 4] 学习使用电位器和1602显示屏的更多相关文章
- [TPYBoard - Micropython之会python就能做硬件 8] 学习使用蓝牙模块及舵机
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2.电机驱动模块L2 ...
- [TPYBoard - Micropython之会python就能做硬件 8] 学习使用超声波模块制作避障小车
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2.电机驱动模块L2 ...
- [TPYBoard - Micropython之会python就能做硬件 6] 学习使用OLED显示屏
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYBoard板子一块 2.数据线一条 ...
- [TPYBoard - Micropython之会python就能做硬件 1] 运行第一个脚本——点亮LED
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 一.TPYBoard V102开发板 TPYBoard V102 ...
- [TPYBoard - Micropython之会python就能做硬件 开篇]会python就能做硬件!
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 在写这套教程之前,首先感觉山东萝卜电子科技有限公司(turnip ...
- [TPYBoard - Micropython 之会python就能做硬件 9] 五分种学会用TPYBoard V102 制作避障小车(升级版)
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 感谢山东萝卜电子科技公司授权 一.实验器材 1.TPYboard V102板 ...
- [TPYBoard-Micropython之会python就能做硬件 5] 学习使用重力传感器及PWM
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2 ...
- [TPYBoard-Micropython之会python就能做硬件 7] 学习使用蓝牙模块及舵机
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2 ...
- [TPYBoard-Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板 一块 2.DS3231 ...
随机推荐
- [转]Axis2创建WebService实例
以下文章来自http://clq9761.iteye.com/blog/976029,作者clq9761 一.Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下 ...
- JAVA调用c/c++代码
JNI是Java Native Interface的缩写,中文为JAVA本地调用.使用JNI可以很方便的用我们的Java程序调用C/C++程序.很多时候,某些功能用Java无法实现,比如说涉及到底层驱 ...
- [JSP] c:forEach 如何输出序号 - luotangsha的专栏 - 博客频道 - CSDN.NET
[JSP] c:forEach 如何输出序号 分类: JSP 2011-06-24 01:36 13018人阅读 评论(2) 收藏 举报 jspcbordertable 关键在于<c:forEa ...
- 基于LNMP的Zabbbix之Zabbix Agent源码详细安装,但不给图
基于LNMP的Zabbbix之Zabbix Server源码详细安装:http://www.cnblogs.com/losbyday/p/5828547.html wget http://jaist. ...
- 最简单的ajax调用webservice
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestHelloWorld ...
- CSS实现背景透明而背景上的文字图片不透明
1.用图片则能兼容IE8和IE7 2.用颜色则不能兼容IE8和IE7,并且颜色层不能随着内容层自增长,只能设置一个固定高度 3.用颜色则颜色层不能包含内容层(图片和文字) <!-- wrap最外 ...
- C#常用网址
C# 编程指南 https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx
- css中盒子宽高的auto
CSS盒模型中,auto属性只适用于外margin和width,height,border和padding不适用.下面就来说说它的情况.这里所说的都是标准流盒子. 1.横向来说 (1)若设置width ...
- Xcache和memcache的比较
Xcache 和 memcached 是两个不同层面的缓存,不存在可比性. Xcache 是 php 底层的缓存,它将PHP程式编译成字节码(byte code),再透过服务器上安装对应的程式来执行P ...
- iOS 之 绘图简介
iOS 实现图形编程主要有三种技术:UIKit.Core Graphics.OpenGL. 绘图需要在图形环境中进行,图形环境分为三种:屏幕图形环境.off screen 位图环境和PDF图形环境.在 ...