Tôi đã thiết kế bộ khởi động mềm bằng bộ xử lý PIC16C74A / F77. Không băng qua có thể là khó khăn nếu bạn cũng phải làm việc trong môi trường ồn ào.
Nếu bạn không cần cách ly bộ xử lý khỏi dòng, không có gì sai với một vài điện trở có giá trị cao cấp cho pin CPU. Tôi sẽ sử dụng một vài điốt shottky để tăng cường các điốt bảo vệ bên trong giống như một vấn đề mạnh mẽ, nhưng nó sẽ hoạt động tốt. Nếu bạn cần cách ly, sử dụng một optoisolator đầu ra bóng bán dẫn. Hãy chú ý đến tốc độ chuyển mạch của opto và giảm thiểu dòng thu của bóng bán dẫn để tối đa hóa tốc độ chuyển mạch.
Đã nói rằng, hãy chuyển sang tiếng ồn. Nếu bạn đang điều khiển pha bất cứ thứ gì ngoài hệ thống sưởi điện trở, bạn sẽ phải đối mặt với tiếng ồn, điều đó có nghĩa là rất có thể bạn sẽ có tiếng ồn xuyên không để xử lý. Đừng mắc sai lầm của tân binh khi cho đầu vào giao nhau bằng 0 vào chốt ngắt; điều đó sẽ biến phần mềm của bạn thành một khối khó chịu khi hút thuốc khi bộ xử lý cố gắng xử lý các gián đoạn. (Tôi nói từ kinh nghiệm.) Ném RC hoặc bộ lọc thông thấp tiên tiến hơn trên đường dây sẽ chỉ giới thiệu sự thay đổi pha. Nếu bạn có thể làm việc với điều đó, tuyệt vời. Nếu không (tôi phải xử lý các hệ thống 50/60 và 400Hz) thì bạn phải thử các phương tiện khác.
Trên thiết kế của riêng tôi, tôi đã chăm sóc nó trong phần mềm bằng cách bỏ phiếu và thực hiện một thói quen bỏ phiếu mà bỏ qua các quá độ. Sự thay đổi pha là trong những gì tôi có thể xử lý, nó rất nhanh và nó sẽ không bị hỏng ngay cả trong tiếng ồn lớn. (Đã thử nghiệm tại một cơ sở nơi họ tháo nắp bộ lọc ra khỏi lò cảm ứng, tôi chưa bao giờ thấy một đường dây ồn ào như vậy trước đây!) chốt "chữ thập 0 và sau đó vi điều khiển sẽ xác nhận nó trước khi ngắt tiếp theo có thể được đặt.
Tất cả đã nói, tôi nghĩ rằng việc tìm kiếm đường giao nhau bằng 0 thực sự trong bất kỳ tình huống thực tế nào là một trong những điều khó khăn hơn trong thiết kế khởi động mềm. Đóng vòng điều khiển chỉ là thứ yếu, nhưng chủ yếu chỉ là điều chỉnh. Nó có vẻ như là một điều đơn giản để làm nhưng tôi đã học được khá nhiều về sự khác biệt giữa lý thuyết và thực hành trong thời gian đó. :-)
chỉnh sửa để mô tả thói quen "bỏ phiếu":
Nếu tôi nhớ chính xác, tôi có một dòng I / O cao khi dòng trên 0 và thấp khi dòng dưới 0. Thói quen bỏ phiếu chỉ đơn giản là bỏ phiếu cho dòng đó và nếu 2 trong số 3 mẫu cuối cùng giống nhau, tôi chấp nhận thực tế là dòng đó đã vượt qua 0. Nó rất giống với mạch biểu quyết của UART để phát hiện dấu và khoảng trắng. Lợi ích của một mạch như thế này là sự dịch pha của bạn được cố định (tốc độ mẫu 2 *) và bạn có thể điều chỉnh nó cho loại tiếng ồn bạn gặp phải. Tôi không nhớ mình đã bỏ phiếu nhanh như thế nào nhưng nếu tôi đoán nguy hiểm thì tôi sẽ nói 8kHz, vì con số đó cứ lởn vởn trong đầu tôi.