มาเล่นด้วยกันเลยน้าวัฒน์เริ่มเรียนใหม่ผมก็จะหัดพวก VB หรือ Labview เหมือนกันแต่ไม่รู้จะไหวรึเปล่า อิอิ
Printable View
เอามาฝากสำหรับน้าที่ ชอบกับปริ้นเองแล้วน้า ที่หัดทำด้วยตัวเอง มีสองแบบ แวะผ่านไปเห็น
http://www.thaimicrotron.com/Trick/PCB/DIYPCB.htm
http://www.thaimicrotron.com/Trick/PCB/Dryfilm.htm
ไม่ได้กัดนานผมก็ลืมไปบ้าง แล้วนะครับน้า
น้าๆ ต้อนรับน้องใหม่หน่อย ครับ ของผมเอง ไม่ถึงเดือนปาไป 4000 โล
http://www.thaitritonclub.com/forum/...d=1#post336180
น้าnakcarinน้า jee4x4 ครับตอนนี้ผมลองศึกษากะ chip atmega8 แบบ32ขาอยู่ครับกะจะให้มันโชว์tempเครื่องกะวัดรอบน่ะครับ มีโครงงานอยู่อ่ะครับต่อกับ obd น่ะครับแต่รู้มาคร่าวๆว่าtritonใช้การติดต่อแบบ can bus น้าพอมีโปรแกรม burn avrบ้างไหมครับจะลองทำดูครับ
ตอนนี้ผมใช้ โปรแกรม protrus7 ในการsimดูก่อนน่ะครับว่ามันจะใช้ได้ไหมแต่ตอนนี้ยังมั่วอยู่ครับว่ามันใช้ไง เป็นโครงงานในหนังสือsemiconductor eletronics ฉบับ345 เดือนมิถุนายน เพื่อมีท่านใดเคยทำแล้วผลเป็นไงบอกด้วยครับ ส่วนซอร์สโค๊ดที่ได้มาเป็น.hexแล้วครับ
เพิ่งจะเข้า Net ได้ครับ มารายงานตอกบัตรทำงานให้ triton club ครับ อิอิ
วันนี้ไม่มีอะไรมาเล่นเลยเหรอท่านอาจารย์
น้าจีของ Wiring หน่อยครับ ส่งให้หน่อย nakcarin@hotmail.com หรือน้าที่ใดอ่านก่อนส่งมาได้เลยครับ ขอบคุณ
รบกวนจารย์ จี มาชี้แจงเรื่อง Pedal Speed Control Project
น้าจี ใช้ IC อะไรแปลงแรงดันขึ้นครับ
ถ้าไม่ใช้ MCU จะทำยังไงกันดีครับ
รอ ครับ
น้ายงครับ ผมหาของเล่นให้น้าได้แล้ว เอาไปลองดูครับ แรงได้ก็ประหยัดได้ครับ
ประหยัดได้จริงครับ เพราะหลักการที่เห็นในรูปเป็นวงจร voltage divider(วงจรแบ่งแรงดัน) คือมันจะลดแรงดันที่รับมาจาก sensor ก่อนส่งให้กับ ECU จากรูปถ้าเราปรับ VR ไว้ที่ 50K เมื่อมีแรงดันมาจาก sensor สมมุติ 2 V ECU จะได้รับค่าแรงดันเท่ากับ 2x33/(50+33)=0.795V (คิดแรงดันตกคร่อม R 33K) แต่ในทางปฏิบัติคงไม่สามารถปรับ VR ได้มากจนถึง 50K นะครับเพราะ ECU คงแสดง error code P0107 MAP signal low ซะก่อน แล้วถ้าประหยัดแล้วขับอืดมากๆจะขับได้มั้ยหละน้าวัฒน์ อิอิ
มันคงพอมีครับน้าแต่เล่น MCU ดีกว่าครับเขียนง่ายๆ บวกค่าก็ทำคันเร่งไฟฟ้า ลบค่าก็ทำดันราง เดี๋ยวให้น้านครินทร์ช่วยเป็นโค๊ชให้อีกทีหรือให้ผม open source เลยก็ได้ไม่หวงครับ ตอนนี้ผมทำดันแบบ 5 stepมันยังมีอาการกระตุกบางวันแต่ไม่ทุกครั้งสาเหตคงมาจากผมใช้ทรัพยากรในตัว MCU เต็มพิกัดเกินไปมันเลย hang บางครั้งแต่ถ้าใช้แบบ 1 step ไม่มีปัญหาอะไร
มีใครใช้ arduino มั้ยครับเดี่ยวจะให้ source code ไปทำเล่นกันสำหรับดันราง MCU เดี่ยววันนี้เอาแบบดันไม่ต้องทำท้ายรางไปแล้วกันครับ ส่วน arduino ide ไป load จาก web www.arduino.cc ครับฟรีครับไม่ต้องเสียตังค์ส่วน PCB เดี๋ยวup ให้ครับสั่งจาก wara ได้เลย
int railsensor=0;
int boostsensor=1;
int railvalue=0;
int boostvalue=0;
//----------------------ตัวแปรของ MCP4922 (Digital to Analog)
int CS = 8;
int SCK = 9;
int SDI = 10;
int LDAC = 11;
int SHDN = 12;
//-------------------------------function D2A------------------------------
void Write_MCP4922(unsigned char DAC_Channel,unsigned int DAC_Data) // Write DAC Output
{
digitalWrite(CS, LOW); // Enable MCP4922
switch (DAC_Channel) // Select DAC Channel(0=A,1=B)
{
case 0x00: DAC_Data |= 0x3000; // Write DAC-A
break;
case 0x01: DAC_Data |= 0xB000; // Write DAC-B
break;
}
shiftOut(SDI, SCK, MSBFIRST,(DAC_Data >> 8)& 0xFF); //MSB Data(High Byte)
shiftOut(SDI, SCK, MSBFIRST,DAC_Data & 0xFF); //LSB Data(Low Byte)
digitalWrite(CS, HIGH); // Disable MCP4922
digitalWrite(LDAC, LOW); // Enable Pulse Latch
digitalWrite(LDAC, HIGH);
}
//-----------------------------------------Setup_Function---------------------------
void setup()
{
pinMode(CS, OUTPUT);
pinMode(SCK, OUTPUT);
pinMode(SDI, OUTPUT);
pinMode(LDAC, OUTPUT);
pinMode(SHDN, OUTPUT);
digitalWrite(CS, HIGH); //Standby CS Signal
digitalWrite(SCK, LOW);
digitalWrite(SDI, LOW);
digitalWrite(LDAC, HIGH); //Standby LDAC Signal
digitalWrite(SHDN, HIGH); //Standby SHDN Signal
}
//--------------------------------------------loop_function---------------------------
void loop()
{
//----------------------------------------------read railsensor-------------------------------
railvalue=analogRead(railsensor); //อ่านค่าจาก sensor วัดแรงดันน้ำมัน
if((railvalue>=347)&&(railvalue<1023)){
if((railvalue>=347)&&(railvalue<351)){railvalue=analogRead(railsensor)-2;}
else if((railvalue>=351)&&(railvalue<355)){railvalue=analogRead(railsensor)-4;}
else if((railvalue>=355)&&(railvalue<360)){railvalue=analogRead(railsensor)-6;}
else if((railvalue>=360)&&(railvalue<365)){railvalue=analogRead(railsensor)-8;}
else if((railvalue>=365)&&(railvalue<370)){railvalue=analogRead(railsensor)-10;}
else if((railvalue>=370)&&(railvalue<375)){railvalue=analogRead(railsensor)-13;}
else if((railvalue>=375)&&(railvalue<380)){railvalue=analogRead(railsensor)-16;}
else if((railvalue>=380)&&(railvalue<385)){railvalue=analogRead(railsensor)-19;}
else if((railvalue>=385)&&(railvalue<390)){railvalue=analogRead(railsensor)-21;}
else if((railvalue>=390)&&(railvalue<395)){railvalue=analogRead(railsensor)-24;}
else if((railvalue>=395)&&(railvalue<400)){railvalue=analogRead(railsensor)-27;}
else if((railvalue>=400)&&(railvalue<405)){railvalue=analogRead(railsensor)-30;}
else if((railvalue>=405)&&(railvalue<410)){railvalue=analogRead(railsensor)-34;}
else if((railvalue>=410)&&(railvalue<415)){railvalue=analogRead(railsensor)-38;}
else if((railvalue>=415)&&(railvalue<420)){railvalue=analogRead(railsensor)-42;}
else if((railvalue>=420)&&(railvalue<425)){railvalue=analogRead(railsensor)-46;}
else if((railvalue>=425)&&(railvalue<430)){railvalue=analogRead(railsensor)-50;}
else if((railvalue>=430)&&(railvalue<435)){railvalue=analogRead(railsensor)-55;}
else if((railvalue>=435)&&(railvalue<440)){railvalue=analogRead(railsensor)-60;}
else if((railvalue>=440)&&(railvalue<445)){railvalue=analogRead(railsensor)-65;}
else if((railvalue>=445)&&(railvalue<450)){railvalue=analogRead(railsensor)-70;}
else if((railvalue>=450)&&(railvalue<455)){railvalue=analogRead(railsensor)-75;}
else if((railvalue>=455)&&(railvalue<460)){railvalue=analogRead(railsensor)-80;}
else if((railvalue>=460)&&(railvalue<465)){railvalue=analogRead(railsensor)-85;}
else if((railvalue>=465)&&(railvalue<470)){railvalue=analogRead(railsensor)-90;}
else if((railvalue>=470)&&(railvalue<475)){railvalue=analogRead(railsensor)-95;}
else if((railvalue>=475)&&(railvalue<480)){railvalue=analogRead(railsensor)-100;}
else if((railvalue>=480)&&(railvalue<485)){railvalue=analogRead(railsensor)-105;}
else if((railvalue>=485)&&(railvalue<490)){railvalue=analogRead(railsensor)-110;}
else if((railvalue>=490)&&(railvalue<495)){railvalue=analogRead(railsensor)-115;}
else if((railvalue>=495)&&(railvalue<500)){railvalue=analogRead(railsensor)-120;}
else if((railvalue>=500)&&(railvalue<505)){railvalue=analogRead(railsensor)-125;}
else if((railvalue>=505)&&(railvalue<510)){railvalue=analogRead(railsensor)-130;}
else if((railvalue>=510)&&(railvalue<515)){railvalue=analogRead(railsensor)-135;}
else if((railvalue>=515)&&(railvalue<520)){railvalue=analogRead(railsensor)-140;}
else if((railvalue>=520)&&(railvalue<525)){railvalue=analogRead(railsensor)-145;}
else if((railvalue>=525)&&(railvalue<530)){railvalue=analogRead(railsensor)-150;}
else if((railvalue>=530)&&(railvalue<535)){railvalue=analogRead(railsensor)-155;}
else if((railvalue>=535)&&(railvalue<700)){railvalue=analogRead(railsensor)-160;}
else if((railvalue>=700)&&(railvalue<705)){railvalue=analogRead(railsensor)-158;}
else if((railvalue>=705)&&(railvalue<710)){railvalue=analogRead(railsensor)-156;}
else if((railvalue>=710)&&(railvalue<715)){railvalue=analogRead(railsensor)-154;}
else if((railvalue>=715)&&(railvalue<720)){railvalue=analogRead(railsensor)-152;}
else if((railvalue>=720)&&(railvalue<725)){railvalue=analogRead(railsensor)-150;}
else if((railvalue>=725)&&(railvalue<730)){railvalue=analogRead(railsensor)-148;}
else if((railvalue>=730)&&(railvalue<735)){railvalue=analogRead(railsensor)-146;}
else if((railvalue>=735)&&(railvalue<740)){railvalue=analogRead(railsensor)-144;}
else if((railvalue>=740)&&(railvalue<745)){railvalue=analogRead(railsensor)-142;}
else if((railvalue>=745)&&(railvalue<750)){railvalue=analogRead(railsensor)-140;}
else if((railvalue>=750)&&(railvalue<755)){railvalue=analogRead(railsensor)-138;}
else if((railvalue>=755)&&(railvalue<760)){railvalue=analogRead(railsensor)-136;}
else if((railvalue>=760)&&(railvalue<765)){railvalue=analogRead(railsensor)-134;}
else if((railvalue>=765)&&(railvalue<770)){railvalue=analogRead(railsensor)-132;}
else if((railvalue>=770)&&(railvalue<775)){railvalue=analogRead(railsensor)-130;}
else if((railvalue>=775)&&(railvalue<780)){railvalue=analogRead(railsensor)-128;}
else if((railvalue>=780)&&(railvalue<785)){railvalue=analogRead(railsensor)-126;}
else if((railvalue>=785)&&(railvalue<790)){railvalue=analogRead(railsensor)-124;}
else if((railvalue>=790)&&(railvalue<795)){railvalue=analogRead(railsensor)-122;}
else if((railvalue>=795)&&(railvalue<800)){railvalue=analogRead(railsensor)-120;}
else if((railvalue>=800)&&(railvalue<805)){railvalue=analogRead(railsensor)-118;}
else if((railvalue>=805)&&(railvalue<810)){railvalue=analogRead(railsensor)-116;}
else if((railvalue>=810)&&(railvalue<815)){railvalue=analogRead(railsensor)-114;}
else if((railvalue>=815)&&(railvalue<820)){railvalue=analogRead(railsensor)-112;}
else if((railvalue>=820)&&(railvalue<825)){railvalue=analogRead(railsensor)-110;}
else if((railvalue>=825)&&(railvalue<830)){railvalue=analogRead(railsensor)-108;}
else if((railvalue>=830)&&(railvalue<835)){railvalue=analogRead(railsensor)-106;}
else if((railvalue>=835)&&(railvalue<1023)){railvalue=analogRead(railsensor)-104;}
}
else { railvalue=analogRead(railsensor);}
railvalue=map(railvalue,0,1023,0,4095); //map parameter 'railvalue' from 1-1023 to 0-4095 (for DAC)
Write_MCP4922(0,railvalue); //write railvalue to DAC-A
//-----------------------------------------------read boostsensor-----------------------------------
boostvalue=analogRead(boostsensor); // อ่านค่าจาก sensor แรงดันอากาศ
if(boostvalue>720){boostvalue=720;}
else{boostvalue=analogRead(boostsensor);}
boostvalue=map(boostvalue,0,1023,0,4095); //map parameter 'boostvalue' from 1-1023 to 0-4095 (for DAC)
Write_MCP4922(1,boostvalue); //write boostvalue to DAC-B
}
น้าจีครับ เอากล่องคันเร่งมา Mod ใช้กับแอร์โฟร์ได้ไหมครับ เพราะเป็นการขยายสัญณาณไฟฟ้าเหมือนกัน
ผมสนใจกล่องคันเร่งไฟฟ้าของน้าจี ขอผม 1 กล่องนะครับ รายละเอียดค่าใช้จ่ายบอกผมด้วยทางเมลนะครับ
คันเร่ง
ถ้าผมจ่ายไฟเข้าที่ ขา 5V เป็น 6 v กว่า ๆ แทนได้ใหมอาจารย์
:kapook-17197-2309:
แนวคิดแปลกดีครับน้าคิดแบบนี้มีโอกาสสร้างนวัตกรรมใหม่ได้เรื่อยๆแน่ครับ ถ้า hall IC ที่มันจับองศาการกดของคันเร่งมันทนไฟได้มากกว่า 5 V ก็คงทำได้ครับ(แต่ไม่รู้มันทนได้รึเปล่า) แต่ผลที่ตามมามันต้องมีแน่ครับ คิดง่ายๆเลยคงส่งผลให้รอบเดินเบาสูงขึ้นมาแน่เลยน้าว่ารึเปล่าครับ เพราะมันจะทำการเพิ่มทุกช่วงการใช้งาน โดยหลักการของกล่องคันเร่งไฟฟ้าช่วงเดินเบาค่าแรงดัน sensor หลัก 1V sensor รอง 0.5V ช่วงนี้เขาจะไม่ไปยุ่งมันเลยครับเขาจะเริ่มหลอกที่มีการกดคันเร่งแล้วนิดเดียวเช่น 1.1V หลอกให้ส่งค่าไป ECU 1.5 V ประมาณนี้ครับยิ่งหลอกมากการออกตัวยิ่งรุนแรงกระโจนออกแบบควันท่วมเลยยังได้ครับแต่ถ้าหลอกเกินมากก็จะไฟแสดงแล้วก็จะถูกล็อคความเร็วแล้วก็คลานไปอย่างช้าๆโอกาสที่จะค้างแล้ววิ่งเกิดขึ้นน้อยมากครับเท่าที่ทดสอบมา
:smiley-transport012
สามารถทำเป็นกล่องคันเร่งได้ครับน้า ส่วนโปรแกรมที่ใช้ออกแบบเป็นของ PCB wizard ครับมันออกแบบ PCB ให้อัตโนมัติครับน้าอำนาจมีตัวไหนแจ๋วๆรึเปล่าครับ พอดีผมไม่ถนัดเลยใช้แบบนี้ครับซึ่งจริงๆแผ่นวงจรสามารถทำให้เล็กกว่านี้ได้ครับ อาจใช้อุปกรณ์ที่เป็น chip ตัวเล็กได้แต่ในโปรแกรมมันไม่มี library มาให้ครับก็เลยทำได้แค่นี้ตัวนี้ผมหัดเขียนงานแรกครับใช้งานได้แต่ลำบากตรงไม่ได้ใส่ FT-232 ในวงจรทำให้ต้องเบิร์น chip แล้วเอามาเปลี่ยนเอาครับถ้าต้องการเปลี่ยน step ความแรงถ้ามีโปรแกรมจูนอย่าง VB หรือตัวอื่นที่จูน real time ได้แหล่มเลยครับแต่เขียนไม่เป็นพออ่านก็งงไม่รู้จะเริ่มตรงไหน ส่วนวงจรผมต้องตามหาก่อนครับเพราะทำไว้ตั้งแต่ปีที่แล้วไม่รู้ไปอยู่ file ไหน ที่เห็นเป็น PCB สองหน้าครับ PTH
กล่องคันเร่งนี่แหละครับอยากทำบ้าง ผมก็เริ่มเหมือนน้าจีครับใช้ PCB wizard ก่อนแต่การวางอุปกรณ์ไม่ได้ดั่งใจและ library มีน้อยมาก เลยหันมาลอเล่น Proteus ดูก็ออกแบบได้ดีนะครับแต่ทำ library ลำบากหน่อย และตอนนี้ลอง EAGLE CadSoft ก็เข้าท่าดีครับออกแบบเดินสายออโต้อาจไม่สวยเท่า Proteus แต่ทำ library เองได้ง่ายกว่าครับ แนะนำ EAGLE CadSoft ครับ
ผมก็อาศัซื้อหนังสือมาอ่านด้วยครับ คงยังไม่ถึงขั้นมือโปร ส่วน Protel มีเวลาค่อยซื้อหนังสือมาอ่านต่อ...
ถ้าน้าจีหาวงจรเจอขอหลังไมค์ได้ไหมจะลองเอามาออกแบบ PCB ใหม่ดูครับคงต้องขอคำแนะนำจากน้าจีด้วยนะครับแล้วการจูนกล่องคันเร่งหรือขั้นตอนการปรับตั้งยังไงครับ
ได้ครับน้าแต่มันต้องเบิร์น bootloader ก่อนลงโปรแกรม เครื่องโปรแกรมผมมันไม่มี adaptor ตัวนี้ด้วยแต่ถ้าจะใช้ตัวนี้เดี๋ยวจะไปถามป๋าๆใน electoday ให้ แต่คิดว่าถ้าออกแบบวงจรพื้นฐานเหมือน บอร์ด freeduino แล้วน่าจะใช้เครื่องโปรแกรม avr isp usb ที่ผมมีได้ ถ้าใช้ตัวนี้คงต้องเปลี่ยนตำแหน่งขาใหม่ด้วยนะครับรู้สึกว่าขาจะไม่ตรงกันกับวงจรที่ผม post ไว้ต่างกันนิดหน่อย
น้าอำนาจ add library MCP4922 ได้มั้ยครับหรือแบบ chip ก็ได้ครับวงจรคงเล็กลงไปเยอะเลย ผมลองเขียน eagle หา library ไม่เจอครับ ตัวอื่นมีหมด ถ้าน้ารีบรองตัดวงจร ft-232 มาใส่ก่อนได้ครับมันจะต่อขา 2,3 ของ MCU โดยส่วนอื่นคงไว้ต้องเอาอุปกรณ์ประกอบอื่นๆมาด้วยนะครับยกเว้นชุด MCU ใช้ของเดิม ผมก็เลียนแบบมาจากวงจรนี้แหละครับแต่อุปกรณ์ที่รับค่าส่งค่าออก ECU ผมหามาเอง
ดูแล้วจะยุ่งยากเกินไปถ้าใช้แบบ SMD เอาเป็นว่าใช้เบอร์เดิมที่น้าจีออกแบบไว้ดีกว่าเพราะหาอุปกรณ์ SMD ไม้ได้ทั้งหมดครับ ตอนนี้ที่ ES มีขายเป็นเบอร์นี้นะครับ ATMEGA168-20PU แบบ DIP-28 ครับ
http://www.es.co.th/detail.asp?Prod=ATMEGA168-20PU
แล้วเครื่องอัดโปรแกรมใช้ตัวไหนแล้วน้าพอจะมีรูป PCB ของจริงที่ออกแบบไว้ไหมครับ
รูป PCB ครับ ส่วนเครื่องอัดโปรแกรมใช้เพียงตอนเบิร์น bootloader เท่านั้นครับใช้ของ ET-avr isp usb ครับน้าไม่ต้องซื้อก็ได้ซื้อ ic ส่งมาให้ผมอัดให้ก่อนส่วนการปรับแต่งโปรแกรมแล้ว upload ถ้าใส่ FT232 แล้วก็สั่ง upload จาก aruino ide ได้เลยครับ
http://www.thaitritonclub.com/forum/...1&d=1265456573
Library MCP4922 ของ eagle ไม่มีครับน้าจีผมก็หาไม่เจอเหมือนกัน ส่วนการทำบอร์ดผมไม่รีบหรอกครับค่อยๆทำไป แต่ MCP4922 ที่ ES มีขายมีแต่ SOIC-14 ครับคงต้องทำ library เองแน่ๆ ไม่รู้ว่ามีแหล่งซื้อที่ไหนอีกครับที่เป็นแบบ DIP-14 ส่วนมากผมจะซื้อของที่ ES นะครับส่วนการเบิร์น bootloader คงต้องรบกวนน้าจีแล้วครับ ถ้าผมสงสัยตรงไหนอีกคงรบกวนถามน้าจีเพิ่มเติมอีกนะครับ...
หลังจากหาข้อมูลอยู่นานก็เลยกะจะไปทางลัดเลยคือว่าเราสามารถใช้บอร์ด ET-Easy168 STAMP แทนบอร์ดหลักได้ไหมครับแล้วทำเฉพาะวงจรในส่วนของ MCP4922 และอุปกรณ์อีกนิดหน่อยแล้วก็เอามาต่อกับ ET-Easy168 STAMP น่าจะใช้ได้ไหมช่วยแนะนำหน่อยครับ...
http://www.ett.co.th/product2009/ET-...168_STAMP.html
http://www.futurlec.com/Pictures/ET-Easy_C300.jpg
ได้เลยครับน้าก็ก่อนที่ผมจะทำ PCB เองผมก็ทดลองจากบอร์ดนี่แหละแล้วค่อยต่อยอดเอาผมใช้ตัวนี้นะ
http://lh4.ggpht.com/_Yf5JCo_hjfM/Sj...0/P1210833.JPG
ยังไม่ต้องซื้อก็ได้น้าสนใจเล่นตัวนี้รึเปล่า
http://www.duinothumb.com/_/rsrc/124...=386&width=420
เล็กจิ๋วครับศึกษาข้อมูลเพิ่มเติมจากที่นี่ครับ
http://www.duinothumb.com/AVR-USB-Arduino-DuinoThumb-V2
ผมมีอยู่ตัวนึงครับถ้าอยากเล่นเดี๋ยวส่งไปให้ลองก่อนไม่ต้องเสียตังค์ซื้อเพราะอันนี้ผมได้มาฟรีไปตอบคำถามแล้วได้รางวัลจากท่านเป็นหนึ่งเจ้าของเจ้าตัวนี้มาครับ ส่งที่อยู่มานะครับถ้าอยากได้เดี๋ยวส่งให้ไปเนเลยผมยังไม่เคยใช้สักครั้งเลยเก็บไว้เฉยๆไร้ประโยชน์เอาไปศึกษาต่อน่าจะได้ประโยชน์กว่าครับ ใช้ arduino ide เหมือนกันกับที่ผมใช้ครับ ส่งที่อยู่มาที่ owen1der@hotmail.com นะครับ