1.可控硅简介

可控硅,也叫晶闸管,广泛应用于交流控制系统中,可实现小功率控制大功率设备。可控硅分单向可控硅和双向可控硅,双向可控硅在结构上相当于两个单向可控硅反向连接,可以实现双向导通。以BTA41为例,其电路符号及封装如下:

G极为控制极,当G极有正向(或负向)脉冲时,双向可控硅导通,直到交流信号过零点时关断,如下图所示。因此,要通过单片机控制输出电压,首先需要检测交流信号的过零点,然后延时一定时间后,输出一个脉冲,使可控硅导通。延时时间越长,导通时间越短,输出电压越低。

2.电路设计

首先过零检测电路如下。原理比较简单,由一个整流桥和光耦组成。

输出波形如下图所示。上方为整流桥输出的波形,下方为光耦输出的波形。光耦输出端直接接单片机IO口即可。

可控硅驱动一般采用专用的光耦,该光耦内部集成了小功率的可控硅,用于驱动外部大功率的可控硅。电路如下:

3.程序设计

首先使能外部中断和一个定时器,定时器打开溢出中断。初始化部分可参考之前的公众号文章。外部中断用于检测过零点,定时器用于控制导通角和输出脉冲。

调压过程:单片机外部中断被触发后(检测到过零点),根据要输出的电压,计算导通角(延时时间),通过定时器设置延时时间,开启定时器溢出中断。定时时间到后输出一个脉冲,控制可控硅导通。程序如下:

