Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - JAY

#1
Quote from: az on March 16, 2017, 07:14:18 PM
PWM ที่ต้องการใช้งานมีทั้งหมด กี่ค่าครับ หรือใช้ทั้งช่วง 0..255
ต้องการใช้ทั้งช่วง 0 ถึง 255 เลยครับ
#2
void loop()                        //ในส่วนของโค้ดผมขอยกมาแค่นี้ เนื่องจากในของโค้ด Fuzzy โค้ดยาวมาก แต่ค่อนข้างโอเคแล้ว
{                                                          และที่ติดปัญหาคือในส่วนของค่า Output คือตัวแปร Duty ที่จะนำค่านี้ไปเป็น
  fuzzy->setInput(1,Error);                      คำสั่งควบคุม PWM (0-255) 
  fuzzy->setInput(2,dError);         

  fuzzy->fuzzify();

  Duty = fuzzy->defuzzify(1);                  //ค่า Duty เป็นค่าที่ได้หลังจากการคำนวณ Fuzzy เป็นค่าอยู่ในช่วง -15 ถึง 15

  DutyPrevious = DutyNow;       
  DutyNow = Duty;
  PWMValue = DutyPrevious + DutyNow;   
                                                                 
  analogWrite(PWMPin, PWMValue);
  delay(1000);
}
***ผมทำแบบนี้แล้วค่าไม่ได้อย่างที่ต้องการครับ

พอดีผมไม่ถนัดด้านนี้ครับ แต่จำเป็นต้องทำ


#3
ก่อนอื่นอธิบายคร่าวๆก่อนครับ คือผมมีค่า Output ที่ได้จากการคำนวณฟัซซี่ลอกจิก ซึ่งเป็นค่า + 0 - (-15 ถึง 15)
คือผมติดปัญหาที่จะเอา Output นี้ไปเป็นคำสั่งควบคุม PWM (0-255)
**กรณีสมมุติ**
เมื่อ Output คำนวณค่าได้ +15 ก็นำค่า +15 ไปเป็นค่า PWM
ต่อมา Output คำนวณค่าได้ +10 ก็นำค่า +10 ไปรวมกับค่า PWM ก่อนหน้า
คือ 15 + 10 = 25  ค่า PWM ก็จะเท่ากับ 25
ต่อมา Output ก็ส่งค่ามาเรื่อยๆ อาจจะเป็นได้ทั้งค่าบวก และค่าลบ
ก็นำค่า Output ไปบวกลบกับค่า PWM ก่อนหน้า
ประมาณนี้ ผมต้องเขียนโค้ดยังไงครับ ขอคำแนะนำหน่อยครับ
ขอบคุณครับ
#4
พอดีผมซื้อลักซ์มิเตอร์รุ่นนี้มาเพื่อใช้ทำโปรเจคจบ แต่รู้สึกว่าวัดความสว่างแล้วค่ามันต่ำๆ เนื่องจากลองวัดเทียบกับ App ลักซ์มิเตอร์ในโทรศัพท์นั้นได้ค่าที่สูงกว่า วัดเทียบกับวงจรที่ใช้โมดูล TSL2561 ก็ได้ค่าที่สูงกว่า
<เลยอยากขอคำแนะนำหน่อยครับ ว่าควรทำอย่างไรถึงจะรู้ว่าลักซ์มิเตอร์ที่ผมซื้อมานั้นวัดค่าได้ถูกต้องหรือเปล่า>
#5
Quote from: crywolf on February 21, 2017, 11:25:41 PM
เปลี่ยนค่า R2 กับ R3 ครับ ใช้สัก 1Kohm ทั้ง 2 ตัว
ถ้ายังติดอยู่ลองเช็คว่า PWM เป็น 0 มัน 0 จริงๆรึป่าว
หรือยังมีพัลล์ออกมา ลองถอดสัญญาณ PWM ออกดูครับ
ขอขอบคุณสำหรับคำแนะนำนะครับ
#6
Quote from: dec on February 21, 2017, 09:56:40 PM
ผมเคยทำก็ประสบปัญหาเดียวกันครับ LED แท่งก็แบบเดียวกัน แต่ผมใช้ IC HV9910BLG-G ช่วย Drive MOSFET ด้วย

ตอนที่ผมทำมันเกิดจากตัว Opto-isolator มันมีกระแสรั่วเล็กน้อย เพียงพอให้ MOSFET นำกระแสได้เล็กน้อย LED เลยติดหรี่ๆ สุดท้ายผมก็ตัด Opto-isolator ออก แล้วเอาไฟ 12V ที่เลี้ยง LED มาผ่าน LDO จ่ายให้ MCU ด้วย เพื่อให้ใช้ GND ร่วมกัน แล้วก็เอา MCU จ่าย PWM ให้ IC HV9910BLG-G ตรง ๆ โดยไม่ผ่าน Opto-isolator
ขอบคุณสำหรับคำแนะนำครับ ตอนนี้ได้เปลี่ยน IRFZ44 ใหม่ ตอน pwm = 0 ไฟดับสนิทแล้วครับ

ขอถามเพิ่มอีกนิดนะครับ LED แท่งแบบนี้ เปิดไฟสว่างสุดแล้วรู้สึกร้อนๆ เป็นปกติไหมครับ หรือว่ามีสาเหตุมาจากอะไร
#7
ผมต่อวงจรขับด้วยมอสเฟตตามรูปด้านล่าง โดยขับโหลดคือ ไฟ LED แบบแท่ง 12 V 1.5 A ควบคุมด้วย PWM (ด้วยค่า 0-255)
***แต่ปัญหาที่พบคือ เมื่อ pwm เท่ากับ 0 แล้วหลอดไฟ ไม่ยอมดับ ยังคงหรี่ๆอยู่
ผมต้องแก้ไข หรือเพิ่มเติมวงจรตรงส่วนไหนครับ หรือท่านใดมีวงจรขับแบบอื่น แนะนำมาได้เลยครับ
ขอขอบคุณล่วงหน้าครับ
#8
การนำทฤษฏี Fuzzy Logic มาใช้กับกับ Arduino ต้องทำยังไงครับ ?

พอดีเริ่มหาข้อมูลมาศึกษาบ้างแล้ว  แต่ก็ยังไม่เข้าใจ