제로 크로싱 전력에서 트리거되는 스위치 (솔리드 스테이트 릴레이 또는 트라이 액 기반)를 프로그래밍하려면 어떻게해야합니까?
이 주제에 익숙하지 않은 경우 : 전원 선의 사인파가 0을 넘어 서면 230V 전원을 켭니다. 그 결과 전류의 급격한 급상승으로 인한 전자기 장애가 최소화됩니다.
특히, 가능한 한 많은 소프트웨어를 사용하는 것이 좋습니다. 레벨 및 전류를 점검하기위한 소형 변압기, 다이오드 및 커플 저항으로 구성된 감지 회로는 AC 입력 전원이 양의 절반 일 때 "1", 음의 경우 "0"을 입력 GPIO 핀에 연결합니다. 출력은 몇 개의 솔리드 스테이트 릴레이와 출력 GPIO 핀에 연결된 풀업 등을 유지하기위한 필수 요소로 구성됩니다.
The problem is timing: with 50Hz AC we get 100 zero-crossings in a second, one half-cycle is 10ms. To get within reasonable distance from zero-crossing to keep said EMI low we shouldn't activate the output more than 10% past (or before) the event of zero-crossing, that means +-1ms tolerance. That doesn't mean 1ms reaction time - we can reasonably expect the next zero-crossing to occur precisely 10ms after the first one, or the fourth - 40ms. It's about granularity - if we allow 20ms for reaction, it must be between 19 and 21ms, not 18 or 22.
입력이 에지를 감지하기 때문에 1ms 이내에 또는 그 이후 10ms의 고정 배수 내에서 이러한 타이머-트리거 출력 GPIO를 어떻게 구현할 수 있습니까-가급적이면 일부 음의 바이어스 (변압기와 릴레이가 1.6ms 지연을 허용 함); 그래서 입력 펄스 이후로 트리거가 8.4+ (n * 10) ms 가량 떨어지기를 원합니다. 바이어스는 회로에 의해 발생 된 지연에 대응합니다.)-물론 "사용자 요구에 따라", 사용자는 "1 "를 / sys / class / ... 파일로 보내고 가장 가까운 (거의) 기회에 출력이"on "됩니다. 사용자가 "0"을 쓰고 제로 크로싱에 도달하면 특정 릴레이가 해제됩니다.
커널 모듈을 작성하거나 해킹해야한다고 생각합니다. 커널에서 Raspberry Pi의 GPIO 핀을 처리하는 기능과 이러한 기능을 얻기 위해 어떤 종류의 타이머를 부착 할 수 있습니까?