- AC 위상 각 제어 란 무엇이며 어떻게 작동합니까?
- 위상 각 제어의 과제
- AC 위상 각 제어 회로에 필요한 재료
- AC 위상 각 제어 회로도
- AC 위상 각 제어 회로 – 작동 중
- AC 위상 각 제어 회로를위한 PCB 설계
- AC 위상 각 제어를위한 Arduino 코드
- AC 위상 각 제어 회로 테스트
- 추가 향상
홈 오토메이션 시스템은 날마다 인기를 얻고 있으며, 요즘에는 릴레이 또는 스위치와 같은 간단한 제어 메커니즘을 사용하여 특정 기기를 쉽게 켜고 끌 수있게되었습니다. 우리는 이전에 릴레이를 사용하여 많은 Arduino 기반 홈 자동화 프로젝트를 구축했습니다. 그러나 단순히 전원을 켜거나 끄는 것보다이 AC 전원을 제어해야하는 가전 제품이 많이 있습니다. 이제 AC 위상 각 제어 의 세계로 들어가십시오. AC 위상 각을 제어 할 수있는 간단한 기술입니다. 즉 , 천장 선풍기 나 다른 AC 팬 의 속도를 제어하거나 LED 또는 백열 전구의 강도를 제어 할 수도 있습니다.
간단하게 들리지만 실제로 구현하는 과정은 매우 어렵 기 때문에이 기사에서는 555 타이머 를 사용하여 간단한 AC 위상 각 제어 회로 를 구축 하고 마지막으로 Arduino를 사용합니다. 백열 전구의 강도를 제어하는 간단한 PWM 신호를 생성합니다. 이제 명확하게 상상할 수 있듯이이 회로를 사용하면 단일 Arduino로 팬 및 Ac 조명 디머를 제어 할 수있는 간단한 홈 자동화 시스템을 구축 할 수 있습니다.
AC 위상 각 제어 란 무엇이며 어떻게 작동합니까?
AC 위상 각 제어는 AC 사인파를 제어하거나 절단 할 수있는 방법입니다. 스위칭 소자의 점 호각이 후속 변한다 제로 크로싱 검출을 수정 된 정현파에 비례하여 변화 평균 전압 출력 결과 이미지는 아래에서 더 설명한다.
보시다시피 먼저 AC 입력 신호가 있습니다. 다음으로, 10ms마다 인터럽트를 생성하는 제로 크로싱 신호가 있습니다. 다음으로, 게이트 트리거 신호가 있습니다. 일단 트리거링 신호를 받으면 트리거 펄스를 제공하기 전에 일정 기간 동안 기다립니다. 더 많이 기다릴수록 평균 전압을 더 줄일 수 있으며 그 반대의 경우도 마찬가지입니다. 이 기사의 뒷부분에서 더 많은 주제를 논의 할 것입니다.
위상 각 제어의 과제
회로도와 모든 재료 요구 사항을 살펴보기 전에 이러한 종류의 회로와 관련된 몇 가지 문제와 우리 회로가이를 해결하는 방법에 대해 이야기 해 보겠습니다.
여기서 우리의 목표는 모든 종류의 홈 자동화 애플리케이션에 대해 마이크로 컨트롤러를 사용하여 AC 사인파의 위상 각 을 제어하는 것입니다. 아래 이미지를 보면 노란색으로 사인파가 있고 녹색으로 제로 크로싱 신호가 있음을 알 수 있습니다.
50Hz 사인파로 작업 할 때 제로 크로싱 신호가 10ms마다 들어오는 것을 볼 수 있습니다. 마이크로 컨트롤러에서는 10ms마다 인터럽트를 생성합니다. 그 외에 다른 코드를 넣으면 중단으로 인해 다른 코드가 작동하지 않을 수 있습니다. 인도에서 듣는 라인 주파수는 50Hz이므로 50Hz 사인파로 작업하고 있으며 AC 전원을 제어하려면 특정 시간 프레임에서 TRIAC를 켜고 꺼야합니다. 이를 위해 마이크로 컨트롤러 기반 위상 각 제어 회로는 제로 크로싱 신호를 인터럽트로 사용하지만,이 방법의 문제는 페이스 각도 제어 코드 외에 다른 코드를 실행할 수 없다는 것입니다. 루프 사이클과 해당 코드 중 하나가 작동하지 않습니다.
예를 들어 설명하겠습니다. 백열등의 밝기를 제어해야하고 동시에 온도를 측정해야하는 프로젝트를 수행해야한다고 가정합니다. 백열 전구의 밝기를 제어하려면 위상 각 제어 회로가 필요합니다. 또한 온도 데이터도 함께 읽어야합니다. 시나리오 인 경우 DHT22 센서가 시간이 오래 걸리기 때문에 회로가 제대로 작동하지 않습니다. 출력 데이터를 제공하십시오. 이 기간 동안 위상 각 제어 회로는 작동을 멈 춥니 다. 즉, 폴링 모드에서 구성한 경우, 인터럽트 모드에서 제로 크로싱 신호를 구성한 경우 DHT 데이터를 읽을 수 없습니다. CRC 검사가 실패하기 때문입니다.
이 문제를 해결하기 위해 다른 위상 각 제어 회로에 대해 다른 마이크로 컨트롤러를 사용할 수 있지만 BOM 비용이 증가합니다. 또 다른 솔루션은 555 타이머와 같은 일반 구성 요소로 구성된 회로를 사용하는 것입니다.
AC 위상 각 제어 회로에 필요한 재료
아래 이미지는 회로를 만드는 데 사용되는 재료를 보여줍니다. 이것은 매우 일반적인 구성 요소로 만들어 졌으므로 지역 취미 상점에서 나열된 모든 재료를 찾을 수 있습니다.
또한 데모 프로젝트이므로 단일 채널을 사용하여 유형과 수량과 함께 아래 표에 구성 요소를 나열했습니다. 그러나 회로는 요구 사항에 따라 쉽게 확장 할 수 있습니다.
Sl. 아니요 |
부속 |
유형 |
수량 |
1 |
나사 식 터미널 5.04mm |
커넥터 |
삼 |
2 |
남성 헤더 2.54mm |
커넥터 |
1X2 |
삼 |
56K, 1W |
저항기 |
2 |
4 |
1N4007 |
다이오드 |
4 |
5 |
0.1uF, 25V |
콘덴서 |
2 |
6 |
100uF, 25V |
콘덴서 |
2 |
7 |
LM7805 |
전압 조정기 |
1 |
8 |
1K |
저항기 |
1 |
9 |
470R |
저항기 |
2 |
10 |
47R |
저항기 |
2 |
11 |
82K |
저항기 |
1 |
12 |
10,000 |
저항기 |
1 |
13 |
PC817 |
광 커플러 |
1 |
14 |
NE7555 |
IC |
1 |
12 |
MOC3021 |
OptoTriac 드라이브 |
1 |
13 |
IRF9540 |
MOSFET |
1 |
14 |
3.3uF |
콘덴서 |
1 |
15 |
전선 연결 |
전선 |
5 |
16 |
0.1uF, 1KV |
콘덴서 |
1 |
17 |
Arduino Nano (테스트 용) |
마이크로 컨트롤러 |
1 |
AC 위상 각 제어 회로도
AC 위상 각 제어 회로의 회로도는 아래에 나와 있습니다.이 회로는 매우 간단하며 일반적인 구성 요소를 사용하여 위상 각 제어를 달성합니다.
AC 위상 각 제어 회로 – 작동 중
이 회로는 매우 신중하게 설계된 구성 요소로 구성되어 있으므로 각각을 살펴보고 각 블록에 대해 설명하겠습니다.
제로 크로싱 감지 회로:
먼저, 목록에서 제로 크로싱 감지 회로는 4 개의 1n4007 다이오드 및 PC817 옵토 커플러와 함께 2 개의 56K, 1W 저항으로 만들어집니다. 그리고이 회로는 555 타이머 IC에 제로 크로싱 신호를 제공하는 역할을합니다. 또한 TRIAC 섹션에서 추가로 사용하기 위해 위상 및 중립 신호를 테이프로 분리했습니다.
LM7809 전압 조정기:
7809 전압 조정기는 회로에 전원을 공급하는 데 사용되며 회로는 전체 회로에 전원을 공급하는 역할을합니다. 또한 LM7809 IC의 디커플링 커패시터로 2 개의 470uF 커패시터와 0.1uF 커패시터를 사용했습니다.
NE555 타이머가있는 제어 회로:
위의 이미지는 555 타이머 제어 회로를 보여줍니다. 555는 단 안정 구성으로 구성되어 있으므로 제로 크로싱 감지 회로의 트리거 신호가 트리거에 도달하면 555 타이머가 저항을 사용하여 커패시터를 충전하기 시작합니다 (일반적으로) 그러나 우리 회로에는 저항 대신 MOSFET이 있으며 MOSFET의 게이트를 제어하여 커패시터로가는 전류를 제어하므로 충전 시간을 제어하므로 555 타이머의 출력을 제어합니다. 많은 프로젝트에서 우리는 프로젝트를 만들기 위해 555 타이머 IC를 활용했으며,이 주제에 대해 더 알고 싶다면 다른 모든 프로젝트를 확인할 수 있습니다.
TRIAC 및 TRIAC- 드라이버 회로:
TRIAC는 실제로 켜지고 꺼지는 메인 스위치 역할을하므로 AC 신호의 출력을 제어합니다. TRIAC를 구동하는 것은 MOC3021 광 트라이 악 드라이브이며, TRIAC를 구동 할뿐만 아니라 광학 절연, 0.01uF 2KV 고전압 커패시터를 제공하며 47R 저항은 고전압 스파이크로부터 회로를 보호하는 스 너버 회로를 형성합니다. 이는 유도 성 부하에 연결될 때 발생하는 전환 된 AC 신호의 비 정현파 특성이 스파이크의 원인입니다. 또한 역률 문제를 담당하지만 다른 기사의 주제입니다. 또한 다양한 기사에서 TRIAC를 선호하는 기기로 활용하고 있으며, 관심이 가는지 확인하실 수 있습니다.
저역 통과 필터 및 P 채널 MOSFET (회로에서 저항으로 작동):
82K 저항과 3.3uF 커패시터는 Arduino에서 생성 된 고주파 PWM 신호를 평활화하는 역할을하는 저역 통과 필터를 형성합니다. 앞서 언급했듯이 P 채널 MOSFET은 커패시터의 충전 시간을 제어하는 가변 저항기 역할을합니다. 이를 제어하는 것은 저역 통과 필터에 의해 평활화 된 PWM 신호입니다. 이전 기사에서 우리는 저역 통과 필터의 개념을 정리했습니다. 주제에 대해 더 알고 싶다면 능동 저역 통과 필터 또는 수동 저역 통과 필터에 대한 기사를 확인할 수 있습니다.
AC 위상 각 제어 회로를위한 PCB 설계
위상 각 제어 회로 용 PCB는 단면 기판으로 설계되었습니다. Eagle을 사용하여 PCB를 설계했지만 원하는 설계 소프트웨어를 사용할 수 있습니다. 내 보드 디자인의 2D 이미지는 아래와 같습니다.
모든 구성 요소간에 적절한 접지 연결을 만들기 위해 충분한 접지 충전이 사용됩니다. 12V DC 입력과 220V AC 입력은 왼쪽에 있고 출력은 PCB의 오른쪽에 있습니다. Gerber와 함께 Eagle의 전체 디자인 파일은 아래 링크에서 다운로드 할 수 있습니다.
- AC 위상 각 제어 회로 용 PCB 설계, GERBER 및 PDF 파일 다운로드
수제 PCB:
편의를 위해 수제 버전의 PCB를 만들었으며 아래에 나와 있습니다.
AC 위상 각 제어를위한 Arduino 코드
회로를 작동시키기 위해 간단한 PWM 생성 코드가 사용되며 코드와 설명은 아래에 나와 있습니다. 이 페이지 하단에서 전체 코드를 찾을 수도 있습니다. 먼저 필요한 모든 변수를 선언합니다.
const int analogInPin = A0; // 전위차계가 연결된 아날로그 입력 핀 const int analogOutPin = 9; // LED가 부착 된 아날로그 출력 핀 int sensorValue = 0; // 포트에서 읽은 값 int outputValue = 0; // PWM으로 값 출력 (아날로그 출력)
변수는 Analog 핀, analogOut 핀을 선언하고 다른 변수는 매핑 된 값을 저장, 변환 및 인쇄하는 것입니다. 다음으로 setup () 섹션에서 출력을 모니터링 할 수 있도록 9600 baud로 UART를 초기화합니다. 이것이 회로의 출력을 완전히 제어 할 수있는 PWM 범위를 찾는 방법입니다.
void setup () {// 9600bps에서 직렬 통신 초기화: Serial.begin (9600); }
다음으로 loop () 섹션에서 아날로그 핀 A0을 읽고 센서 값 변수에 값을 저장 한 다음 atmega의 PWM 타이머가 8 비트에 불과하기 때문에 센서 값을 0-255로 매핑합니다. Arduino 의 analogWrite () 함수로 PWM 신호를 설정합니다. 마지막으로 제어 신호의 범위를 찾기 위해 직렬 모니터 창에 값을 인쇄합니다.이 자습서를 따르는 경우 마지막 비디오를 통해 주제에 대한보다 명확한 아이디어를 얻을 수 있습니다.
sensorValue = analogRead (analogInPin); // 아날로그 값을 읽습니다. outputValue = map (sensorValue, 0, 1023, 0, 255); // 아날로그 출력 범위에 매핑합니다. analogWrite (analogOutPin, outputValue); // 아날로그 출력 값 변경: Serial.print ("sensor ="); // 결과를 직렬 모니터에 인쇄합니다. Serial.print (sensorValue); Serial.print ("\ t 출력 ="); Serial.println (outputValue);
AC 위상 각 제어 회로 테스트
위의 이미지는 회로의 테스트 설정을 보여줍니다. 12V 전원은 12V SMPS 회로에 의해 제공되며 부하는 우리의 경우 전구이며 팬과 같은 유도 부하로 쉽게 교체 할 수 있습니다. 또한 램프의 밝기를 조절하기 위해 전위차계를 부착 한 것을 알 수 있듯이 다른 형태의 컨트롤러로 교체 할 수 있습니다. 이미지를 확대하면 냄비가 연결된 것을 볼 수 있습니다. Arduino의 A0 핀과 PWM 신호는 Arduino의 핀 9에서 나옵니다.
위 그림에서 보시다시피 출력값은 84이고 백열등의 밝기는 매우 낮습니다.
이 이미지에서 값이 82이고 백열등의 밝기가 증가하는 것을 볼 수 있습니다.
많은 시도가 실패한 끝에 실제로 제대로 작동하는 회로를 만들 수있었습니다. 회로가 작동하지 않을 때 테스트 벤치가 어떻게 보이는지 궁금한 적이 있습니까? 매우 나빠 보인다고 말씀 드리겠습니다.
이것은 내가 작업하고 있던 이전에 설계된 회로입니다. 이전 제품이 조금 작동하지 않았기 때문에 완전히 버리고 새로 만들어야했습니다.
추가 향상
이 데모를 위해 회로는 수제 PCB로 만들어졌지만 회로는 좋은 품질의 PCB로 쉽게 만들 수 있습니다. 제 실험에서는 PCB의 크기가 부품 크기로 인해 정말 크지 만 생산 환경에서는 값싼 SMD 구성 요소를 사용하여 줄일 수 있습니다. 실험에서 555 타이머 대신 7555 타이머를 사용하면 제어 장치가 광범위하게 증가하고 회로의 안정성도 증가합니다.