- 필요한 구성 요소
- Arduino를 사용한 AC 팬 제어 작업
- 1. 제로 크로싱 감지기
- 2. 위상 각 제어 회로
- 3. 팬 속도를 제어하는 전위차계
- 4. PWM 신호 생성 장치
- 회로도
- AC 팬 속도 제어를위한 Arduino 프로그래밍
경고!! 이 프로젝트에서 논의 된 회로도는 교육 목적으로 만 사용됩니다. 220V AC 주전원 전압으로 작업하려면 극도의 예방 조치가 필요하며 안전 절차를 따라야합니다. 회로가 작동 중일 때 구성품이나 전선을 만지지 마십시오.
많은 Arduino 기반 홈 자동화 프로젝트에서했던 것처럼 스위치를 사용하거나 일부 제어 메커니즘을 사용하여 가전 제품을 켜거나 끄는 것은 쉽습니다. 그러나 예를 들어 팬의 속도 또는 램프의 강도를 제어하기 위해 AC 전원을 부분적으로 제어해야하는 많은 응용 프로그램이 있습니다. 이 경우 PWM 기술을 사용하므로 Arduino에서 생성 한 PWM을 사용하여 Arduino로 AC 팬 속도 를 제어 하는 방법을 배웁니다 .
이 프로젝트에서는 TRIAC를 사용하여 Arduino AC 팬 속도 제어를 시연 합니다. 여기에서 AC 신호의 위상 제어 방법은 Arduino에서 생성 된 PWM 신호를 사용하여 AC 팬 속도를 제어하는 데 사용됩니다. 이전 튜토리얼에서는 PWM을 사용하여 DC 팬 속도를 제어했습니다.
필요한 구성 요소
- Arduino UNO
- 4N25 (제로 크로싱 감지기)
- 10k 전위차계
- MOC3021 0pto 커플러
- (0-9) V, 500mA 스텝 다운 변압기
- BT136 트라이 액
- 230VAC 축 방향 AC 팬
- 전선 연결
- 저항기
Arduino를 사용한 AC 팬 제어 작업
작업은 네 가지 부분으로 나눌 수 있습니다. 그들은 다음과 같습니다
1. 제로 크로싱 검출기
2. 위상 각 제어 회로
3. 팬 속도를 제어하는 전위차계
4. PWM 신호 생성 회로
1. 제로 크로싱 감지기
우리 집에서 얻는 AC 공급은 220v AC RMS, 50 HZ입니다. 이 AC 신호는 본질적으로 번갈아 가며 주기적으로 극성을 변경합니다. 모든 사이클의 전반부에는 한 방향으로 흘러 피크 전압에 도달 한 다음 0으로 감소합니다. 그런 다음 다음 반주기에서 피크 전압까지 교대 방향 (음)으로 흐르고 다시 0이됩니다. AC 팬의 속도를 제어하려면 두 하프 사이클의 피크 전압을 잘게 자르거나 제어해야합니다. 이를 위해 신호를 제어 / 절단 할 0 점을 감지해야합니다. 전압 곡선에서 전압이 방향을 바꾸는이 지점을 제로 전압 교차 라고 합니다.
아래에 표시된 회로 는 제로 크로싱 포인트를 얻는 데 사용되는 제로 크로싱 검출기 회로 입니다. 먼저 220V AC 전압은 강압 변압기를 사용하여 9V AC로 강압 된 다음 핀 1과 2에서 4N25 옵토 커플러에 공급됩니다. 4N25 옵토 커플러에는 핀 1이 양극으로, 핀 2가 음극. 따라서 아래 회로에 따라 AC 파가 제로 크로싱 포인트 에 가까워지면 4N25의 내장 LED가 꺼지고 결과적으로 4N25의 출력 트랜지스터도 꺼지고 출력 펄스 핀이 꺼집니다. 최대 5V까지 끌어 올립니다. 마찬가지로 신호가 점차 피크까지 증가 할 때포인트가되면 LED가 켜지고 접지 핀이 출력 핀에 연결된 상태에서 트랜지스터도 켜지므로이 핀은 0V가됩니다. 이 펄스를 사용하면 Arduino를 사용하여 제로 교차점을 감지 할 수 있습니다.
2. 위상 각 제어 회로
영점 교차점을 감지 한 후 이제 전원이 켜지고 꺼지는 타이밍의 양을 제어해야합니다. 이 PWM 신호는 AC 모터에 출력되는 전압의 양을 결정하며, 이는 차례로 속도를 제어합니다. 여기에서는 AC 전압 신호를 제어하기위한 전력 전자 스위치로서 AC 전압을 제어하는 BT136 TRIAC가 사용됩니다.
TRIAC는 게이트 터미널에서 저에너지 신호에 의해 트리거 될 수있는 3 단자 AC 스위치입니다. SCR에서는 한 방향으로 만 전도하지만 TRIAC의 경우 양방향으로 전력을 제어 할 수 있습니다. TRIAC 및 SCR에 대해 자세히 알아 보려면 이전 기사를 따르십시오.
위 그림과 같이 TRIAC는 작은 게이트 펄스 신호를 적용하여 90 도의 발사 각도에서 트리거됩니다. 시간 "t1"은 디밍 요구 사항에 따라 제공되는 지연 시간입니다. 예를 들어,이 경우 발사 각도는 90 %이므로 전력 출력도 절반으로 줄어들어 램프도 절반의 강도로 빛납니다.
여기서 AC 신호의 주파수는 50Hz라는 것을 알고 있습니다. 따라서 기간은 1 / f, 즉 20ms가됩니다. 반주기 동안 이것은 10ms 또는 10,000 마이크로 초가됩니다. 따라서 AC 램프의 전력을 제어하기 위해 "t1"의 범위는 0-10000 마이크로 초에서 변경 될 수 있습니다.
광 커플러:
Optocoupler는 Optoisolator라고도합니다. DC 및 AC 신호와 같은 두 전기 회로 간의 절연을 유지하는 데 사용됩니다. 기본적으로 적외선을 방출하는 LED와이를 감지하는 포토 센서로 구성되어 있습니다. 여기서 MOC3021 옵토 커플러는 DC 신호 인 마이크로 컨트롤러 신호에서 AC 팬을 제어하는 데 사용됩니다.
TRIAC 및 옵토 커플러 연결 다이어그램:
3. 팬 속도를 제어하는 전위차계
여기서 전위차계는 AC 팬의 속도를 변경하는 데 사용됩니다. 전위차계는 전압 분배기 역할을하고 가변 전압 출력을 제공하는 3 단자 장치라는 것을 알고 있습니다. 이 가변 아날로그 출력 전압은 Arduino 아날로그 입력 단자에 제공되어 AC 팬의 속도 값을 설정합니다.
4. PWM 신호 생성 장치
마지막 단계에서 PWM 펄스는 속도 요구 사항에 따라 TRIAC에 제공되며, 이는 차례로 AC 신호의 ON / OFF 타이밍을 변경하고 팬 속도를 제어하는 가변 출력을 제공합니다. 여기서 Arduino는 전위차계에서 입력을 받아 원하는 속도로 AC 팬을 추가로 구동하는 TRIAC 및 옵토 커플러 회로에 PWM 신호 출력을 제공하는 PWM 펄스를 생성하는 데 사용됩니다. 여기에서 Arduino를 사용한 PWM 생성에 대해 자세히 알아보십시오.
회로도
이 Arduino 기반 230v 팬 속도 제어 회로의 회로도 는 다음과 같습니다.
참고: 이해의 목적으로 만 브레드 보드에 전체 회로를 표시했습니다. 브레드 보드에 220V AC 전원을 직접 사용해서는 안됩니다. 아래 이미지에서 볼 수 있듯이 점선으로 된 보드를 사용하여 연결했습니다.
AC 팬 속도 제어를위한 Arduino 프로그래밍
하드웨어 연결 후 아두 이노 용 코드를 작성해야합니다.이 코드는 PWM 신호를 생성하여 전위차계 입력을 사용하여 AC 신호 ON / OFF 타이밍을 제어합니다. 이전에는 많은 프로젝트에서 PWM 기술을 사용했습니다.
이 Arduino AC 팬 속도 제어 프로젝트 의 전체 코드는이 프로젝트 의 하단에 제공됩니다. 코드에 대한 단계별 설명은 다음과 같습니다.
첫 번째 단계에서는 코드 전체에서 사용될 모든 필수 변수를 선언합니다. 여기서 BT136 TRIAC는 Arduino의 핀 6에 연결됩니다. 그리고 speed_val 변수 는 속도 스텝의 값을 저장하기 위해 선언됩니다.
int TRIAC = 6; int speed_val = 0;
다음으로 설정 기능 내 에서이 핀을 통해 PWM 출력이 생성 되므로 TRIAC 핀을 출력으로 선언합니다. 그런 다음 제로 크로싱을 감지하도록 인터럽트를 구성하십시오. 여기에서는 attachInterrupt 라는 함수를 사용했습니다.이 함수 는 Arduino의 디지털 핀 3을 외부 인터럽트로 구성 하고 핀에서 인터럽트를 감지하면 zero_crossing 이라는 함수를 호출합니다.
void setup () {pinMode (LAMP, OUTPUT); attachInterrupt (digitalPinToInterrupt (3), zero_crossing, CHANGE); }
무한 루프 내 에서 A0에 연결된 전위차계에서 아날로그 값을 읽고 (10-49) 값 범위에 매핑합니다.
이 범위를 찾으려면 작은 계산을해야합니다. 이전에는 각 반주기가 10,000 마이크로 초에 해당한다고합니다. 따라서 여기서 디밍은 임의의 값이며 변경할 수있는 50 단계로 제어됩니다. 여기서 최소 단계는 0이 아닌 10으로, 0-9 단계는 거의 동일한 전력 출력을 제공하고 최대 단계는 실제적으로 상한 (이 경우 50)을 사용하는 것이 권장되지 않기 때문에 49로 사용됩니다.
그런 다음 각 단계 시간은 10000 / 50 = 200 마이크로 초로 계산할 수 있습니다. 이것은 코드의 다음 부분에서 사용됩니다.
void loop () {int pot = analogRead (A0); int data1 = map (pot, 0, 1023,10,49); speed_val = data1; }
마지막 단계에서 인터럽트 구동 함수 zero_crossing을 구성합니다. 여기서 디밍 시간은 개별 단계 시간에 no를 곱하여 계산할 수 있습니다. 단계의. 그런 다음이 지연 시간 후에 TRIAC를 켜기에 충분한 10 마이크로 초의 작은 하이 펄스를 사용하여 TRIAC을 트리거 할 수 있습니다.
void zero_crossing () {int chop_time = (200 * speed_val); delayMicroseconds (chop_time); digitalWrite (TRIAC, HIGH); delayMicroseconds (10); digitalWrite (TRIAC, LOW); }
Arduino 및 PWM을 사용 하는이 AC 팬 제어에 대한 작동 비디오와 함께 전체 코드 가 아래에 나와 있습니다.