Micro:bit系列教程24:MCP23017 IO Expansion Board扩展IO资源

来自丢石头百科


本章将介绍Micro:bit通过MCP23017 IO Expansion Board进行GPIO扩展。


1.基本介绍

    MCP23017 IO Expansion Board是一款GPIO扩展板,如果遇到Micro:bit的IO口不够使用的情况,可用该模块进行扩展,该模块采用I2C通信接口,可扩展16个GPIO口。


2.硬件连接

    在硬件连接上,采用Micro:bit的I2C接口与该模块连接,通过读写MCP23017寄存器,从而控制MCP23017的引脚电平,实现IO扩展。


<tbody> </tbody>

Micro:bit


MCP23017 IO

 Expansion Board


VCC


VCC


GND


GND


SCL


SCL


SDA


SDA


具体硬件连接和BME280一致。


3.软件设计

  打开makecode,添加软件包,输入链接:



https://github.com/waveshare/CourseKit


添加软件包成功后,采用积木块编写以下程序:


152327kb6kmkxyeuuzpuee.png


<v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"> <v:stroke joinstyle="miter"> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> <v:f eqn="sum @0 1 0"> <v:f eqn="sum 0 0 @1"> <v:f eqn="prod @2 1 2"> <v:f eqn="prod @3 21600 pixelWidth"> <v:f eqn="prod @3 21600 pixelHeight"> <v:f eqn="sum @0 0 1"> <v:f eqn="prod @6 1 2"> <v:f eqn="prod @7 21600 pixelWidth"> <v:f eqn="sum @8 21600 0"> <v:f eqn="prod @7 21600 pixelHeight"> <v:f eqn="sum @10 21600 0"> </v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas> <v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"> <o:lock aspectratio="t" v:ext="edit"> </o:lock></v:path></v:stroke></v:shapetype><v:shape id="图片_x0020_3" o:spid="_x0000_i1026" style="width:415.5pt;height:187.5pt;visibility:visible;mso-wrap-style:square" type="#_x0000_t75"> <v:imagedata o:title="" src="file:///C:\Users\LINXINWU\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"> </v:imagedata></v:shape>


  下载,点击显示数据(设备)按钮,将显示B组引脚高低电平状态的数据,如果让引脚悬空,由于将引脚内部连接了上拉电阻,则读取的输入状态为高电平,读取B组引脚电平状态的数据如下图所示:



152346pqu2kykaywkyfdhw.png


<v:shape id="图片_x0020_5" o:spid="_x0000_i1025" style="width:414.75pt;

height:155.25pt;visibility:visible;mso-wrap-style:square" type="#_x0000_t75">

<v:imagedata o:title="" src="file:///C:\Users\LINXINWU\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png"> </v:imagedata></v:shape>


  同时,PA7-PA0分别输出低-高-低-高-低-高-低-高的电平状态,将A组引脚连接到LED可观察现象。