
开源协议
:GPL 3.0
描述
硬件设计部分

为了节省IO资源这里我采用SN74HC595移位寄存器来驱动LED,QA引脚是数据的输入即为 你想要显示的数据,SRCLR引脚则是移位寄存器将数据一位一位的移动进去,RCLK引脚则是锁存引脚将数据锁存起来,随后就是数码管动态刷新显示数据了。
这里的限流电阻R1,R2,R3可以不要,或者选个小一点的,50欧姆左右。

按键电路很简单,直接连接普通IO口引脚就可以了,因为CW32内部IO口有上下拉电阻所以外部我没有在画电阻,配置按键的时候直接使用内部上下拉电阻即可。

这是LED显示电路方便我调试使用的,注意要选择合适的限流电阻,一般经验值在1k-4.7k之间。

这是本次的主角采用立创帝文心开发板CW32F030C8T6,我自己画了一个封装和原理图库,内置1.5V,2.5V电压基准源,也可以使用外部电压基准,adc精确度在0.366mv,。
ARM® Cortex®-M0+ 32 位微控制器,64K 字节FLASH,8K 字节RAM,内有丰富的资源GPIO,II2C,SPI,USART,ADC等等具体请看它的数据手册。


这是一个USB转串口模块,方便调试用的,注意这里CC1要接上5.1k电阻,D+,D-一对差分信号线,要等长处理,CH340则USB转串口.

在规则里面设置差分对,然后等长调节

SHT40温湿度模块,这里SDA是数据线,SCL是时钟线,PCB走线要类差分,这里R18和R19选择要合适一般经验值有4.7k,10k。具体多少根据实际要求来。

这是电流采样模块,这里R14是采样电阻使用2512封装功率3w的,在pcb设计中要开尔文接线如图
,还有D4和R15是为了保护作用的,D4是稳压5V防止电压意外超过CW32IO的耐受电压,R15是限流电阻也是为了保护CW32IO口。
PCB3D图片

3D外壳

实物效果图

软件部分
温湿度
void SHT40_GetData(SHT40_t *sht40){
SHT40_I2C_Start();
SHT40_I2C_Write_Byte(SHT40_WRITE);
SHT40_I2C_WaitAck();
SHT40_I2C_Write_Byte(SHT40_Read_Mode);
SHT40_I2C_WaitAck();
SHT40_I2C_Stop();
delay_ms(10);
SHT40_I2C_Start();
SHT40_I2C_Write_Byte(SHT40_READ);
SHT40_I2C_WaitAck();
for(uint8_t i = 0; i < 6; i++){
sht40->read_data[i] = SHT40_I2C_Read_Byte();
if(i == 5){
SHT40_I2C_NoAck();
}else{
SHT40_I2C_Ack();
}
}
SHT40_I2C_Stop();
sht40->Temperature = (1.0*175*(sht40->read_data[0]*256 + sht40->read_data[1])) / 65535.0 - 45.0;
sht40->Humidity = (1.0*125*(sht40->read_data[3]*256 + sht40->read_data[4])) / 65535.0 - 6.0;
sht40->Temp = (uint16_t)(sht40->Temperature*10);
sht40->humi = (uint16_t)(sht40->Humidity*10);
}
这里我是用软件I2C自己写了一个协议,当发出地址之后一定要延时10ms芯片手册里面有说
读取协议倒是很简单发送地址和命令我这里选择重复测量,然后就是读取数据,最后根据公式

进行转换。
显示部分
OLED_ShowChinese(0,0,0,24,1);
OLED_ShowChinese(24,0,1,24,1);
sprintf((char *)OLED_Data,":%.1fC",sht40.Temperature);
OLED_ShowString(24*2,0,(uint8_t*)OLED_Data,24,1);
OLED_ShowChinese(0,24,3,24,1);
OLED_ShowChinese(24,24,4,24,1);
sprintf((char *)OLED_Data,":%.1fH",sht40.Humidity);
OLED_ShowString(24*2,24,(uint8_t*)OLED_Data,24,1);
汉字使用PCtoLCD2002进行取模,为了方便数据显示我这里使用sprintf和printf用法差不多
- 打开取模软件
- 汉字取模
2.1 点击模式,选择字符模式

2.2点击选项,进行设置
设置如下,点阵内的数字手动输入999,然后点击确定。

- 以生成16x16的汉字为例
- 3.1字宽,字高选择16

3.2在输入栏输入需要取模的汉字(只能是汉字),然后点击生成字模。

- 将生成的字模复制到h的数组中

电压电流
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论