系统功能要求:
系统上电显示“欢迎使用请稍后”,两秒后进入正常页面显示。
第一行第一路和第二路的光电检测状态
第二行显示第三路光电检测状态
第三行显示第四路光电检测状态
第四行显示第五路光电检测状态
任意一路光电检测传感器检测到物体后会打开电磁阀
主要功能模块原理图:
电源时钟烧录接口:
单片机和按键输入电路:
传感器采集电路:
继电器控制电路:
资料获取地址:
https://shop272529339.taobao.com
系统主要功能模块代码
初始化代码:
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
InitVar();
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
//在HAL库初始化串口1后调用
HAL_Delay(100);
SetUart1RxToInput();
HAL_Delay(50);
//uart1打开接收中断
HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);
InitOled();
InitOledDisp();
系统控制代码:
//系统信息更新
void SystemControl(void)
{
char textBuf[20];
//读PA0状态并显示
if(GetPA0Status()==LOW_LEVEL)
{
pa0State = true;
sprintf(textBuf,"CH1:On ");
}
else
{
pa0State = false;
sprintf(textBuf,"CH1:Off ");
}
OledShowString(0, 0, (uint8_t*)textBuf, OLED_FONT_8X16);
//读PA1状态并显示
if(GetPA1Status()==LOW_LEVEL)
{
pa1State = true;
sprintf(textBuf,"CH2:On ");
}
else
{
pa1State = false;
sprintf(textBuf,"CH2:Off ");
}
OledShowString(64, 0, (uint8_t*)textBuf, OLED_FONT_8X16);
//读PA2状态并显示
if(GetPA2Status()==LOW_LEVEL)
{
pa2State = true;
sprintf(textBuf,"CH3:On ");
}
else
{
pa2State = false;
sprintf(textBuf,"CH3:Off ");
}
OledShowString(0, 2, (uint8_t*)textBuf, OLED_FONT_8X16);
//读PA3状态并显示
if(GetPA3Status()==LOW_LEVEL)
{
pa3State = true;
sprintf(textBuf,"CH4:On ");
}
else
{
pa3State = false;
sprintf(textBuf,"CH4:Off ");
}
OledShowString(0, 4, (uint8_t*)textBuf, OLED_FONT_8X16);
//读PA4状态并显示
if(GetPA4Status()==LOW_LEVEL)
{
pa4State = true;
sprintf(textBuf,"CH5:On ");
}
else
{
pa4State = false;
sprintf(textBuf,"CH5:Off ");
}
OledShowString(0, 6, (uint8_t*)textBuf, OLED_FONT_8X16);
//系统控制
if((pa0State==true)||(pa1State==true)||(pa2State==true)||(pa3State==true)||(pa4State==true))
{
RELAY_ON();
}
else
{
RELAY_OFF();
}
}
此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。