Biến tần 12 -220 vôn trên Arduino thuần sin với mã chương trình đầy đủ.
Lý thuyết
Để đạt được đầu ra sóng hình sin là khá khó khăn và không thể được khuyến nghị cho biến tần, bởi vì điện tử các thiết bị thường không thích dòng điện hoặc điện áp tăng theo cấp số nhân. Do các bộ biến tần được sản xuất chủ yếu bằng các thiết bị điện tử trạng thái rắn, nên dạng sóng hình sin thường được loại bỏ.
Các thiết bị điện tử khi làm việc với sóng hình sin cho kết quả không hiệu quả, vì các thiết bị, theo quy luật, được làm nóng so với các xung hình chữ nhật.
Do đó, tùy chọn tốt nhất để thực hiện sóng hình sin trên biến tần là PWM, có nghĩa là điều chế độ rộng xung hoặc PWM.
PWM là một cách cải tiến (phiên bản kỹ thuật số) của phơi nhiễm dạng sóng theo hàm mũ thông qua độ rộng xung vuông thay đổi theo tỷ lệ, giá trị ròng được tính chính xác theo giá trị ròng của dạng sóng lũy thừa đã chọn, ở đây giá trị "thuần" đề cập đến giá trị RMS. Do đó, PWM được tính toán có tham chiếu đến một sóng hình sin nhất định có thể được sử dụng như một tương đương lý tưởng để sao chép một sóng hình sin nhất định. Ngoài ra, các PWM sẽ tương thích lý tưởng với các thiết bị năng lượng điện tử (mosfet, BJT, IGBTS) và cho phép sử dụng chúng với nhiệt độ tối thiểu.
SPWM là gì?
Phương pháp phổ biến nhất là tạo ra một sinewaver (sóng hình sin) hoặc SPWM, bằng cách áp dụng một số tín hiệu biến đổi theo cấp số nhân cho đầu vào của bộ khuếch đại hoạt động để xử lý cần thiết. Trong số hai tín hiệu đầu vào, một tín hiệu phải có tần số cao hơn nhiều so với tín hiệu kia.
Sử dụng hai tín hiệu đầu vào
Như đã đề cập trong phần trước, quy trình này bao gồm việc cung cấp hai tín hiệu thay đổi theo cấp số nhân cho các đầu vào của bộ khuếch đại hoạt động.
Ở đây, bộ khuếch đại hoạt động được cấu hình như một bộ so sánh điển hình, vì vậy chúng ta có thể giả sử rằng bộ khuếch đại hoạt động sẽ ngay lập tức bắt đầu so sánh các mức điện áp tức thời của hai tín hiệu chồng chất này tại thời điểm chúng xuất hiện hoặc được áp dụng cho đầu vào của nó.
Để bộ khuếch đại hoạt động thực hiện chính xác PWM hình sin cần thiết ở đầu ra của nó, cần phải có một trong các tín hiệu có tần số cao hơn nhiều so với tín hiệu khác. Tần số chậm hơn ở đây là sóng hình sin của mẫu, nên được mô phỏng (nhân rộng) bởi các xung PWM.
Lý tưởng nhất là cả hai tín hiệu phải là hình sin (một tín hiệu có tần số cao hơn tín hiệu khác), tuy nhiên, điều tương tự có thể được nhận ra bằng cách bao gồm sóng tam giác (tần số cao) và sóng hình sin (sóng chọn lọc với tần số thấp). Như có thể thấy trong các hình ảnh sau, tín hiệu tần số cao được cung cấp bất thường cho đầu vào đảo ngược (-) của bộ khuếch đại hoạt động, trong khi tín hiệu hình sin chậm khác được cung cấp cho đầu vào không đảo (+) của bộ khuếch đại hoạt động. Trong trường hợp xấu nhất, cả hai tín hiệu có thể là sóng tam giác với các tần số được khuyến nghị, như được mô tả ở trên. Tuy nhiên, điều này sẽ giúp đạt được một tương đương sinewave tương đối tốt.
Tín hiệu có tần số cao hơn được gọi là tín hiệu sóng mang, trong khi tín hiệu mẫu chậm hơn được gọi là đầu vào điều chế.
Tạo SPWM với sóng hình tam giác và gân
Đề cập đến hình trên, có thể hình dung rõ ràng thông qua các điểm được vẽ, các điểm điện áp trùng nhau hoặc trùng nhau của hai tín hiệu trong một khoảng thời gian nhất định. Trục hoành hiển thị khoảng thời gian của dạng sóng, trong khi trục dọc hiển thị các mức điện áp của 2 đồng thời chạy, dạng sóng chồng chất. Hình này cho chúng ta biết bộ khuếch đại hoạt động sẽ đáp ứng như thế nào với các mức điện áp tức thời trùng khớp được hiển thị của hai tín hiệu và tạo ra một tín hiệu hình sin thay đổi tương ứng ở đầu ra của nó. Bộ khuếch đại hoạt động (op-amp) chỉ đơn giản là so sánh các mức điện áp của sóng tam giác nhanh thay đổi ngay lập tức sóng hình sin (cũng có thể là sóng tam giác) và kiểm tra các trường hợp điện áp của dạng sóng tam giác có thể thấp hơn điện áp của sóng hình sin và đáp ứng ngay lập tức tạo ra logic cao trên lối thoát hiểm của bạn.
Điều này được duy trì miễn là sóng tiềm năng của tam giác tiếp tục thấp hơn tiềm năng của sóng hình sin và thời điểm tiềm năng của sóng hình sin được phát hiện là thấp hơn tiềm năng tức thời của sóng tam giác, các đầu ra trở lại với mức tối thiểu và chịu được cho đến khi tình huống lặp lại.
Sự so sánh liên tục này về mức tiềm năng tức thời của hai dạng sóng chồng lên nhau ở hai đầu vào của bộ khuếch đại hoạt động dẫn đến việc tạo ra các PWM thay đổi tương ứng, có thể lặp lại chính xác hình dạng hình sin áp dụng cho đầu vào không đảo của bộ khuếch đại hoạt động.
Bộ khuếch đại hoạt động và SPWM
Hình dưới đây cho thấy người mẫu các hoạt động trên:
Ở đây chúng ta có thể quan sát cách nó được thực hiện trong thực tế và đây là cách bộ khuếch đại hoạt động sẽ làm tương tự (mặc dù ở tốc độ cao hơn nhiều, trong MS).
Hoạt động này khá rõ ràng và cho thấy rõ cách bộ khuếch đại hoạt động nên xử lý sóng hình sin bằng cách so sánh hai tín hiệu thay đổi đồng thời ở đầu vào của nó, như được mô tả trong các phần trước.
Trên thực tế, bộ khuếch đại hoạt động sẽ xử lý PWM hình sin chính xác hơn nhiều so với mô phỏng được trình bày ở trên, nó có thể tốt hơn 100 lần, tạo ra PWM cực kỳ đồng đều và được đo lường phù hợp với mẫu được cung cấp. Sóng hình sin.
Arduino biến tần hai mạch
danh sách các bộ phận
Tất cả điện trở 1/4 watt, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4 chiếc
• MOSFE IRF540 = 2 chiếc
• Arduino UNO = 1
• Máy biến áp = 9-0-9V / 220 V / 120V.
• Pin = 12V
Tất cả điện trở 1/4 watt, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4 chiếc
• MOSFE IRF540 = 2 chiếc
• Arduino UNO = 1
• Máy biến áp = 9-0-9V / 220 V / 120V.
• Pin = 12V
Thiết kế thực sự rất đơn giản, như thể hiện trong hình dưới đây.
Chân số 8 và chân số 9 tạo ra xen kẽ PWM và chuyển đổi Mosfet với cùng một PWM.
Ngược lại, Mosfet tạo ra dạng sóng SPWM có dòng điện cao trên máy biến áp, sử dụng năng lượng của pin, buộc thứ cấp của máy biến áp tạo ra dạng sóng giống hệt nhau.
Mạch biến tần Arduino được đề xuất có thể được nâng cấp lên bất kỳ mức năng lượng cao hơn ưa thích nào bằng cách thay thế Mosfets và biến áp, tương ứng, thay vào đó, bạn cũng có thể chuyển đổi nó thành biến tần sóng hình cầu toàn cầu hoặc cầu H
Bộ nguồn Arduino
Hình ảnh dạng sóng cho Arduino SPWM
Vì Arduino sẽ tạo ra đầu ra 5V, điều này có thể không lý tưởng cho việc điều khiển trực tiếp các bóng bán dẫn MOS.
Do đó, cần phải nâng mức độ nhấp nháy lên mức 12 sao cho Mosfet sẽ hoạt động chính xác mà không làm nóng thiết bị.
Để chắc chắn rằng Mosfety không khởi động khi Arduino khởi động hoặc khởi động, bạn cần thêm bộ tạo độ trễ sau và kết nối nó với đế của bóng bán dẫn BC547. Điều này sẽ bảo vệ Mosfets và ngăn không cho chúng bị cháy trong khi chuyển đổi nguồn và khi Arduino khởi động.
Thêm một bộ điều chỉnh điện áp tự động
Giống như trên bất kỳ biến tần nào khác, ở đầu ra của thiết kế này, dòng điện có thể tăng đến giới hạn không an toàn khi pin được sạc đầy.
Để kiểm soát điều này, thêm một bộ điều chỉnh điện áp tự động.
Bộ sưu tập BC547 phải được kết nối với các đế của cặp BC547 bên trái, được kết nối với Arduino thông qua các điện trở 10K.
Phiên bản thứ hai của biến tần sử dụng chip sn7404 / k155ln1
Quan trọng:
Để tránh vô tình bật công tắc trước khi tải Arduino, có thể bao gồm một độ trễ đơn giản trong mạch hẹn giờ trong thiết kế trên, như hình dưới đây:
Mã chương trình:
/ *
Mã này được dựa trên mã SPWM của Swagatam với các thay đổi được thực hiện để loại bỏ lỗi. Sử dụng mã này như bạn sẽ sử dụng bất kỳ tác phẩm Swagatam nào khác.
Rủi ro Atton 2017
* /
const int sPWMArray [] = {500.500.750.500.512.500.2000.500.512.500.550.500.500}; // Đây là mảng với các giá trị SPWM thay đổi chúng theo ý muốn
const int sPWMArrayValues = 13; // Bạn cần điều này vì C doesn Cung cấp cho bạn độ dài của một mảng
// Các chân
const int sPWMpin1 = 10;
const int sPWMpin2 = 9;
// Công tắc pin
bool sPWMpin1Status = true;
bool sPWMpin2Status = true;
thiết lập void ()
{
pinMode (sPWMpin1, OUTPUT);
pinMode (sPWMpin2, OUTPUT);
}
vòng lặp void ()
{
// Vòng lặp cho pin 1
for (int i (0); i! = sPWMArrayValues; i ++)
{
if (sPWMpin1Status)
{
kỹ thuật sốWrite (sPWMpin1, CAO);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = false;
}
khác
{
kỹ thuật sốWrite (sPWMpin1, THẤP);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = true;
}
}
// Vòng lặp cho pin 2
for (int i (0); i! = sPWMArrayValues; i ++)
{
if (sPWMpin2Status)
{
kỹ thuật sốWrite (sPWMpin2, CAO);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = false;
}
khác
{
kỹ thuật sốWrite (sPWMpin2, THẤP);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = true;
}
}
}
Chúc may mắn