รับออกแบบและเขียนโปรแกรม ควบคุม ด้วย INTEL MCS 51 STMICRO STM 8 STM32 ATMEL ATMEGA 168 ATMEGA 328 P ARDUINO PIC MICROCHIP และ Microcontroller เบอร์อื่น ติดต่อที่
Sompong industrial Electronics sompongindustrial@gmail.com
mrsompongt@hotmail.com Line 081-803-6553
02-045-3653 อำเภอเมือง นนทบุรี 11000 Thailand
การสร้างอินเวอร์เตอร์สามเฟสแบบใหม่ 3 เฟสอินเวอร์เตอร์มอเตอร์ขนาดเล็กรวมคลิปการเปลี่ยนพลังงานและประหยัดพลังงาน การสร้างเครื่อง ปรับรอบ ความเร็วมอเตอร์มอเตอร์ไฟฟ้า สามเฟส ใช้ไฟฟ้ากระแสลับ เฟสเดียว ใช้ไฟฟ้ากระแสตรง จากแบตเตอรี่ โดยใช้เทคโนโลยี ไมโครคอนโทรลเลอร์ ATMEL Atmega และ Arduino จำหน่าย Power Module และ โปรแกรม Arduino ให้เป็น อินเวอร์เตอร์ สามเฟส ได้รับความอนุเคราะห์ โค๊ด จากท่าน Tomasz Drazek ประเทศโปแลนด์ 3 Phase Motor Control Code Arduino 328 P Thank you very much, sir โค๊ด และวงจร อยู่นี่ครับ https://onedrive.live.com/?authkey=%21AGul_y3NOhiUL68&id=5D7E6463F144D1A1%2174036&cid=5D7E6463F144D1A1 hank you very much, sir
https://onedrive.live.com/?authkey=%21AGul_y3NOhiUL68&id=5D7E6463F144D1A1%2174036&cid=5D7E6463F144D1A1 รุ่นใหม่ ราคา1000 บาท ครับ นำไปบัดกรีและต่อเติมตามถนัดครับ..มี บอร์ด Arduino 1 บอร์ด ราคา 700 บาท และ PS21244 1 หรือ PS21963 หรือ PS219A2 ราคา ตัวละ 300 บาท ครับ ลงวันที่ 14 ตุลาคม 2559 จำหน่าย POWER MODULE 6DI15s-050 MP6501A TM51 PS21244 PS21963 GT15J331 ใช้สำหรับ สร้าง อินเวอร์เตอร์ คอนเวอร์เตอร์ สามเฟส ที่ใช้ใน เครื่องปรับอากาศ ตู้เย็น เครื่องซักผ้า เครื่องใช้ไฟฟ้า ที่มีมอเตอร์ ชนิดสามเฟส ติดต่อที่ LINE pornpimon 1411 Intelligent power module PS21244 มีจำหน่าย ราคาตัวละ 300 บาท NEW MODULE 6DI15S-050 FUJI LOCATION M in Business & Industrial, Electrical & Test Equipment, Industrial Automation, Control มีจำหน่ายราคาตัวละ 300 บาท TM52A สินค้าหมดแล้วครับ....https://www..com/watch?v=fpP69G42wok ดูรายละเอียดจากคลิป ง่ายกว่าครับ มีหลายคลิป เบื้องต้นทำสัญญาน 6 ตำแหน่งให้ ต่ำกว่า 0.5 Volt ครับ ค่า R PULL UP ใช้ 5.6 K-10K จะพอดีครับ ไฟเลี้ยง ต้องเรียบพอ ไม่ต่ำกว่า 15 Vdc ครับ รายละเอียดการต่อ PS21244 กับ MC3PHACแบบขนานและแบบธรรมดา...ชมการทดสอบจริงกับมอเตอร์ ห้าแรงไม่มีโหลด จากคลิปนี้ก็ได้ครับ...วงจรขนานที่ใช้ MOSFET STU 418 ยังใช้ไม่ได้..ไม่สมบูรณ์..ครับ...ยังไม่ได้ผลที่น่าพอใจhttps://www..com/watch?v=yXZhTqUhXqA
TM52A...หมดแล้ว.ใช้ PS21244 ขนานกัน....ได้ครับ....ขาย ic หาง่าย ใช้ง่าย PS21244 PS21963 PS219A2 6DI15S-050 D 6DI15S-050 C MP6501A TM52A TM51 ใช้ทำเครื่องอินเวอร์เตอร์ เครื่องปรับรอบมอเตอร์ เครื่องแปลงไฟฟ้า PS21244 ราคาตัวละ 300 บาท 4 ตัว 1000 บาท ครับค่าส่ง Ems 100 บาท ครับ Line:pornpimon 1411 มือถือ 081-803-6553 เบอร์บ้าน 02-951-1356 sompongindustrial@gmail.com mrsompongt@hotmail.com
https://www..com/watch?v=TYuLuP31QOw
https://www..com/watch?v=yuMdz3fqhtg
https://www..com/watch?v=ThGs-s99_J0
https://www..com/watch?v=bd97PM3v66A
จำหน่าย ออกแบบ ซ่อม สร้าง อินเวอร์เตอร์ เครื่องควบคุมมอเตอร์ อินดัตชั่น สามเฟส
จำหน่าย power module ขนาด 15 Amps 400 Volts ราคาตัวละ 300 บาท สำหรับ ใช้กับมอเตอร์ ไฟฟ้า ยุคใหม่ ทั้ง DC และ AC ได้ 1 แรงม้า
sompongindustrial@gmail.com
02-045-3653 Line 081-803-6553 pornpimon 1411
มือถือ 081-803-6553
// DDS Sine Generator 3 phase motor x5 mit ATMEGA 2560 PWM 4KHZ
#include "arduino.h" //Store data in flash (program) memory instead of SRAM
#include "avr/pgmspace.h"
#include "avr/io.h"
const byte sine256[] PROGMEM = {
127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173,176,178,181,184,187,190,192,195,198,200,203,205,208,210,212,215,217,219,221,223,225,227,229,231,233,234,236,238,239,240,
242,243,244,245,247,248,249,249,250,251,252,252,253,253,253,254,254,254,254,254,254,254,253,253,253,252,252,251,250,249,249,248,247,245,244,243,242,240,239,238,236,234,233,231,229,227,225,223,
221,219,217,215,212,210,208,205,203,200,198,195,192,190,187,184,181,178,176,173,170,167,164,161,158,155,152,149,146,143,139,136,133,130,127,124,121,118,115,111,108,105,102,99,96,93,90,87,84,81,78,
76,73,70,67,64,62,59,56,54,51,49,46,44,42,39,37,35,33,31,29,27,25,23,21,20,18,16,15,14,12,11,10,9,7,6,5,5,4,3,2,2,1,1,1,0,0,0,0,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,16,18,20,21,23,25,27,29,31,
33,35,37,39,42,44,46,49,51,54,56,59,62,64,67,70,73,76,78,81,84,87,90,93,96,99,102,105,108,111,115,118,121,124
};
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) //define a bit to have the properties of a clear bit operator
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))//define a bit to have the properties of a set bit operator
int PWM1= 2;// PWM1 output, phase 1
int PWM2 = 3; //[WM2 ouput, phase 2
int PWM3 = 4; //PWM3 output, phase 3
int PWM4= 5;// PWM1 output, phase 1
int PWM5 = 6; //[WM2 ouput, phase 2
int PWM6 = 7; //PWM3 output, phase 3
int PWM7 = 8;// PWM1 output, phase 1
int PWM8 = 9; //[WM2 ouput, phase 2
int PWM9 = 10; //PWM3 output, phase 3
int PWM10 = 11;// PWM1 output, phase 1
int PWM11 = 12; //[WM2 ouput, phase 2
int PWM12 = 13; //PWM3 output, phase 3
int PWM13 = 44;// PWM1 output, phase 1
int PWM14 = 45; //[WM2 ouput, phase 2
int PWM15 = 46; //PWM3 output, phase 3
int offset_1 = 85; //offset 1 is 120 degrees out of phase with previous phase, Refer to PWM to sine.xls
int offset_2 = 170; //offset 2 is 120 degrees out of phase with offset 1. Refer to PWM to sine.xls
int program_exec_time = 52; //monitor how quickly the interrupt trigger
int ISR_exec_time = 53; //monitor how long the interrupt takes
double dfreq;
const double refclk=31376.6; // measured output frequency
// variables used inside interrupt service declared as voilatile
volatile byte current_count; // Keep track of where the current count is in sine 256 array
volatile byte ms4_delay; //variable used to generate a 4ms delay
volatile byte c4ms; // after every 4ms this variable is incremented, its used to create a delay of 1 second
volatile unsigned long phase_accumulator; // pahse accumulator
volatile unsigned long tword_m; // dds tuning word m, refer to DDS_calculator (from Martin Nawrath) for explination.
void setup()
{
pinMode(PWM1, OUTPUT); //sets the digital pin as output
pinMode(PWM2, OUTPUT); //sets the digital pin as output
pinMode(PWM3, OUTPUT);
pinMode(PWM4, OUTPUT); //sets the digital pin as output
pinMode(PWM5, OUTPUT); //sets the digital pin as output
pinMode(PWM6, OUTPUT); //sets the digital pin as output
pinMode(PWM7, OUTPUT); //sets the digital pin as output
pinMode(PWM8, OUTPUT); //sets the digital pin as output
pinMode(PWM9, OUTPUT);
pinMode(PWM10, OUTPUT); //sets the digital pin as output
pinMode(PWM11, OUTPUT); //sets the digital pin as output
pinMode(PWM12, OUTPUT);
pinMode(PWM13, OUTPUT); //sets the digital pin as output
pinMode(PWM14, OUTPUT); //sets the digital pin as output
pinMode(PWM15, OUTPUT);
pinMode(50, OUTPUT); //sets the digital pin as output
pinMode(52, OUTPUT); //sets the digital pin as output
pinMode(53, OUTPUT);
sbi(PORTB,program_exec_time); //Sets the pin
Setup_timer0();
Setup_timer1();
Setup_timer2();
Setup_timer3();
Setup_timer4();
Setup_timer5();
//Disable Timer 1 interrupt to avoid any timing delays
cbi (TIMSK0,TOIE0); //disable Timer0 !!! delay() is now not available
sbi (TIMSK2,TOIE2); //enable Timer2 Interrupt
tword_m=pow(2,32)*dfreq/refclk; //calulate DDS new tuning word
}
void loop()
{
while(1)
{
sbi(PORTB,program_exec_time); //Sets the pin
if (c4ms > 0) // c4ms = 4ms, thus 4ms *250 = 1 second delay
{
c4ms=0; //Reset c4ms
//dfreq=map(analogRead(0),0,1230,0,1000);
dfreq=map(analogRead(0),0,1023,0,1000); //Read voltage on analog 1 to see desired output frequency, 0V = 0Hz, 5V = 1.023kHz
cbi (TIMSK2,TOIE2); //Disable Timer2 Interrupt
tword_m=pow(2,32)*dfreq/refclk; //Calulate DDS new tuning word
sbi (TIMSK2,TOIE2); //Enable Timer2 Interrupt
}
}
}
void Setup_timer0(void)
{
TCCR0B = (TCCR0B & 0b11111000) | 0x02;
// Timer1 PWM Mode set to Phase Correct PWM
cbi (TCCR0A, COM0A0);
sbi (TCCR0A, COM0A1);
cbi (TCCR0A, COM0B0);
sbi (TCCR0A, COM0B1);
// Mode 1 / Phase Correct PWM
sbi (TCCR0A, WGM00);
cbi (TCCR0A, WGM01);
}
void Setup_timer1(void)
{
TCCR1B = (TCCR1B & 0b11111000) |0x02;
// Timer1 Clock Prescaler to : 1
cbi (TCCR1A, COM1A0);
sbi (TCCR1A, COM1A1);
cbi (TCCR1A, COM1B0);
sbi (TCCR1A, COM1B1);
sbi (TCCR1A, WGM10);
cbi (TCCR1A, WGM11);
cbi (TCCR1B, WGM12);
cbi (TCCR1B, WGM13);
}
void Setup_timer2()
{
TCCR2B = (TCCR2B & 0b11111000) | 0x02;// Timer2 Clock Prescaler to : 1
cbi (TCCR2A, COM2A0); // clear Compare Match
sbi (TCCR2A, COM2A1);
cbi (TCCR2A, COM2B0);
sbi (TCCR2A, COM2B1);
// Mode 1 / Phase Correct PWM
sbi (TCCR2A, WGM20);
cbi (TCCR2A, WGM21);
cbi (TCCR2B, WGM22);
}
void Setup_timer3(void)
{
TCCR3B = (TCCR3B & 0b11111000) |0x02;// Timer1 Clock Prescaler to : 1
cbi (TCCR3A, COM3A0);
sbi (TCCR3A, COM3A1);
cbi (TCCR3A, COM3B0);
sbi (TCCR3A, COM3B1);
cbi (TCCR3A, COM3C0);
sbi (TCCR3A, COM3C1);
// Mode 1 / Phase Correct PWM
sbi (TCCR3A, WGM30);
cbi (TCCR3A, WGM31);
cbi (TCCR3B, WGM32);
cbi (TCCR3B, WGM33);
cbi (TCCR3C, WGM33);
cbi (TCCR3C, WGM33);
}
void Setup_timer4()
{
TCCR4B = (TCCR4B & 0b11111000) | 0x02;// Timer2 Clock Prescaler to : 1
cbi (TCCR4A, COM4A0); // clear Compare Match
sbi (TCCR4A, COM4A1);
cbi (TCCR4A, COM4B0);
sbi (TCCR4A, COM4B1);
cbi (TCCR4A, COM4C0);
sbi (TCCR4A, COM4C1);
sbi (TCCR4A, WGM40);
cbi (TCCR4A, WGM41);
cbi (TCCR4B, WGM42);
cbi (TCCR4C, WGM43);
cbi (TCCR4C, WGM43);
}
void Setup_timer5(void)
{
TCCR5B = (TCCR5B & 0b11111000) |0x02;// Timer1 Clock Prescaler to : 1
cbi (TCCR5A, COM5A0);
sbi (TCCR5A, COM5A1);
cbi (TCCR5A, COM5B0);
sbi (TCCR5A, COM5B1);
cbi (TCCR5A, COM5C0);
sbi (TCCR5A, COM5C1);
sbi (TCCR5A, WGM50);
cbi (TCCR5A, WGM51);
cbi (TCCR5B, WGM52);
cbi (TCCR5B, WGM53);
cbi (TCCR5C, WGM50);
}
ISR(TIMER2_OVF_vect)
{
cbi(PORTD,program_exec_time); //Clear the pin
sbi(PORTD,ISR_exec_time); // Sets the pin
phase_accumulator=phase_accumulator+tword_m; //Adds tuning M word to previoud phase accumulator. refer to DDS_calculator (from Martin Nawrath) for explination.
current_count=phase_accumulator >> 24; // use upper 8 bits of phase_accumulator as frequency information
//motor 1
OCR3B = pgm_read_byte_near(sine256 + current_count); // read value fron ROM sine table and send to PWM
OCR3C = pgm_read_byte_near(sine256 + (uint8_t)(current_count + offset_1)); // read value fron ROM sine table and send to PWM, 120 Degree out of phase of PWM1
OCR0B = pgm_read_byte_near(sine256 + (uint8_t)(current_count + offset_2));// read value fron ROM sine table and send to PWM, 120 Degree out of phase of PWM2
//motor 2
OCR3A = OCR3B;
OCR4A = OCR3C;
OCR4B = OCR0B;
//motor 3
OCR4C = OCR3B;
OCR2B = OCR3C;
OCR2A = OCR0B;
//motor 4
OCR1A = OCR3B;
OCR1B = OCR3C;
OCR0A = OCR0B;
//motor 5
OCR5A = OCR3B;
OCR5B = OCR3C;
OCR5C = OCR0B;
//increment variable ms4_delay every 4mS/125 = milliseconds 32uS
if(ms4_delay++ == 125)
{
c4ms++;
ms4_delay=0; //reset count
}
cbi(PORTD,ISR_exec_time); //Clear the pin
}
อินเวอร์เตอร์ กับการประหยัดพลังงานและค่าใช้จ่าย
ในปัจจุบันเราทุกคนต่างประสบกับปัญหาพลังงาน ราคาแพง ซึ่งสาเหตุหลักมาจากราคา น้ำมันซึ่งปรับตัวสูงขึ้นมากๆ ทำให้ไม่ว่าจะเป็นไฟฟ้าก็ปรับค่าไฟขึ้นและค่าไฟก็เป็นต้นทุน หลักตัวหนึ่งในโรงงานอุตสาหกรรม โรงแรม อาคารสำนักงาน และห้างสรรพสินค้าต่างๆ ดังนั้น การใช้พลังงานอย่างมีประสิทธิภาพอย่างคุ้มค่าอย่างประหยัดก็จะเป็นการลดต้น ทุน การดำเนินงานได้
ในโรงแรมขนาดใหญ่ อาคารสำนักงาน ห้างสรรพสินค้า และในหลายอุตสาหกรรม เช่น โรงทอผ้า อาหาร อิเลคทรอนิกส์ ที่มีการใช้ระบบเกี่ยวกับความร้อน การระบายอากาศ เครื่องทำความเย็น ระบบปรับอากาศ การใช้น้ำ การรักษาความดันอากาศหรือน้ำ ในระบบเหล่านี้มักจะมีอุปกรณ์ที่ใช้ที่สำคัญ คือ พัดลม และ ปั้มน้ำ โดยใช้มอเตอร์เป็นตัวขับ
ดังนั้น ถ้าเรามองถึงการประหยัดพลังงานก็ต้องมุ่งไปที่ว่า ทำอย่างไรถึงจะใช้มอเตอร์ขับ ปั้มน้ำ และ พัดลมอย่างมีประสิทธิภาพสูงสุดและประหยัดสุด
ตารางโหลด
"อินเวอร์เตอร์มีส่วนในการประหยัดพลังงานหรือค่าไฟได้อย่างไร????"
ถ้าเราพิจารณาจาก คุณสมบัติของโหลดชนิดต่างๆ จากตารางด้านบนของโหลดประเภทปั๊มและพัดลมนี้ เราจะเห็นว่า
กำลัง (P) จะแปรผันตามความเร็วรอบยกกำลังสาม (N 3) สมมุติว่า ในกระบวนการ ใช้งานเราสามารถลดความเร็วรอบลงได้ 10% นั่นก็คือ 0.9 N เราก็จะได้กำลัง
P (N) = N*N*N = N3
P (0.9N) = 0.9*0.9*0.9 N3 = 0.729 N3
P (N) - P (0.9N) = 0.29 N3
เราจะเห็นว่า ถ้าเราสามารถลดรอบของปั้มหรือพัดลมลงได้ 10% เราสามารถประหยัด พลังงานลงได้เกือบ 30% และในหลักการเดียวกับข้างต้น ถ้าลดความเร็วรอบลงได้ 20% เราจะสามารถประหยัดพลังงาน ลงได้ถึงเกือบ 50% ทีเดียว
Pressure Control
อินเวอร์เตอร์มีส่วนในการประหยัดพลังงานตรงที่หน้าที่ของมัน คือ ปรับความเร็ว รอบของมอเตอร์ให้ลดลงตามที่เราต้องการ โดยที่ทำให้มอเตอร์ใช้กระแสไฟลดลง เนื่องจากโหลดต้องการกำลังลดลง ลองพิจารณาจากรูปด้านข้าง
จากรูป ถ้าสมมุติว่าในตอนแรกยังไม่มีการติดตั้งอินเวอร์เตอร์ในการขับปั้ม เมื่อเดินปั้มๆ จะปั้มน้ำเข้าสู่ระบบจนกระทั่งความดันได้ตามที่ต้องการ ซึ่งโดยทั่วไปอาจจะมีตัววาล์ว ความดันอยู่ซึ่งจะทำหน้าที่ปล่อยน้ำออกเพื่อไม่ให้ความดันเกิน แต่มอเตอร์จะเดินอยู่ตลอด เวลาหรืออาจจะเป็นลักษณะที่ให้มอเตอร์หยุดเมื่อถึงความดันที่ต้องการ และเดินใหม่อีก ครั้งเมื่อความดันลดลงถึงค่าที่ตั้งไว้ จะเห็นว่าทั้งสองวิธีก็จะมีการสูญเสียพลังงานมาก แบบแรก มอเตอร์เดินตลอดเวลา ส่วนแบบที่สอง มอเตอร์จะเดินหยุดๆ ตลอดเวลา ซึ่ง
ก็เป็นการสูญเสียเช่นกัน ถ้าเราติดตั้งอินเวอร์เตอร์เข้าไปและใช้ตัว Pressure transmitter เป็นตัวส่งสัญญาณในการปรับรอบของมอเตอร์ให้ลดลง เมื่อความดันเพิ่มจากที่ต้องการ และเดินที่ความเร็วรอบปกติของมอเตอร์เมื่อความดันลดลง โดยอาจควบคุมเป็น แบบ PI หรือ PID ก็ได้ จากผลอันนี้เราจะประหยัดพลังงานได้อย่างมากทีเดียว
นอกเหนือไปจากผลที่ได้จากการประหยัดพลังงานแล้ว การใช้อินเวอร์เตอร์ในงานปั้ม หรือ พัดลม ยังให้คุณประโยชน์ด้านอื่นๆ ด้วย เช่น
1. การควบคุมดีขึ้น และ สะดวกมากขึ้น
- รักษาความดันน้ำคงที่สม่ำเสมอ
- รักษาอุณหภูมิอากาศคงที่สม่ำเสมอ
- ปรับเปลี่ยนง่ายไม่ยุ่งยาก
2. ลดความเครียดทางกล (Reduce mechanical stress) เช่น การเกิด Water hammer ในท่อ เนื่องจากเดิน หรือ หยุด ปั้มน้ำอย่างกระทันหันทำให้ค่าบำรุงรักษาลดลงด้วย
ไม่มีความคิดเห็น:
แสดงความคิดเห็น