โปรแกรมคำนวณแรงดันตก หน่วยเป็น V และ %
สาย THW
หาค่า VD จาก
ขนาดสาย
ระบบแรงดัน 1 เฟส และ 3 เฟส
การเดินสาย
ความยาวสาย
กระแส
P.F.
Download from play store
https://play.google.com/store/apps/details?id=appinventor.ai_test.voltagedrop
วันอังคารที่ 16 สิงหาคม พ.ศ. 2559
วันอังคารที่ 9 สิงหาคม พ.ศ. 2559
โปรแกรม คำนวณออกแบบ Switching Power Supply (Android)
วันเสาร์ที่ 6 สิงหาคม พ.ศ. 2559
Switching DC to DC converter
วงจร Dc to DC Converter แบบ switching
แปลงไฟกระแสตรง เป็น กระแสตรง แบบ switching
โดยการเพิ่มหรือลดแรงดัน
1.วงจร Buck converter
วงจรลดแรงดัน ใช้ในการลดแรงดันลงมา เช่น ใช้ในงาน solar cell งานแบตเตอรี่ยานยนต์
เครื่องบิน เรือ ฯลฯ เพื่อลดแรงดัน DC ที่มาจากแหล่งอื่นๆให้ได้เท่ากับระดับแบตเตอรี่
คือ 12V-13.8V
2.วงจร Boost converter
วงจรเพิ่มแรงดันใช้ในการเพิ่มแรงดันจากแรงดัน battery 12V ให้เป็นแรงดันพิกัดของมอเตอร์กระแสตรงต่างๆเพื่อเพิ่มความเร็ว และแรงบิด
3.วงจร Buck - Boost converter
ข้อดีของวงจร switching หรือในการใช้ความถี่ในการเปิดปิดสวิตซ์ เมื่อเปรียบเทียบกับแบบ linear
1.ในกรณีงานระบบไฟฟ้า
กำลังไฟเยอะๆ เช่น solar
cell หลาย 100w ขึ้นไป ประสิทธิภาพสูงกว่า
สามารถได้พลังงานออกมามากกว่าแบบ linear
ในกรณี input เท่ากัน
2.ขนาดโดยรวมเล็ก
น้ำหนักเบา ความร้อนต่ำ เนื่องจากพลังงานส่วนเกินที่เปลี่ยนไปเป็นพลังงานความร้อนน้อยกว่า
จึงทำให้เกิดความร้อนน้อย และ อุปกรณ์ไม่ต้องทนความร้อนมากทำให้มีขนาดเล็กกว่า
ข้อเสีย
1.แบบ switching ราคาแพงเนื่องจากวงจรมีความซับซ้อนกว่าอาจต้องใช้วงจร
Feedback ป้อนกลับมาเปรียบเทียบ เพื่อตรวจสอบแรงดันไฟฟ้าที่ออกไปว่าตรงกับความต้องการหรือไม่
หากมากไปหรือน้อยไปอาจเพิ่มวงจรการควบคุมเข้าไปอีก หากไม่ป้อนกลับแล้วแรงดันเกินมาก
อุปกรณ์เสียหาย หากแรงดันน้อยมาก อุปกรณ์ก็ไม่ทำงาน เมื่อเทียบกับแบบ
linear แล้ววงจร linear อาจใช้แค่ IC ตัวเดียว
2.noise หรือสัญญาณรบกวนสูง อาจทำให้เกิดฮาร์มอนิกส์ ขึ้นในระบบไฟฟ้า
3.ควรมีวงจร isolate แยกออกจากระบบเมนไฟฟ้า
วันจันทร์ที่ 1 สิงหาคม พ.ศ. 2559
DIY แขนกล จากฟิวเจอร์บอร์ด
แขนกล Robotic arm จาก ฟิวเจอร์บอร์ด
ใช้ R ปรับค่าได้ ควบคุม servo 2 ตัว
ใช้ สวิตซ์ 2 ตัวควบคุม servo 1 ตัว
ภาพการต่อวงจร
สวิตซ์ในคลิปผมพูดต่อแบบ Active high แต่ในcode
และวงจร
จะเป็นแบบ Active low
Code Arduino
#include "Servo.h"
int ServoPina = 2; // กำหนดต่อ Servo a ไว้ที่ขา D2
int ServoPinb = 4; // กำหนดต่อ Servo b ไว้ที่ขา D4
int ServoPinc = 6; // กำหนดต่อ Servo c ไว้ที่ขา D6
Servo MicroServoa; // สร้าง servo object เพื่อควบคุม servo มอเตอร์ a
Servo MicroServob; // สร้าง servo object เพื่อควบคุม servo มอเตอร์ b
Servo MicroServoc; // สร้าง servo object เพื่อควบคุม servo มอเตอร์ c
int potpina = 0; // ใช้ analog pin 0 เพื่อต่อกับ potentiometer
a
int potpinb = 1; // ใช้ analog pin 1 เพื่อต่อกับ potentiometer
b
int vala; // กำหนดตัวแปร vala เพื่ออ่านค่า analog pin
int valb; // กำหนดตัวแปร valb เพื่ออ่านค่า analog pin
int valc; // กำหนดตัวแปร valc เพื่ออ่านค่า analog pin
void setup() {
MicroServoa.attach(ServoPina); //ประกาศ servo a ใช้สัญญาณจาก
ServoPina
(pin 2)
MicroServob.attach(ServoPinb);
//ประกาศ servo b ใช้สัญญาณจาก
ServoPina
(pin 4)
MicroServoc.attach(ServoPinc); //ประกาศ servo a ใช้สัญญาณจาก
ServoPina
(pin 6)
pinMode(8,INPUT_PULLUP); //ประกาศให้ pin 8 เป็น digital inuput แบบ pull up
pinMode(9,INPUT_PULLUP); //ประกาศให้ pin 9 เป็น digital inuput แบบ pull up
}
void loop() {
vala =
analogRead(potpina); // อ่านค่าตัวต้านทานปรับค่าได้ potentiometer (โดยมีค่าระหว่าง 0 และ 1023)
vala = map(vala, 0,
1023, 0, 180); // แปลงค่าที่ได้ให้ใช้กับ servo motor (โดยมีค่าระหว่าง
0 และ 180)
MicroServoa.write(vala);
// เซท servo motor ให้เป็นตำแหน่งตามค่าที่ได้
delay(15); // หน่วงเวลาเพื่อให้ servo หมุนไปที่ตำแหน่งนั้น
valb =
analogRead(potpinb); // อ่านค่าตัวต้านทานปรับค่าได้ potentiometer (โดยมีค่าระหว่าง 0 และ 1023)
valb = map(valb, 0,
1023, 0, 180); // แปลงค่าที่ได้ให้ใช้กับ servo motor (โดยมีค่าระหว่าง
0 และ 180)
MicroServob.write(valb);
// เซท servo motor ให้เป็นตำแหน่งตามค่าที่ได้
delay(15); // หน่วงเวลาเพื่อให้ servo หมุนไปที่ตำแหน่งนั้น
int buttonStatea;
buttonStatea = digitalRead(8); // ให้
buttonStatea
อ่านค่า ดิจิตอลจาก pin 8
if (buttonStatea ==
LOW) // ถ้าสถานะ pin 8 เป็น low
valc = valc+1; // ให้ valc เพิ่มค่า 1
MicroServoc.write(valc);
// เซท servo motor ให้เป็นตำแหน่งตามค่าที่ได้
delay(15); // หน่วงเวลาเพื่อให้ servo หมุนไปที่ตำแหน่งนั้น
int buttonStateb;
buttonStateb = digitalRead(9); // ให้
buttonStatea
อ่านค่า ดิจิตอลจาก pin 9
if (buttonStateb ==
LOW) // ถ้าสถานะ pin 9 เป็น low
valc = valc-1; // ให้
valc
ลดค่าลง 1
MicroServoc.write(valc);
// เซท servo motor ให้เป็นตำแหน่งตามค่าที่ได้
delay(15); // หน่วงเวลาเพื่อให้ servo หมุนไปที่ตำแหน่งนั้น
}
Remark: ทดลองวงจรควบคุม servo 1 ตัว โดยใช้ R ปรับค่าได้
Code Arduino
#include "Servo.h"
int ServoPin = 2; // กำหนดต่อ
Servo
ไว้ที่ขา D2
Servo MicroServo;
int potpin = 0;
// ต่อ R ปรับค่าได้ที่ขา อนาล็อก ขา 0
int val; // variable
to read the value from the analog pin
void setup() {
MicroServo.attach(ServoPin);
}
void loop() {
val =
analogRead(potpin); // reads
the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 180); // scale it to
use it with the servo (value between 0 and 180)
MicroServo.write(val);
// sets the servo position
according to the scaled value
delay(15);
// waits for the servo to get there
}
สมัครสมาชิก:
บทความ (Atom)