# DFRobot_UnihikerExpansion
**Repository Path**: dfrobot/DFRobot_UnihikerExpansion
## Basic Information
- **Project Name**: DFRobot_UnihikerExpansion
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-05-14
- **Last Updated**: 2025-05-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DFRobot_UnihikerExpansion
- [English Version](./README.md)
这是一款K10 扩展板

## 产品链接(https://www.dfrobot.com.cn)
SKU:DFR12016
## 目录
* [概述](#概述)
* [库安装](#库安装)
* [方法](#方法)
* [兼容性](#兼容性y)
* [历史](#历史)
* [创作者](#创作者)
## 概述
提供一个Arduino库给k10扩展模块,此库具有以下功能:
获取 gpio、dht11、dht22、ds18b20、adc、battery、sr04、ir数据
设置 ws2812、gpio、servo、motor
发送 红外
## 库安装
这里提供两种使用本库的方法:
1.打开Arduino IDE,在状态栏中的Tools--->Manager Libraries 搜索"DFRobot_UnihikerExpansion"并安装本库.
2.首先下载库文件,将其粘贴到\Arduino\libraries目录中,然后打开examples文件夹并在该文件夹中运行演示.
## 方法
```C++
/**
* @fn: getBattery
* @brief: 获取电池电量
* @return: uint8_t 0-100 的百分比
*/
uint8_t getBattery(void);
/**
* @fn: getIRData
* @brief: 获取红外数据
* @return uint32_t 红外数据的编码
*/
uint32_t getIRData(void);
/**
* @fn: sendIR
* @brief: 发送红外数据
* @param data: 红外数据
* @return: uint8_t 返回结果
* @retval: 0x00 发送成功
* @retval: 0xff 发送失败
*/
uint8_t sendIR(uint32_t data);
/**
* @fn: setWS2812
* @brief: 设置ws2812
* @param data: 数据
* @param bright: 亮度 0-255
* @return: uint8_t 返回结果
* @retval: 0x00 发送成功
* @retval: 0xff 发送失败
*/
uint8_t setWS2812(uint32_t *data, uint8_t bright);
/**
* @fn: setMode
* @brief: 设置io口模式
* @return: uint8_t 返回结果
* @retval: 0x00 发送成功
* @retval: 0xff 发送失败
*/
uint8_t setMode(eIONumber_t number, eIOType_t mode);
/**
* @fn: setGpioState
* @brief: 设置gpio电平
* @param number: io号
* @param state: 高低电平
* @return: uint8_t 返回结果
* @retval: 0x00 发送成功
* @retval: 0xff 发送失败
*/
uint8_t setGpioState(eIONumber_t number, eGpioState_t state);
/**
* @fn: getGpioState
* @brief: 获取gpio电平
* @param number: io号
* @return: uint8_t io口电平
*/
uint8_t getGpioState(eIONumber_t number);
/**
* @fn: getADCValue
* @brief: 获取adc的值
* @param number: io号
* @return: uint16_t adc值
*/
uint16_t getADCValue(eIONumber_t number);
/**
* @fn: getDHTValue
* @brief: 获取dht 数据
* @param number: io号
* @return: sDhtData_t dhtData
* @retval: 温度 dhtData.temperature
* @retval: 湿度 dhtData.humidity
*/
sDhtData_t getDHTValue(eIONumber_t number);
/**
* @fn: get18b20Value
* @brief: 获取18b20的数值
* @param number: io号
* @return: 温度
*/
float get18b20Value(eIONumber_t number);
/**
* @fn: setMotorPeriod
* @brief: 设置电机的周期
* @param number: 电机号
* @param motorPeriod:周期
* @return: NULL
*/
void setMotorPeriod(ePeriod_t number ,uint16_t motorPeriod);
/**
* @fn: setMotorDuty
* @brief: 设置电机占空比
* @param number: 电机号
* @param duty: 占空比数值
* @return: NULL
*/
void setMotorDuty(eMotorNumber_t number, uint16_t duty);
/**
* @fn: setServoAngle
* @brief: 设置舵机角度
* @param number: 舵机号
* @param angle: 舵机角度 (0-180)
* @return: NULL
*/
void setServoAngle(eServoNumber_t number, uint8_t angle);
/**
* @fn: setServo360
* @brief 设置360°舵机的方向和速度
* @param number: 舵机号
* @param direction 舵机方向
* @param speed 舵机速度(0-100)
* @return: NULL
*/
void setServo360(eServoNumber_t number, eServo360Direction_t direction, uint8_t speed);
/**
* @fn: getSr04Distance
* @brief: 获取sr04距离
* @return: 距离
* @retval: -1 is 超时
* @retval: -2 is 超时
* @retval: -3 is 超出测量范围
*/
int16_t getSr04Distance(void);
```
## 兼容性
MCU | Work Well | Work Wrong | Untested | Remarks
------------------ | :----------: | :-------------: | :---------: | :----:
Arduino Uno | √ | | |
ESP32-S3 | √ | | |
## 历史
- 2025/04/03 - V1.0.0 版本
## 创作者
Written by ZhixinLiu(zhixin.liu@dfrobot.com), 2025. (Welcome to our website)