[TPYBoard - Micropython之会python就能做硬件 4] 学习使用电位器和1602显示屏

简介: 转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi            欢迎加入讨论群 64770604   一、实验器材 1、TPYboard V102板  一块 2、电位器   一个 3、1602 屏 一块 4、杜邦线:若干 二、电位器的使用         电位器 (英文:Potentiometer)是可变电阻器的一种。

转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi            欢迎加入讨论群 64770604

 

一、实验器材

1TPYboard V102板  一块

2、电位器   一个

31602 屏 一块

4、杜邦线:若干

二、电位器的使用

        电位器 (英文:Potentiometer)是可变电阻器的一种。通常是由电阻体与转动或滑动系统组成,即靠一个动触点在电阻体上移动,获得部分电压输出。电位器具有三个引出端,阻值可按某种变化规律调节。电位器通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。电位器在电路中的主要作用有三个,一是用作分压器;二是用作变阻器;三是用作电流控制器。今天的实验中,我们主要是用它来控制LCD1602的对比度。

   如上图,电位器(或微调电阻等等)常规引脚(仅举例说有3个引脚的电位器),两头的电阻值是固定的,中间引脚对任何一端引脚的电阻值是可变的。连接时,如果作为可变分压电阻用,则一端接输入电压,中间端接输出,余下端接地;如果作为可变电阻用,一端接输入电压,中间端接输出,余下端可悬空,或与中间端连接。

 

三、LCD1602的使用方法

11602液晶板

  1602液晶板也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。目前,尽管各厂家对其各自产品命名不尽相同,但均提供几乎都同样规格的1602模块或者兼容模块。1602最初采用的LCD控制器是HD44780,在各厂家生产的1602模块中,基本上也都采用了与之兼容的控制IC,所以从特性上基本上是一样的。因此,我们买到的1602模块,在端口标记上可能有所不同,有的从左向右,有的从右向左,但特性上是一样的。

21602的引脚情况

1脚:VSS为电源负极

2脚:VCC5V电源正极

3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,本实验通过一个10K的电位器调整对比度,也可以换用一个1KΩ电阻)。

4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

6脚:E(EN)端为使能(enable),高电平(1)时读取信息,负跳变时执行指令。

714脚:D0D78位双向数据端。

1516脚:背灯电源。15脚背光正极,16脚背光负极。

31602的接线方法

1602的接线方法有两种,一种是8线连接法,一种是4线连接法。这两种方法具体可参见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、继续执行开始时的代码,除了短暂的暂停,这部分代码看起来似乎没有被打断过。

  当同一时间多个中断同时发生上述的过程将复杂得多。这种情况下拥有最高优先级别的中断将被首先执行,其他的中断按各自的优先级数序执行。按键中断的优先级最低。

 

 

 

目录
相关文章
|
1月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
301 0
|
1月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
169 1
|
1月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
259 1
|
1月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
145 4
|
2月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
4月前
|
监控 数据安全/隐私保护 Python
微信自动抢红包免费版,2025微信抢红包神器,微信红包挂苹果版【python仅供学习】
这个模拟项目包含5个模块:核心监控逻辑、用户界面、配置管理、实用工具和主程序入口
|
9月前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
189 2
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
190 0
|
存储 Python Windows
【Python学习篇】Python实验小练习——函数(十)
【Python学习篇】Python实验小练习——函数(十)
127 1

推荐镜像

更多