IO Expansion HAT for Raspberry Pi

简介

这是一个树莓派4B的接线端子扩展板,采用接线端子的方式引出了树莓派的所有GPIO,在接线时能够更稳定与可靠。接线端子上方贴有彩色丝印标识,丝印清晰且不易损坏。接线端子下方,板载LED对应端子口,指示端口电平状态。

特点

产品参数

产品尺寸图

尺寸图

产品外观图

产品外观图

技术规格

说明

扩展板默认点亮CE0、CE1、SDA1、SCL1、RXD、TXD、I022、IO21、SDA0、SCL0、3.3V和5V端口

默认点亮

树莓派引脚说明

本产品采用BCM引脚映射标注

使用教程

1. GPIO示例

本示例使用扩展板自带的LED进行LED闪烁演示。

import time
from traceback import print_list
import RPi.GPIO as GPIO

pin_list=[4,27,21,13,26,23,22,12,20,19,24,25,16,5,6,17,18,10,9,11,8]
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_list,GPIO.OUT)
GPIO.setwarnings(False)

while True:
  GPIO.outp(pin_list,GPIO.LOW)
  time.sleep(0.5)
  GPIO.output(pin_list,GPIO.HIGH)
  time.sleep(0.5)

LED闪烁

2. I2C示例

本示例使用SEN0405加速度传感器进行演示。 LIS库下载地址,加速度传感器示例程序下载。选择example > LIS2DW12文件夹中的程序。

连线示意图:

IO Expansion HAT for Raspberry Pi
#include <DFRobot_LIS2DW12.h>

DFRobot_LIS2DW12_I2C acce;

void setup(void){

  Serial.begin(9600);
  while(!acce.begin()){
     Serial.println("Communication failed, check the connection and I2C address setting when using I2C communication.");
     delay(1000);
  }
  Serial.print("chip id : ");
  Serial.println(acce.getID(),HEX);
  acce.softReset();
  acce.continRefresh(true);
  acce.setDataRate(DFRobot_LIS2DW12::eRate_50hz);
  acce.setRange(DFRobot_LIS2DW12::e2_g);
  acce.setFilterPath(DFRobot_LIS2DW12::eLPF);
  acce.setFilterBandwidth(DFRobot_LIS2DW12::eRateDiv_4);
  acce.setPowerMode(DFRobot_LIS2DW12::eContLowPwrLowNoise2_14bit);
  Serial.print("Acceleration:\n");
  delay(100);
}

void loop(void){
    Serial.print("x: ");
    Serial.print(acce.readAccX());
    Serial.print(" mg \ty: ");
    Serial.print(acce.readAccY());
    Serial.print(" mg \tz: ");
    Serial.print(acce.readAccZ());
    Serial.println(" mg");
    delay(300);
}

结果:

I2C结果

3.SPI示例

本示例使用SEN0405加速度传感器进行演示。

连线示意图:

IO Expansion HAT for Raspberry Pi
#include <DFRobot_LIS2DW12.h>

DFRobot_LIS2DW12_SPI acce(/*cs = */LIS2DW12_CS,&SPI);
//DFRobot_LIS2DW12_SPI acce(/*cs = */LIS2DW12_CS);

void setup(void){

  Serial.begin(9600);
  while(!acce.begin()){
     Serial.println("Communication failed, check the connection and I2C address setting when using I2C communication.");
     delay(1000);
  }
  Serial.print("chip id : ");
  Serial.println(acce.getID(),HEX);
  acce.softReset();
  acce.continRefresh(true);
  acce.setDataRate(DFRobot_LIS2DW12::eRate_50hz);
  acce.setRange(DFRobot_LIS2DW12::e2_g);
  acce.setFilterPath(DFRobot_LIS2DW12::eLPF);
  acce.setFilterBandwidth(DFRobot_LIS2DW12::eRateDiv_4);
  acce.setPowerMode(DFRobot_LIS2DW12::eContLowPwrLowNoise2_14bit);
  Serial.print("Acceleration:\n");
  delay(100);
}

void loop(void){
    Serial.print("x: ");
    Serial.print(acce.readAccX());
    Serial.print(" mg \ty: ");
    Serial.print(acce.readAccY());
    Serial.print(" mg \tz: ");
    Serial.print(acce.readAccZ());
    Serial.println(" mg");
    delay(300);
}

结果:

SPI结果图

疑难解答

更多问题及有趣的应用,请访问论坛

更多