• 【雕爷学编程】Arduino动手做(107)---PCF8574扩展板模块


    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验一百零七:IIC/I2C/接口 PCF8574 扩展板 LCD1602/LCD2004转接板模块

    在这里插入图片描述

    PCF8574
    CMOS电路,它通过两条双向总线可使大多数MCU实现远程I/O扩展。该器件包含一个8位准双向口和一个总线接口。pcf8574t 电流消耗很低,并且输出锁存,具有大电流驱动能力,可直接驱动LED。它还带有一种中断接线可与MCU的中断逻辑相连。通过INT发送中断信号,远端I/O口不必经过总线通信就通知MCU是否有数据从端口输入。这意味着 pcf8574t 可以作为一个单被控器。

    在这里插入图片描述

    PCF8574逻辑图

    在这里插入图片描述

    各P口输入输出简化示意图

    在这里插入图片描述
    PCF8574基本参数

    工作温度范围:-40°C to +85°C

    针脚数:16

    封装类型:SOIC

    工作温度最低:-40°C

    工作温度最高:85°C

    器件标号:8574

    电源电压 最大:6V

    电源电压 最小:2.5V

    电源电流:40μA

    芯片标号:8574

    表面安装器件:表面安装

    逻辑功能号:8574

    控制接口:I2C

    时钟频率:0.1MHz

    输入/输出数:16

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这种用于双线双向总线(I2C)的8位输入/输出(I/O)扩展器设计用于2.5-V至6-V VCC操作。PCF8574通过I2C为大多数微控制器系列提供通用远程I/O扩展接口[串行时钟(SCL),串行数据(SDA)。该设备具有一个8位准双向I/O端口(P0–P7),包括带有大电流驱动的锁存输出直接驱动LED的能力。每个准双向I/O都可以用作输入或输出,而无需使用数据方向控制信号。开机时,I/O很高。在此模式下,只有VCC的电流源活跃。另一个强大的拉向VCC允许快速上升到重负荷输出边缘。这个装置转动当输出被写入高位并被SCL的负边缘关闭时打开。I/O应该很高,在用作输入之前。PCF8574提供了一个开漏输出(int),可以连接到微控制器。在输入模式下,端口输入的任何上升或下降沿都会产生中断。后续时间,tiv,int是有效的。当端口上的数据改变时,中断电路复位并重新激活从产生中断的端口读取或写入原始设置或数据。重置发生在在SCL信号上升沿后的确认位处的读取模式,或在SCL信号从高到低转换后的确认位。确认期间发生的中断由于在该脉冲期间中断复位,时钟脉冲可能丢失(或非常短)。每次变更复位后的I/O被检测到,并且在下一个上升时钟边缘之后,被发送。作为int读取,或者写入,另一个设备不影响中断电路。通过在这条线路上发送中断信号,远程I/O可以通知微控制器是否有输入数据在其端口上,无需通过I2C总线进行通信。因此,pcf8574可以保持简单的从机装置。

    在这里插入图片描述
    Arduino控制板IO口只有20个,加些传感器、SD卡啥的,继电器等模块多了,IO口就不够用了,原来的1602屏需要7个IO口才能驱动起来,这个模块可以帮你省5个IO口。

    产品参数:
    1.供电电压:+5V
    2.支持I2C协议
    3.具有背光灯,和对比度调节电位器
    4.4线输出更简单
    5.设备地址:0x27

    在这里插入图片描述
    PCF8574模块电原理图

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    实验一百零七:IIC/I2C/接口 PCF8574 扩展板 LCD1602/LCD2004转接板模块
    项目一:扫描设备IIC地址,在串口上即可看到PCF8574的地址
    这里查询结果是“0x27”(这个地址不对的话,实测无法烧录程序)
    Arduino------PCF8574
    5V-------------VCC
    GND-----------GND
    A4-----------SDA IIC 数据线
    A5-----------SCL IIC 时钟线

    /*
    
    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    
    实验一百零七:IIC/I2C/接口 PCF8574 扩展板 LCD1602/LCD2004转接板模块
    
    项目一:扫描设备IIC地址,在串口上即可看到PCF8574的地址
    
    这里查询结果是“0x27”(这个地址不对的话,实测无法烧录程序)
    
    Arduino------PCF8574
    
    5V-------------VCC
    
    GND-----------GND
    
    A4-----------SDA IIC 数据线
    
    A5-----------SCL  IIC 时钟线
    
    */
    
    
    
    #include 
    
    
    
    void setup() {
    
      Serial.begin (115200); // Leonardo: wait for serial port to connect
    
      while (!Serial) { }
    
      Serial.println ();
    
      Serial.println ("I2C scanner. Scanning ...");
    
      byte count = 0;
    
      Wire.begin();
    
      for (byte i = 8; i < 120; i++) {
    
          Wire.beginTransmission (i);
    
          if (Wire.endTransmission () == 0) {
    
          Serial.print ("Found address: ");
    
          Serial.print (i, DEC);
    
          Serial.print (" (0x");
    
          Serial.print (i, HEX);
    
          Serial.println (")");
    
          count++;
    
          delay (1); // maybe unneeded?
    
          } // end of good response
    
      } // end of for loop
    
      Serial.println ("Done.");
    
      Serial.print ("Found ");
    
      Serial.print (count, DEC);
    
      Serial.println (" device(s).");
    
    } // end of setup
    
    
    
    void loop() {
    
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81

    实验串口返回情况

    在这里插入图片描述
    实验场景图

    在这里插入图片描述
    实验开源仿真编程(Linkboy V4.63)程序之二

    在这里插入图片描述
    实验开源仿真编程(Linkboy V4.63)程序之三

    在这里插入图片描述

    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    实验一百零七:IIC/I2C/接口 PCF8574 扩展板 LCD1602/LCD2004转接板模块
    项目四:扫描设备IIC地址,在LCD上输出"Welcome to Eagler8"
    Arduino------PCF8574
    5V-------------VCC
    GND-----------GND
    A4-----------SDA IIC 数据线
    A5-----------SCL IIC 时钟线

    /*
    
    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    
    实验一百零七:IIC/I2C/接口 PCF8574 扩展板 LCD1602/LCD2004转接板模块
    
    项目四:扫描设备IIC地址,在LCD上输出"Welcome to Eagler8"
    
    Arduino------PCF8574
    
    5V-------------VCC
    
    GND-----------GND
    
    A4-----------SDA IIC 数据线
    
    A5-----------SCL  IIC 时钟线
    
    */
    
    #include 
    
    #include 
    
    LiquidCrystal_I2C lcd(0x27,16,2);  
    
    void MyPrintLCD(String MyString)
    
    {
    
      for (int i=0;i<MyString.length();i++)
    
      lcd.write(MyString.charAt(i));
    
      }
    
      
    
    void setup()
    
    {
    
    lcd.init();
    
    lcd.backlight();
    
    MyPrintLCD("Welcome to ");
    
    lcd.setCursor(0,1);
    
    MyPrintLCD("      Eagler8");
    
    }
    
    void loop()
    
    {
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    实验模块接线示意图

    在这里插入图片描述

    实验场景图

    在这里插入图片描述

  • 相关阅读:
    SpringBoot整合Websocket,实现作为客户端接收消息的同时作为服务端向下游客户发送消息
    MyBatis Plus详细教程
    java版Spring Cloud+Mybatis+Oauth2+分布式+微服务+实现工程管理系统
    数据可视化大屏设计
    500行代码代码手写docker-将rootfs设置为只读镜像
    C14—使用QT制作玫瑰散落特效定制程序员的专属浪漫-2022-11-14
    监控基本概念
    Kotlin高仿微信-第16篇-单聊-红包
    java APP自动化测试AppIum
    怎么把开源项目放到自己的github,gitee,gitea上
  • 原文地址:https://blog.csdn.net/weixin_41659040/article/details/126867330