硬件开发_基于STM32单片机的电脑底座系统

一.系统概述

电脑智能底座系统具备监测与控制底座工作状态的能力,主要涵盖温度控制和角度调节功能,

  1. 数据采集:

    • 以STM32单片机为核心控制单元,通过温度传感器实时获取底座的温度数据。
  2. 数据展示与设置:

    • 实时显示温度信息,方便用户监控底座的温度状态。
    • 提供温度阈值设定功能,一旦监测到温度超过预设值,系统会自动触发风扇工作。
  3. 风扇控制:

    • 通过控制系统启动或停止风扇,以调节底座的温度,确保其维持在适宜范围内。
  4. 电机角度调节:

    • 用户可以通过控制按钮调整电机的旋转角度和方向,实现底座的角度调节。

二.电路设计

电路图采用Altium Designer进行设计:

  1. 通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
  2. 通过步进电机驱动调节装置,步进电机的IN输入端接单片机GPIO口,OUT输出端接电机;
  3. 通过DS18B20进行温度检测,并通过单总线与单片机完成数据通信;
  4. 通过0.96寸的OLED12864进行数据显示,采用IIC总线的形式与单片机进行通信;
  5. 使用独立按键进行阈值设定和电机调节控制,按键的一端接地,一端接单片机的GPIO口;
  6. 通过继电器模拟风扇控制,并将继电器的数据输出脚与单片机的GPIO脚进行连接。

三.程序设计

#include "sys.h"

#include "delay.h"

#include "adc2.h"

#include "math.h"

#include "key.h"

#include "OLED_I2C.h"

#include "Control_Report_To_Police.h"

int main(void)

{

u32 JR6001_Uart_bound=9600;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级

delay_init(); //延时函数初始化

KEY_Init(); //按键IO初始化

ULN2003_GPIOA_Init(); //电机初始化

Relay_init(); //继电器初始化

复制代码
while(DS18B20_Init()){};       //  温度初始化
 
OLED_Init();         //OLED初始化
OLED_CLS();          //OLED清屏

/显示汉字 ***/

OLED_ShowCN(0,4,10); //温度

OLED_ShowCN(0+16,4,11);

while(1)

{

OLED_Display_Cotrol(); //显示控制函数

}

}

四.资料内容

24-32-19

相关推荐
byte轻骑兵5 分钟前
【LMP】规范精讲[11]: 暗房里的协议——产线射频测试是怎么指挥芯片的
物联网·通信协议·蓝牙协议·lmp·蓝牙链路管理
comyccccc17 分钟前
平衡车底板设计:精准布局与高效布线学习笔记
单片机·嵌入式硬件
La Pulga29 分钟前
【FreeRTOS源码学习笔记】任务创建
笔记·stm32·mcu·学习·嵌入式·freertos·实时操作系统
芯片人0071 小时前
GEK100系列芯片进入上市公司上海移远通信供应链
人工智能·单片机·嵌入式硬件·物联网·芯片
fly_sunnn2 小时前
ADC模数转换器
单片机·嵌入式硬件
我叫洋洋2 小时前
I2C 为什么必须用开漏输出?从推挽短路、线与,到上拉电阻取值
单片机·嵌入式硬件
无敌贵点大王3 小时前
从寄存器层面重学STM32(5)——串口USART理论部分
stm32·单片机·嵌入式硬件
女神下凡3 小时前
芯参谋(83):AliOS Things_驱动开发指南
arm开发·驱动开发·单片机·嵌入式硬件·设计规范·1024程序员节
女神下凡3 小时前
芯参谋(84):Linux eMMC 驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件
szxinmai主板定制专家15 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x