STM32小项目01-红外模块控制电磁推杆伸缩

STM32小项目01-红外模块控制电磁推杆伸缩

项目要求:

通过红外模块识别传送带中移动的物体是否靠近目标位置,当物体到达目标位置则立即控制电磁推杆下压并在较短时间内复位,完成一次下压动作后则进入下一次的等待与识别过程。

所用材料:

  1. 控制芯片-STM32C8T6
    图1

  2. 红外传感器模块(物体靠近输出低电平)
    在这里插入图片描述

  3. 两路继电器

  4. 24V电磁推杆

  5. 220V转24V直流变压器

  6. 24V直流转5V直流降压模块

控制方案:

主控芯片为STM32C8T6,其与红外传感器模块相连,并将传感器信号作为输入信号,分配IO口为PA1;其与继电器相连,并输出信号控制继电器的通断以控制电磁推杆的伸缩,分配IO口为PA2;

一、器件接线
红外模块STM32继电器电推杆直流电源
红外_OUTSTM_PA1
STM_PA2继电器_IN2
继电器_NO2电推杆_A线
红外_VCC+5V
红外_GNDGND
STM_5V+5V
STM_GNDGND
继电器_DC++5V
继电器_DC-GND
继电器_COM224V_GND
电推杆_B线+24V
二、STM32CubeMX配置
  1. 新建工程-选择F103C8芯片
    F103C8T6最小版
  2. SYS配置
    将DEBUG选项设置为Serial Wire
    在这里插入图片描述
  3. RCC配置
    选择高速外部时钟
    在这里插入图片描述
  4. GPIO配置
    在这里插入图片描述
  5. 时钟配置
    在这里插入图片描述
  6. 文件设置
    在这里插入图片描述
三、MDK5程序编写

在main.c的main函数中添加如下代码:

  while (1)
  {
		if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)==0)
		{
			HAL_Delay(20);
			if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)==0)
			{
				HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);
				HAL_Delay(100);
				HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET);
				while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)==0);
			}
		}
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
四、程序附录

main.c

int main(void)
{

  HAL_Init();

  SystemClock_Config();
  MX_GPIO_Init();
  MX_TIM3_Init();
  /* USER CODE BEGIN 2 */
//	__HAL_TIM_CLEAR_IT(&htim3, TIM_IT_UPDATE);
//	HAL_TIM_Base_Start_IT(&htim3);							 //内部定时器TIM3中断使能
  /* USER CODE END 2 */

  while (1)
  {
		if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)==0)
		{
			HAL_Delay(20);
			if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)==0)
			{
				HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);
				HAL_Delay(100);
				HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET);
				while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)==0);
			}
		}
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tony0925

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值