外部中断函数:

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){       ac_flag = 0;       if(VoltFan != 0)       {              if(VoltFan > 220)//大于220V 直接导通              {                     HAL_GPIO_WritePin(DOUT2_GPIO_Port,DOUT2_Pin,GPIO_PIN_SET);              }              else              {                     ac_delay = ac_delay_us[VoltFan/5];//查表获得延时时间                     __HAL_TIM_SET_AUTORELOAD(&htim2,ac_delay);//设置定时器延时时间                     __HAL_TIM_ENABLE_IT(&htim2,TIM_IT_UPDATE);                     __HAL_TIM_ENABLE(&htim2);              }       }}

定时器中断函数:

void TIM2_IRQHandler(void){  /* USER CODE BEGIN TIM2_IRQn 0 *//* USER CODE END TIM2_IRQn 0 */  //HAL_TIM_IRQHandler(&htim2);  /* USER CODE BEGIN TIM2_IRQn 1 */       if (__HAL_TIM_GET_IT_SOURCE(&htim2, TIM_IT_UPDATE) != RESET)       {              if(ac_flag == 0)              {                     ac_flag = 1;                     HAL_GPIO_WritePin(DOUT2_GPIO_Port,DOUT2_Pin,GPIO_PIN_SET);//输出脉冲                     __HAL_TIM_CLEAR_IT(&htim2, TIM_IT_UPDATE);                     __HAL_TIM_SET_AUTORELOAD(&htim2,100);//设置定时时间100us(脉冲宽度)              }              else if(ac_flag == 1)              {                     HAL_GPIO_WritePin(DOUT2_GPIO_Port,DOUT2_Pin,GPIO_PIN_RESET);//100us时间到 关闭脉冲                     __HAL_TIM_CLEAR_IT(&htim2, TIM_IT_UPDATE);                     __HAL_TIM_DISABLE(&htim2);              }       }  /* USER CODE END TIM2_IRQn 1 */}

可控硅的触发脉冲一般在20~50us即可,感性负载脉冲宽度需要加大,一般不小于100us。

程序中延时时间是预先计算好通过查表获得的。计算方法通过计算sinx的积分获得,可参考下表。

欢迎关注公众号"嵌入式技术开发",大家可以后台给我留言沟通交流。如果觉得该公众号对你有所帮助,也欢迎推荐分享给其他人。

单片机控制可控硅调压相关推荐

  1. 基于51单片机的可控硅调压调光程序-带过零检测

    基于51单片机的可控硅调压调光程序-带过零检测 #include<reg52.h> #include<intrins.h> sbitledRS=P1^0; sbitledRW= ...

  2. p620光耦接单片机_基于51单片机的可控硅调压调光程序-带过零检测

    标签: 单片机 单片机(Microcontrollers,亦称MCU)包括了CPU.随机存储器RAM.只读存储器ROM.多种I/O口和中断系统.定时器/计数器等功能集成到一块硅片上构成的一个小而完善的 ...

  3. 单片机 c语言 可控硅,单片机控制可控硅电路

    可用于单片机控制可控硅电路中,可减小产品的体积和重量.-- 为什么要分开用R1.R2.R3呢?都是串一起的,用一个电阻不行吗? 楼主做过零检测做什么用? 1.为了增加安全性 2.控制可控硅输出功率 如 ...

  4. 单片机 c语言 可控硅,单片机控制可控硅.doc

    单片机控制可控硅 第 PAGE \* Arabic \* MERGEFORMAT 10 页第 PAGE \* Arabic \* MERGEFORMAT 10 页 1 调光控制器设计 在日常生活中,我 ...

  5. 单片机自动调光C语言,C51单片机控制40w调光电源C语言程序

    C51单片机控制40w调光电源C语言程序,12M晶振,500Hz 2ms,1000Hz 1ms,300Hz 3.3ms,330Hz 3ms .3ms为一个周期,30us中断一次,共可以有100次中断, ...

  6. stm32双向可控硅调压程序_单向可控硅和双向可控硅的测量与模块测试

    可控硅,是可控硅整流元件的简称,是一种具有三个PN结的四层结构的大功率半导体器件,亦称为晶闸管.具有体积小.结构相对简单.功能强等特点,是比较常用的半导体器件之一. 可控硅导通条件:一是可控硅阳极与阴 ...

  7. stm32双向可控硅调压程序_双向可控硅的工作原理

    双向可控硅的工作原理 1.可控硅是P1N1P2N2四层三端结构元件,共有三个PN结,分析原理时,可以把它看作由一个PNP管和一个NPN管所组成 当阳极A加上正向电压时,BG1和BG2管均处于放大状态. ...

  8. 如何用单片机控制可控硅c语言程序,可控硅的斩波控制的实现--C语言源代码

    //=======可控硅斩波变更定义================ typedefstruct TRIDRIVE { uint8 SetRPow ; //功率值 uint8 R_Dly ;//过零后 ...

  9. 大功率可控硅调压电路

    作者 阮勇 来源 电子报 浏览 2374 发布时间 2008-05-29 一般书刊介绍的大功率可控硅触发电路都比较复杂,而且有些元件难以购买.笔者仅花几元钱制作的触发电路已成功触发100A以上的可控硅 ...

  10. 用STM32F103单片机控制电调制动无刷电机

    用电调控制无刷电机制作蓝牙遥控飞艇 [注:学习STM32总结做的笔记,大神勿喷.有不足之处还望不吝赐教,谢谢.工程代码在最后.] 蓝牙控制 调控电调 无刷电机 STM32F103单片机 用电调控制无刷 ...

最新文章

  1. android图片gif动画效果,android中类似于gif 实现图片的动画效果
  2. 柯西不是你 - 杨宗纬
  3. Android给自定义按键添加广播和通过广播给当前焦点输入框赋值
  4. nodejs-stream部分
  5. Ubuntu18.04深度学习环境配置(简易方式)
  6. leetcode(链表专题)
  7. Anaconda日志
  8. android bundle传递参数,android – 使用bundle将数据从一个活动传递...
  9. 天梯—重要的话说三遍(C语言)
  10. Windows下ab压力测试工具的模拟表单提交使用
  11. 微信公众号(测试号)开发
  12. 造成增长停滞的各种原因
  13. 心理测试单机小软件,十个有趣的心理小测试 好玩的心理测试题
  14. KeyBERT进行中文关键词提取
  15. 移动开发周刊:Android ImageView正确使用、WebView与JS交互解析
  16. 腾讯WeTest&TesterHome手游测试沙龙
  17. cx_Oracle.DatabaseError: ORA-01036: 非法的变量名/编号
  18. 学习笔记:Eclipse IDE for javaEE 64位下载安装
  19. python 累乘函数_python之函数(二)
  20. node-opcua的使用 --- [2] 添加对象和变量

热门文章

  1. 【方差分析】之matlab求解
  2. 【聚焦群落生态学】统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法
  3. 桌面美化 Python tkinter倒计时工具
  4. Excel如何表格中一键生成柱表图
  5. MariaDB 安装
  6. 山海演武传·黄道·第一卷 雏龙惊蛰 第四章 异兽
  7. leetcode题解持续更新
  8. 基于51单片机控制的BUCK开关电源Proteus仿真
  9. 笔记本cpu降压 XTU
  10. DXGI高帧率屏幕录像软件源码解析(声音捕获,抓屏,ffmpeg录像,MP4录像,flv录像,麦克风采集)(第2篇声音采集部分)