คือผมเขียนโค๊ดหรี่ไฟให้กับ led strip 12v ครับ แต่แรงดันของ Arduino ไม่พอครับ พอจะมี พวก ไอชีขยายไฟให้ LED ตัวนี้ แบบบอร์ด Arduino ไม่พังใหมครับ (ทำบอร์ดพังมา 1 บอร์ดละครับ )
ถ้ามีรบกวนแนะนำอุปกรณ์ที่ร้านหน่อยนะครับเพราะผมซื้อจากเว็ปนี้มาหลายชิ้นละครับ
(stk500_getsync(): not in sync: resp=0x01 อาการของบอร์ด Arduino ครับไม่รู้ว่าพังจริงป่าว)
led strip 12v ที่ผมใช้ มี 2 เส้น ครับ
วงจรนี้ครับที่ผมทำบอร์ดพัง ผมใช้ ไอซี 7812 ถ่านเป็น อะแดปเตอร์ 12 V คือทดสอบแล้วครับ ไอซี 7812 ร้อนมาก และไม่สามารถหรี่ไฟได้ แต่ถ้าเราถอดสายแดงตรง ไอซี 7812 ออก สามารถหรี่ได้ครับแต่ไฟออ่นมากคล้ายกับว่าไฟไม่พอครับ แต่พอเสียวสายแดงเข้าไปตรง ไอซี 7812 ไฟสว่างมากแต่โค๊ดไม่สามารทำงานได้ครับ
และผมไปค้นวิธีใหม่มาครับไม่รู้ว่าแบบนี้จะเวิร์คป่าวครับ เขาใช้ ULN2803 ครับ
โค๊ดที่ผมใช้ทดลองครับ
#define PIN 11 // control pin #define DELAY 10 // 20ms internal delay; increase for slower fades void setup() { pinMode(PIN, OUTPUT); } void loop() { // fade in for(int i=0; i<255; i++) { analogWrite(PIN, i); delay(DELAY); } // fade out for(int i=0; i<255; i++) { analogWrite(PIN, 255-i); delay(DELAY); } }
ถ้าใช้ขา Arduino จะขับกระแสได้สูงสุดแค่ 50mA ต้องเพิ่มวงจรขยายสัญญาณ
ถ้าต่อแบบรูปแล้วเป็นไอซี 7812 เป็นวงจรเรกูเลตนะครับ ถ้าวงจรขยายสัญญาณ ต้องใช้ทรานซิสเตอร์
ปัญหานี้เกิดจากกระแสไม่พอ ใช้ ULN2003 / ULN2803 ขยายสัญญาณตามรูปได้ครับ
ภายในไอซี เป็น array transistor พร้อมไดโอดป้องกันไฟย้อนกลับ จำนวน 7 / 8 ช่อง ออกแบบมาสำหรับงานเช่น ขับมอเตอร์ รีเลย์ หรือ LED ขับกระแสได้สูงสุดถึงช่องละ 500mA
แต่ถ้ายังขับไม่พออาจจะใช้ mosfet เบอร์ IRF540 ขับได้สูงสุด 9000mA หรือ 9A อย่าลืมติดแผ่นระบายความร้อนด้วยครับ
http://joost.damad.be/2012/09/dimming-12v-led-strip-with-mosfet-and.html
สำหรับ stk500_getsync(): not in sync: resp=0x01
แปลว่าอัพโหลดไม่สำเร็จติดต่อชิฟ arduino ไม่ได้
วิธีแก้ ถ้าโชคดีลง bootloader ตามหน้าบทความเรื่อง arduino stand alone อาจจะหาย
ถ้าไม่หายอาจเป็นไปได้ว่าชิฟ Atmega328P มีปัญหาครับ
จ่ายกระแส 6A ตาม datasheet ไอซีขับกระแสได้สูงสุด 500mA ต่อช่องครับ กระแสไฟอีก 5.5A จะไม่ได้ใช้งานนะครับ
ถ้าผมใช้ตัวนี้สามารถชับหลอดให้ติดใหมครับ
(สั่งงานแบบ PWM นะครับ)
ถ้่าตัวนี้ทำได้พอจะมีวิธีการต่อหรือไม่ครับ
ตามตัวอย่างโค๊ดหรี่ไฟ
#define PIN 11 // control pin #define DELAY 10 // 20ms internal delay; increase for slower fades void setup() { pinMode(PIN, OUTPUT); } void loop() { // fade in for(int i=0; i<255; i++) { analogWrite(PIN, i); delay(DELAY); } // fade out for(int i=0; i<255; i++) { analogWrite(PIN, 255-i); delay(DELAY); } }
ได้ครับ เป็น mosfet เบอร์ IRF540 ขับได้สูงสุด 9000mA หรือ 9A อย่าลืมติดแผ่นระบายความร้อนด้วยครับ
http://joost.damad.be/2012/09/dimming-12v-led-strip-with-mosfet-and.html
ใช่ครับต่อตามนี้ จากการทดลอง LED ทั้งเส้นนี้ ใช้กระแสไฟประมาณ 500mA
ขับจากขา arduino โดยตรงไม่ได้ เพราะขับได้แค่ 50mA
จึงต้องมีวงจรขยายสัญญาณ ถ้าใช้ MOSFET IRF520N ขยายสัญญาณสามารถขับได้ถึง 9,000mA
/*การต่อใช้งาน โคด Arduino MOSFET IRF520N
*/
int led = 9;
void setup() {
pinMode(led, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
for(int i=10;i<255;i++){
analogWrite(9,i);
delay(5);
}
for(int i=255;i>10;i--){
analogWrite(9,i);
delay(5);
}
}