-
1 ไฟล์แนบ
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อะได้ละครับ
แล้วค่อยมาถามกันอีกที
***********
///// CODE //////
////////// Triton Club Only Derrrrr hi hi hi hi i
#define solenoid PORTB.F0 // solenoid control กำหนด portb ขา B1 คุม Solenoid
int map_pressure,pedal_volteg1,pedal_volteg2;///ประกาศค่าตัวแปรเก็บข้อมูล
void solenoid_on() //TRICK Solenoid ขั้นตอนการตัดต่อ การทำงานของ Solenoid
{
solenoid=1; //on
delay_ms(250);// หน่วง 250 ไมโครวินาที
solenoid=0; //off
}
void main()
{
TRISA=0XFF;// กำหนด porta ทั้งหมดเป็น ช่อง รับสัญญาน
TRISB=0x00;/// กำหนด portb ทั้งหมดเป็น ช่อง ส่งสัญญาน
PORTB=0X00;/ กำหนด portb ทั้งหมดเป็น 0 ก่อนไม่ทำงานทันทีที่เริ่มต้น
while(1)//วนทำงานตามเนื้อหาข้างล่างเมื่อวงจรมีการเปิดใช้งาน
{
pedal_volteg1=Adc_read(0);// analog input AN0 เช็คแรงดันคันเร่งเก็บใว้( ค่าที่ 1 )
delay_ms(200);//หน่วง 200 ไมโครวินาที
map_pressure=Adc_read(1);// analog input AN1 เช็คแรงดันอากาศเก็บใว้( อีกค่าที่ 1 )
pedal_volteg2=Adc_read(0);//เช็คแรงดันคันเร่งเก็บใว้( ค่าที่ 2 )
{
if(pedal_volteg2650){solenoid_on();}//เปรียบเทียบว่าถ้าคันเร่งถูดถอนแรงดันค่าที่ 2
//// จะน้อยกว่า ค่าที่ 1และถ้าในขณะเดียวกันแรงดัน Turbo สูงเท่านี้ จะเปิด Blow ทิ้ง
else {solenoid=0;}//ถ้าเงื่อนใขไม่เป็นตามนั้น ปิด Solenoid ไว้
}
}
}
**********
ต่อไปก็ Arduino ละก๊าบบบบบ
น้า pok
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
ขอบคุณมากๆเลยครับน้ายง ผมกำลังนั่งปรับโค๊ด ครับอาจต้องใช้เพลานิดนึง ต้องทำงานด้วยอ่ะครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
ล่าสุดลองบอร์ด ที่ทำ กับ 116 Cap
245-40-17 ออกเอี๊ยด ๆๆๆๆๆๆๆๆ ลาก 195 สุด
วันนี่ ครบ 17 วันพอดี สายพาน ทามมิ่ง ขาดซะ อิอิอิอิอิ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
ผมจะทำโบว์อ๊อฟ ดีเซลครับ
อุปกรณ์ที่ต้องใช้ โบว์อ๊อฟวาวล์ ,โซลินิอยล์(วาวล์ลม),คอลโทรนเลอร์ที่เราจัดทำขึ้น
คอนเซ็บ ง่ายๆสำหรับน้ายงหรือน้าที่เทพๆครับ แต่สำหรับผมยังยากอยู่ครับ
รับสัญญาณจากคันเร่ง ถ้าอ่านค่าใด้ 0V ไม่ต้องทำอะไร ถ้าอ่านค่าใด้ 1V ก็ยังไม่ต้องทำอะไร แต่ถ้าไป 1V แล้วกลับมาที่ 0V ให้จ่ายสัญญาณออกมาสั่งโซลินอย์เปิดลมเพื่อดูดโบว์อ๊อฟ จะเปิดนานแค่ไหน ก็ให้เปรียบเวลา จาก1Vกลับมา0V
ชาวดีเซลจะใด้มีเสียงก่ะเขาบ้าง เห็นขายกันอยู่4900 up เห็นว่าง่ายๆเลยลองคิดเลยใด้โปรเจ็กออกมาอย่างนี้ครับ
ผมไม่แน่ใจว่า มันจะ ฟ่าววววว!!!! ให้หรือเปล่าครับ เนื่องจากว่า เครื่อง Triton ดีเซล ปีกผีเสื้อ มันไม่ได้ปิดเวลาที่เรา ถอนคันเร่ง
เหมือนเครื่อง คันเร่งสาย ที่ปีกผีเสื้อจะปิดทางลมแล้วดันออก โบวออฟ แรง ๆ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
Yanyong
ผมไม่แน่ใจว่า มันจะ ฟ่าววววว!!!! ให้หรือเปล่าครับ เนื่องจากว่า เครื่อง Triton ดีเซล ปีกผีเสื้อ มันไม่ได้ปิดเวลาที่เรา ถอนคันเร่ง
เหมือนเครื่อง คันเร่งสาย ที่ปีกผีเสื้อจะปิดทางลมแล้วดันออก โบวออฟ แรง ๆ
ผมจะเอาสัญญาณที่เปิดโซลินอยล์โบว์อ๊อฟไปคอลโทรลลิ้นปีกผีเสื้อที่เดิมทีจะปิดตอนดับเครื่องครับ ปิดลิ้นเปิดโบว์ ปิดโบว์เปิดลิ้นใว้เช่นเดิมครับ จาร์ยยง มันจะเป็นไปใด้ไหมครับจาร์ย
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
ผมจะเอาสัญญาณที่เปิดโซลินอยล์โบว์อ๊อฟไปคอลโทรลลิ้นปีกผีเสื้อที่เดิมทีจะปิดตอนดับเครื่องครับ ปิดลิ้นเปิดโบว์ ปิดโบว์เปิดลิ้นใว้เช่นเดิมครับ จาร์ยยง มันจะเป็นไปใด้ไหมครับจาร์ย
ต้องอย่างงั้นครับถึงจะ ฟ้าวววววว ! ....แต่....
- เมื่อตอนจังหวะปิด ปีกผีเสื้อ ต้องปิดให้เร็ว และไม่ปิดสนิท ( ไม่งั้น ร่วงกลางอากาศครับผม )
- ช่วงของการเปิด ปิด สัญญาน จาก mcu ต้องทดลองว่า เท่าไหร่ ปีกจึงจะปิดไม่หมด
- หรือ ถ้างั้นก็ต้อง ปรับ สกรู ตั้งระยะให้จังหวะปิดปีก ยังไง ก็ไม่สนิท แต่เวลาดับเครื่อง จะสั่น
ราว ๆ นี้ ยุ่งหน่อย ต้องวางแผนดี ๆ ครับผม เอาใจช่วยครับ
//////////////////
ถาม น้า จี หรือ น้า ๆ ที่ ชิมรางครับว่า
ใช้ ขนาด เส้นผ่านศูนย์กลาง นอก - ใน - หนา = เท่าไหร่ครับ
จะได้ไม่ต้องถอด บ่อย ๆ ครับ
ตอนนี้ผมลอง จูน ดันรางหนัก ๆ แล้ว มัน รั่ว(ไฟโชว์ Large Leak ครับ )
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
น้ายงดันท้ายรางหรือยังครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
น้ายงดันท้ายรางหรือยังครับ
ต้องทำซะหน่อยครับ เอาแค่พอรู้ อิอิิอิ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
Yanyong
ต้องทำซะหน่อยครับ เอาแค่พอรู้ อิอิิอิ
รองท้ายรางสัก3-4 mm ครับ ถ้าไม่รองเครื่องอาจดับไฟโชว์ครับน้า +โปรแกรมน้าวิ่งกระฉูดแน่เลยครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อืม น้ายง obd ผมเช็คตัว2500 ตัวแรกไม่ใด้ครับ รู้สึกจะเวอร์ชั่นกล่อง เวอร์3 มั้ง ไม่รู้ว่าป็นกันหรือเปล่าครับ แต่อีกคันรุุ่นเหมือนกันแต่เวอร์7เช็คใด้ครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
อืม น้ายง obd ผมเช็คตัว2500 ตัวแรกไม่ใด้ครับ รู้สึกจะเวอร์ชั่นกล่อง เวอร์3 มั้ง ไม่รู้ว่าป็นกันหรือเปล่าครับ แต่อีกคันรุุ่นเหมือนกันแต่เวอร์7เช็คใด้ครับ
ครับต้อง Up เป็น V5 หรือ V7 ราวนั้นครับ
ผมก็เช็ค รุ่น ปี 2005 V3 ไม่ได้เหมือนกันครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
Yanyong
ครับต้อง Up เป็น V5 หรือ V7 ราวนั้นครับ
ผมก็เช็ค รุ่น ปี 2005 V3 ไม่ได้เหมือนกันครับ
ว่าแล้วเชียว
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
น้ายงค์ เอาสัญญาณขาคันเร่งมาใช้เป็นเงื่อนไขแค่อันเดียวก็ได้ครับเลือกเอาว่าจะเอาหลักหรือรองกำหนดช่วงของมันเอาว่าจะให้ต่ำกว่ากี่ volt ให้เปิดโดยเอาเงื่อนไขแรงดันขาคันเร่งและแรงดันจากแมพแบบที่น้าทำนั่นหละครับ โดยกำหนดเอาว่าถ้าแรงดันขาคันเร่งน้อยกว่า .......V และ แรงดัน MAP มากกว่า .....V ให้ทำการเปิด solenoid ส่วนเรื่องควบคุมปีกผีเสื้อไม่ต้องทำก็ได้ครับเอาเสียงดุก่อนเพราะในเครื่องเราปีกมันเปิดตลอดอาการ surge กลับมาที่ใบ turbo คงไม่รุนแรงมากครับเนื่องจากเรายกคันเร่งลูกสูบก็ยังชักขึ้นลงดูดลมเข้าไปได้อยู่ ถ้าจะทำคงต้องทำเพื่อความดุอย่างเดียวหละครับ
ส่วนเรื่องชิมท้ายรางร้านที่เขาทำกันประมาณ4.5 mm รับสำหรับความหนา
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
ครับน้าจี ผมกำลังเรียบเรียงเป็นดุยโน่ครับ พอดีเพิ่งใด้บรอดมาครับ ยังต้องเรียนรู้จากน้าอีกเยอะครับ
น้าจีน้ายงช่วยดูหน่อยครับว่าถูกต้องไหมครับ ผมยังเขียนแบบเปรียบเทียบเงื่อนไขไม่เป็นเลยขอลองแบบดิบนี้ดูก่อน เอ่อผมยังไม่ใด้ให้ตรอบสอบสัญญาณmapครับ เพราะผมยังไม่เข้าใจการเปรียบเทียบแรงดันไฟครับ
int pedell=11;//กำหนดตัวแปร pedell=pinที่11
int solinoil=12;//กำหนดตัวแปร solinoil=pinที่12
void setup()
{
pinMode(pedell,INPUT);//กำหนดพินpedell ให้เป็นขาเข้า
pinMode(solinoil,OUTPUT);//กำหนดพินsolinoil ให้เป็นขาออก
}
void loop()
{
if (pedell==0)//เงื่อนไข ถ้าpedell เท่ากับ 0
{
digitalWrite(solinoil,LOW); //ให้solinoil ไม่มีไฟออก
}
if(in==1) //เงื่อนไข ถ้าpedell เท่ากับ 1
{
digitalWrite(solinoil,HIGH);//ให้solinoil มีไฟออก
delay(5000);//หน่วงเวลา
}
}
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
ครับน้าจี ผมกำลังเรียบเรียงเป็นดุยโน่ครับ พอดีเพิ่งใด้บรอดมาครับ ยังต้องเรียนรู้จากน้าอีกเยอะครับ
น้าจีน้ายงช่วยดูหน่อยครับว่าถูกต้องไหมครับ ผมยังเขียนแบบเปรียบเทียบเงื่อนไขไม่เป็นเลยขอลองแบบดิบนี้ดูก่อน เอ่อผมยังไม่ใด้ให้ตรอบสอบสัญญาณmapครับ เพราะผมยังไม่เข้าใจการเปรียบเทียบแรงดันไฟครับ
int pedell=11;//กำหนดตัวแปร pedell=pinที่11
int solinoil=12;//กำหนดตัวแปร solinoil=pinที่12
void setup()
{
pinMode(pedell,INPUT);//กำหนดพินpedell ให้เป็นขาเข้า
pinMode(solinoil,OUTPUT);//กำหนดพินsolinoil ให้เป็นขาออก
}
void loop()
{
if (pedell==0)//เงื่อนไข ถ้าpedell เท่ากับ 0
{
digitalWrite(solinoil,LOW); //ให้solinoil ไม่มีไฟออก
}
if(in==1) //เงื่อนไข ถ้าpedell เท่ากับ 1
{
digitalWrite(solinoil,HIGH);//ให้solinoil มีไฟออก
delay(5000);//หน่วงเวลา
}
}
แบบนี้คงไม่ได้ครับน้าเพราะสัญญาณจากขาคันเร่งมันเป็นสัญญาณ analog ครับถ้าน้าเลือกขาหลักมันจะมีไฟประมาณ 1-5V โดยประมาณ แล้วตอนนี้น้าเขียนให้มันรับ digital input จากขอคันเร่งเกรงว่าค่า 1-5V มันจะแปลว่าเป็น logic high คือ 1 ตลอดอะครับ น้าลองเขียนให้รับสัญญาณ analog จากขาคันเร่งครับแล้วใส่ band ให้มันว่าถ้าแรงดันกี่ volt ถึงกี่ volt ให้เปิดหรือ กี่ volt ถึงกี่ volt ให้ปิดเมื่อได้ตามเงื่อนไขแล้วก็ค่อย สั่ง digitalWrite solenoil เอาครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
jee4x4
แบบนี้คงไม่ได้ครับน้าเพราะสัญญาณจากขาคันเร่งมันเป็นสัญญาณ analog ครับถ้าน้าเลือกขาหลักมันจะมีไฟประมาณ 1-5V โดยประมาณ แล้วตอนนี้น้าเขียนให้มันรับ digital input จากขอคันเร่งเกรงว่าค่า 1-5V มันจะแปลว่าเป็น logic high คือ 1 ตลอดอะครับ น้าลองเขียนให้รับสัญญาณ analog จากขาคันเร่งครับแล้วใส่ band ให้มันว่าถ้าแรงดันกี่ volt ถึงกี่ volt ให้เปิดหรือ กี่ volt ถึงกี่ volt ให้ปิดเมื่อได้ตามเงื่อนไขแล้วก็ค่อย สั่ง digitalWrite solenoil เอาครับ
อ่อ่อ่ครับ น้าจี ขอบคุณมากครับสำหรับคำแนะนำ เด๊วผมจะทำไหม่ครับน้า
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
ผมลองแก้ไหม่ครับแบบนี้พอจะใด้ไหมครับ น้ายงน้าจีและน้าเทพๆ
int pedell=11;//กำหนดตัวแปร pedell=pinที่11
int solinoil=12;//กำหนดตัวแปร solinoil=pinที่12
int val=0;//กำหนดให้ตัวแปร val เป็นแบบ int เพื่อเก็บค่า analog input
void setup()
{
pinMode(pedell,INPUT);//กำหนดพิน pedell ให้เป็นขาเข้า
pinMode(solinoil,OUTPUT);//กำหนดพิน solinoil ให้เป็นขาออก
}
void loop()
{
val=analogRead(pedell);//อ่านค่า analog จาก pedell
if (pedell>=0.00097);//เงื่อนไข ถ้าpedell มากกว่า 1v 1/1024 = 0.00097
{
digitalWrite(solinoil,LOW); //ให้solinoil ไม่มีไฟออก
}
if(pedell==0.00097);//เงื่อนไข ถ้าpedell เท่ากับ 1เท่ากับ 1V
{
digitalWrite(solinoil,HIGH);//ให้solinoil มีไฟออก
delay(5000);//หน่วงเวลา
}
}
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
ผมลองแก้ไหม่ครับแบบนี้พอจะใด้ไหมครับ น้ายงน้าจีและน้าเทพๆ
int pedell=11;//กำหนดตัวแปร pedell=pinที่11
int solinoil=12;//กำหนดตัวแปร solinoil=pinที่12
int val=0;//กำหนดให้ตัวแปร val เป็นแบบ int เพื่อเก็บค่า analog input
void setup()
{
pinMode(pedell,INPUT);//กำหนดพิน pedell ให้เป็นขาเข้า ถ้ารับสัญญาณเป็น analog เท่าที่จำได้ไม่ต้องประกาศก็ได้ครับตัวนี้ เดี๋ยวดูให้อีกทีครับ
pinMode(solinoil,OUTPUT);//กำหนดพิน solinoil ให้เป็นขาออก
}
void loop()
{
val=analogRead(pedell);//อ่านค่า analog จาก pedell
if (pedell>205);//เงื่อนไข ถ้าpedell มากกว่า 1v (1/5)*1024 = 205
{
digitalWrite(solinoil,LOW); //ให้solinoil ไม่มีไฟออก
}
if(pedell==205);//เงื่อนไข ถ้าpedell เท่ากับ 1เท่ากับ 1V
{
digitalWrite(solinoil,HIGH);//ให้solinoil มีไฟออก
delay(5000);//หน่วงเวลา
}
}
ผมแก้บางอย่างให้ครับเนื่องจากตัวเลขที่น้าใส่ arduino มันอาจไม่เข้าใจครับ ตอนนี้มันจะเป็นการสั่งเปิดตอนยกคันเร่ง ลองเล่นดูครับจะ ฟิ้วๆๆๆๆ ได้ใจมั้ย อิอิ อีกตัวครับสำหรับการหน่วงเวลามันอาจมากมากหรือน้อยไปก็ขึ้นอยู่กับตอนใช้งานหละครับทดลองใช้จริงแล้วค่อยปรับตัวเลขจูนให้ได้ตามความเหมาะสม หรือน้าจะเขียนเงื่อนไขเหมือนน้ายงดูก็ได้นะครับ เอาแรงดัน MAP มาใช้ด้วยแล้วก็ให้เก็บค่าแรงดันจากขาคันเร่ง แรงดัน1 และแรงดัน 2 จากจุดวัดเดียวกันมันจะทำให้รู้ว่ากำลังกดหรือยกคันเร่ง
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
jee4x4
ผมแก้บางอย่างให้ครับเนื่องจากตัวเลขที่น้าใส่ arduino มันอาจไม่เข้าใจครับ ตอนนี้มันจะเป็นการสั่งเปิดตอนยกคันเร่ง ลองเล่นดูครับจะ ฟิ้วๆๆๆๆ ได้ใจมั้ย อิอิ อีกตัวครับสำหรับการหน่วงเวลามันอาจมากมากหรือน้อยไปก็ขึ้นอยู่กับตอนใช้งานหละครับทดลองใช้จริงแล้วค่อยปรับตัวเลขจูนให้ได้ตามความเหมาะสม
ขอบคุณมากครับน้าจี ผมให้โซลอนอยล์เปิดเลยตอนไม่เหยียบคันเร่งครับ เพราะโบว์ออฟใช้ลมดูดจากตูดได(ความเข้าใจเก่าๆ) ในรอบเดินเบาลมดูดอาจจะน้อยครับไม่พอดูดโบว์อ๊อฟแน่เลย แต่ถ้าเป็นรอบสูงแรงดูดเยอะคงพอดูดโบว์อ๊อฟครับ เด๊วผมเทสในโปรตุสก่อนครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
น้าจี ผมaddไฟล์ลงในโปรตุสใส่ชิปไม่ใด้ครับ แต่ยัดลงบรอดใด้ ผมไม่แน่ใจว่าต้องทำHEXเพื่อใส่ในโปรตุสด้วยหรือเปล่า คือว่าผมอยากลองในโปรตุสก่อนลากสายบนบรอดครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
น้าจี ผมaddไฟล์ลงในโปรตุสใส่ชิปไม่ใด้ครับ แต่ยัดลงบรอดใด้ ผมไม่แน่ใจว่าต้องทำHEXเพื่อใส่ในโปรตุสด้วยหรือเปล่า คือว่าผมอยากลองในโปรตุสก่อนลากสายบนบรอดครับ
5555+ ผมแสดงสดหมดเลยครับน้า ไม่ได้เล่น simulator เลยครับ น้าทำบน photo broad ก่อนก็ได้ครับสัญญาณขาคันเร่งก็ใช้ VR ปรับจากแหล่งจ่ายไฟ 5V เอาครับต่อแบบ voltage divider ก็ได้ส่วน output ก็ใช้ LED ก็ได้ครับแต่ใส่ R ลดกระแสหน่อยนึงลกสายไม่มากครับลองดูทดลองจริงเลยครับบางที sim ได้แต่ใช้งานจริงไม่ได้หรือบางครั้ง sim ไม่ได้แต่ใช้งานจริงได้ก็มีครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
jee4x4
5555+ ผมแสดงสดหมดเลยครับน้า ไม่ได้เล่น simulator เลยครับ น้าทำบน photo broad ก่อนก็ได้ครับสัญญาณขาคันเร่งก็ใช้ VR ปรับจากแหล่งจ่ายไฟ 5V เอาครับต่อแบบ voltage divider ก็ได้ส่วน output ก็ใช้ LED ก็ได้ครับแต่ใส่ R ลดกระแสหน่อยนึงลกสายไม่มากครับลองดูทดลองจริงเลยครับบางที sim ได้แต่ใช้งานจริงไม่ได้หรือบางครั้ง sim ไม่ได้แต่ใช้งานจริงได้ก็มีครับ
ครับเด๊วผมลองดูครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
น้าจีผมลองแล้วไฟมันติดตลอดเลยครับ ผมต้องกำหนดสถานะเริ่มต้นให้ดับก่อนหรือเปล่าครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
น้าจีผมลองแล้วไฟมันติดตลอดเลยครับ ผมต้องกำหนดสถานะเริ่มต้นให้ดับก่อนหรือเปล่าครับ
เดี๋ยวผมต้องกลับบ้านไปดูตำราก่อนครับว่าขาที่น้าตั้งให้รับสัญญาณ analog มันใช่รึเปล่าครับจำไม่ค่อยได้ล้างลามาแรมปีแล้วครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
jee4x4
เดี๋ยวผมต้องกลับบ้านไปดูตำราก่อนครับว่าขาที่น้าตั้งให้รับสัญญาณ analog มันใช่รึเปล่าครับจำไม่ค่อยได้ล้างลามาแรมปีแล้วครับ
ครับน้า
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
น้าจีผมลองแล้วไฟมันติดตลอดเลยครับ ผมต้องกำหนดสถานะเริ่มต้นให้ดับก่อนหรือเปล่าครับ
โอ้ ไม่เข้า 2 วันไปใกลละ
ครับ
เริ่มต้น น้าต้อง สั่งทุกอย่างเป็น Off หมดก่อน
และถ้าเงื่อนไข ไม่เป็นจริง ก็สั่ง Off ใว้ด้วยครับ
ไม่อย่างงั้น มันจะ On ตลอดเพราะไม่มีคำสั่ง ทำงานตอนเงื่อนใขเป็นเท็จ
และค่าคันเร่งก็น่าจะมีการตรวจสอบอยู่ตลอดเวลาและเช็คค่าความแตกต่าง
เพราะว่าช่วงที่เราถอนคันเร่ง ไฟ ไม่ถอยไปที่ 1.0 V ทันที มันจะ Delay ซึ่งขบวนการช่วงนั้น
ลมน้าจะหมดก่อนที่จะ เฟี๊ยว ครับผม
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
ครับน้า เด๋วลองดูครับ ไปไหนมาครับไปเที่ยวมาหรือครับ เผื่อผมด้วยนะครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
Yanyong
โอ้ ไม่เข้า 2 วันไปใกลละ
ครับ
เริ่มต้น น้าต้อง สั่งทุกอย่างเป็น Off หมดก่อน
และถ้าเงื่อนไข ไม่เป็นจริง ก็สั่ง Off ใว้ด้วยครับ
ไม่อย่างงั้น มันจะ On ตลอดเพราะไม่มีคำสั่ง ทำงานตอนเงื่อนใขเป็นเท็จ
และค่าคันเร่งก็น่าจะมีการตรวจสอบอยู่ตลอดเวลาและเช็คค่าความแตกต่าง
เพราะว่าช่วงที่เราถอนคันเร่ง ไฟ ไม่ถอยไปที่ 1.0 V ทันที มันจะ Delay ซึ่งขบวนการช่วงนั้น
ลมน้าจะหมดก่อนที่จะ เฟี๊ยว ครับผม
สำคัญตรงที่ผมยังไม่ค่อยเข้าใจคำสั่งมันเท่าไรครับ ไปไปมามา ผมว่าผมอาจจะถนัดpicมากกว่านะครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
ลองไปต่อวงจรลองให้หน่อยครับน้าของผมบอร์ดเกลือขึ้นเจ๊งไปแล้วครับ ผมเอา boost sensor เข้ามาเป็นเงือนงำ เอ้ย เงื่อนไขในการเปิดด้วยครับหลักการคล้ายน้ายงครับ
int padalsensor=0; // the number of the analog pin for recrive signal from padalsensor(analog pin 0)
int boostsensor=1; // the number of the analog pin for recrive signal from boostsensor(analog pin 1)
int solenoildPin = 13; // the number of the solenoildPin pin
int padalvalue=0;
int padalvalue1=0;
int boostvalue=0;
//-----------------------------------------Setup_Function---------------------------
void setup()
{
pinMode(solenoildPin, OUTPUT); // initialize the solenoild pin as an output:
}
//--------------------------------------------loop_function---------------------------
void loop()
{
//----------------------------------------------read sensor-------------------------------
boostvalue=analogRead(boostsensor);
padalvalue=analogRead(padalsensor); //อ่านค่าจาก sensor ขาคันเร่ง มาเก็บที่ padalvalue
delay(1000); // wait 1 sec.
padalvalue1=analogRead(padalsensor); //อ่านค่าจาก sensor ขาคันเร่ง มาเก็บที่ padalvalue1
if(padalvalue1>=padalvalue) //ถ้าสัญญาณจากคันเรงค่าที่สองมากกว่าสัญญาณขาคันเร่งค่าที่1ซึ่งหมายถึงช่วงที่เรากดคันเร่ง ให้สั่งปิด solenoild
{digitalWrite(solenoildPin,LOW);}
else if(padalvalue1625))
{digitalWrite(solenoildPin,HIGH); //ถ้าสัญญาณจากคันเรงค่าที่สองมากกว่าสัญญาณขาคันเร่งค่าที่1และสัญญาณจาก boost sensor มากกว่า 3V หรือประมาณ 15 psi ให้สั่งเปิด solenoild ประมาณ 1 sec
delay(1000);}
}
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
ดูแล้วก็จากไปแบบเงียบๆ ระดับเทพเขาคุยกัน
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
fresh-sky
ดูแล้วก็จากไปแบบเงียบๆ ระดับเทพเขาคุยกัน
เคยเล่นนานละครับ ไม่ใช่เทพที่ไหนหรอก อิอิ ตอนนี้ของเล่นพังหมดแล้วพอดีน้า Pok เขาอยากทำเลยลองเขียนโปรแกรมมาให้ลองครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
fresh-sky
ดูแล้วก็จากไปแบบเงียบๆ ระดับเทพเขาคุยกัน
ถ้าน้าอยากศึกษาก็เดินไปพร้อมๆกันเลยครับ
อ้างอิง:
โพสต้นฉบับโดยคุณ
jee4x4
เคยเล่นนานละครับ ไม่ใช่เทพที่ไหนหรอก อิอิ ตอนนี้ของเล่นพังหมดแล้วพอดีน้า Pok เขาอยากทำเลยลองเขียนโปรแกรมมาให้ลองครับ
ครับน้าจี เด๋วผมอัดลงบรอดแล้วลากสายครับ เพิ่มกลับมาครับฝนตกอย่างแรงเลยครับ ช่วงนี้ฝนเยอะ น้าๆรักษาสุขภาพกันด้วยนะครับคืบหน้ายังไงเด๊วแจ้งผลครับ
น้ายง หายไปเลยครับ อย่าไปไหนนะครับ ผมยังมีอีกหลายโปรเจ็กครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
ถ้าน้าอยากศึกษาก็เดินไปพร้อมๆกันเลยครับ
ครับน้าจี เด๋วผมอัดลงบรอดแล้วลากสายครับ เพิ่มกลับมาครับฝนตกอย่างแรงเลยครับ ช่วงนี้ฝนเยอะ น้าๆรักษาสุขภาพกันด้วยนะครับคืบหน้ายังไงเด๊วแจ้งผลครับ
น้ายง หายไปเลยครับ อย่าไปไหนนะครับ ผมยังมีอีกหลายโปรเจ็กครับ
โปรแกรมผมเขียนโดนเอาสัญญาณ MAP มาเป็นเงื่อนไขด้วยนะครับคือถ้าเป็นช่วงยกคันเร่งแล้วแรงดันของ MAP ยังสูงก็สั่ง solenoild เปิด 1 วิครับตัวเลข delay หรือค่าMAP ที่เอามาเป็นเงื่อนไขสามารถปรับแก้ได้ตามการใช้งานนะครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
jee4x4
โปรแกรมผมเขียนโดนเอาสัญญาณ MAP มาเป็นเงื่อนไขด้วยนะครับคือถ้าเป็นช่วงยกคันเร่งแล้วแรงดันของ MAP ยังสูงก็สั่ง solenoild เปิด 1 วิครับตัวเลข delay หรือค่าMAP ที่เอามาเป็นเงื่อนไขสามารถปรับแก้ได้ตามการใช้งานนะครับ
น้าจี ผมอัดลงบรอดแล้ว พินโซลินอย์ พินที่13 มันมีไฟติดค้างตลอดเลยครับ ผมลองเพิ่มโค๊ดตรงsetup ให้มันLOW ก้อยังไม่ยอมดับครับ
ส่วนค่าMAPผมว่ามันสูงไปครับ อาจต้องลดลงครับไม่งั้นเบิ้ลเปล่าไม่เปิดแน่เลยครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
น้าจี ผมอัดลงบรอดแล้ว พินโซลินอย์ พินที่13 มันมีไฟติดค้างตลอดเลยครับ ผมลองเพิ่มโค๊ดตรงsetup ให้มันLOW ก้อยังไม่ยอมดับครับ
ส่วนค่าMAPผมว่ามันสูงไปครับ อาจต้องลดลงครับไม่งั้นเบิ้ลเปล่าไม่เปิดแน่เลยครับ
ลองเอา code ในส่วนของ MAP ออกก็ได้ครับผมไปดูที่เขาทำขาย มันใช้แค่สัญญาณคันเร่งอย่างเดียว
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
jee4x4
ลองเอา code ในส่วนของ map ออกก็ได้ครับผมไปดูที่เขาทำขาย มันใช้แค่สัญญาณคันเร่งอย่างเดียว
ใช่ครับน้าจี เด๊วผมลองเอาส่วนmapออกก่อน แต่วันนี้สงสัยไม่ใด้ทำแน่ครับ
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
น้าจี ผมอัดลงบรอดแล้ว พินโซลินอย์ พินที่13 มันมีไฟติดค้างตลอดเลยครับ ผมลองเพิ่มโค๊ดตรงsetup ให้มันLOW ก้อยังไม่ยอมดับครับ
ส่วนค่าMAPผมว่ามันสูงไปครับ อาจต้องลดลงครับไม่งั้นเบิ้ลเปล่าไม่เปิดแน่เลยครับ
ลองตั้งค่า เงื่อนใขการเริ่ม
- ตรวจสอบคันเร่ง ที่1
- หน่วงเวลา 200 ms
- ตรวจสอบคันเร่ง ที่2
- ถ้าคันเร่งที่ 2 น้อยกว่าคันเร่งที่ 1 อยู่ 0.5 V { ทำงาน }
เอาไปทั้งยวงเลยครับ
นี่ของที่ใช้อยู่จริง ๆ เลยครับ
น้า เป็น Mikro C ใช่ใหม ?
*** ล่างสุดผมเขียนเพื่อลด MAP ใช้งานกับ ระบบ LPG ลดค่าลงเพื่อให้น้ำมันลดการฉีด
ไม่งั้นไม่ได้ 14-15 โลลิตรแน่นอน
***ถ้าไม่กดคันเร่งเร็ว ๆ ภายใน 25*10 ms =250 ms
จะทำงานระบบลด Map ถ้ากด ตามเงื่อนไข จ่ายย้ำมันเต็มที่ เพราะ สั่ง จูน Map ขึ้นรอใว้แล้ว
** อ. ต้น ที่หาคน ทำให้อยู่ ไม่ได้ซักที ก็ เอาไปใช้ พลาง ๆ ได้ครับ รับรอง
เพราะลองแล้วครับ
//////////////// UPDATE 05-03-2012 ///////////// ///// /1/2012 ///////////////
//////////////// PIC18F4620 ///////////////
//////////////// UPDATE 08-03-2012 /////////////
/* LOAD TO TRITON */
//////////////// UPDATE 15-03-2012 /////////////
//////////////// UPDATE 18-03-2012 /////////////
//// ONLY UP RAIL AND MAP NOT TO UP PEDAL ////
#include
#define beep1 PORTC.F2 //BC548 BUZZER 5V
#define temp_relay PORTB.F1 // on off Air temp 1 &2
/* ********** CHANGE MODE SW PORTB.F0 ********** */
unsigned long int vout1,vout2,rail_in, map_in,
rail_ref,map_ref,pedal1,pedal2,pedal3,pedal_in,pedal;
char y=0,valible=0,i4=2,y1=0;
///**** Kick down control Rail & Map ****///
const char rail_conf = 0x10; //Channel A nonBuffered x2Gain
const char map_conf = 0x90; //Channel B nonBuffered x2Gain
const char SHDN = 0x00; //Channel A & B Output = High Impedance
void DAC_OUT(char config,int output)
{
PORTC.F0=0; // Enable Chip Select
SPI_Write(config+Hi(output));
SPI_Write(Lo(output));
PORTC.F0=1; // 'DAC output refreshed at this point
}
void beep()
{
beep1=1; delay_ms(2);beep1=0;
}
void beep2()
{
beep1=1; delay_ms(10);beep1=0;delay_ms(90);
}
void beep3()
{
beep1=1; delay_ms(150);beep1=0;delay_ms(150);
}
void rail_up()
{
// if(PORTB.F0==0){i4++; beep2();delay_ms(100);}// NORMAL ON 4.5V
// if(i4>4){i4=0;}
// if(i4==1){valible=0;}
// if(i4==2){valible=20;}
// if(i4==3){valible=40;}
// if(i4==4){valible=80;}
// if(i4==0){valible=0;beep2();i4++;}
{
if(rail_in<317){vout1=rail_ref-valible;}// < 1.55 V
else if((rail_in>=317)&&(rail_in<327)){vout1=rail_ref-(7+valible);}//1.55-1.613
else if((rail_in>=327)&&(rail_in<337)){vout1=rail_ref-(12+valible);}//1.613-1.657
else if((rail_in>=337)&&(rail_in<348)){vout1=rail_ref-(17+valible);}//1.657-1.687
else if((rail_in>=348)&&(rail_in<358)){vout1=rail_ref-(21+valible);}//1.687-1.75
else if((rail_in>=358)&&(rail_in<368)){vout1=rail_ref-(25+valible);}//1.75-1.8
else if((rail_in>=368)&&(rail_in<378)){vout1=rail_ref-(29+valible);}//1.8-1.89
else if((rail_in>=378)&&(rail_in<389)){vout1=rail_ref-(33+valible);}//1.89-1.995
else if((rail_in>=389)&&(rail_in<399)){vout1=rail_ref-(37+valible);}//1.995-2.029
else if((rail_in>=399)&&(rail_in<409)){vout1=rail_ref-(41+valible);}//2.029-2.102
else if((rail_in>=409)&&(rail_in<419)){vout1=rail_ref-(44+valible);}//2.102
else if((rail_in>=419)&&(rail_in<429)){vout1=rail_ref-(40+valible);}//2.102
else if((rail_in>=429)&&(rail_in<440)){vout1=rail_ref-(36+valible);}//2.102
else if((rail_in>=440)&&(rail_in<450)){vout1=rail_ref-(32+valible);}//2.102
else if((rail_in>=450)&&(rail_in<460)){vout1=rail_ref-(28+valible);}//2.102
else if((rail_in>=460)&&(rail_in<470)){vout1=rail_ref-(24+valible);}//2.102
else if((rail_in>=470)&&(rail_in<481)){vout1=rail_ref-(20+valible);}//2.102
else if((rail_in>=481)&&(rail_in<491)){vout1=rail_ref-(16+valible);}//2.102
else if((rail_in>=491)&&(rail_in<650)){vout1=rail_ref-(12+valible);}//2.102
else{vout1=rail_ref-(8+valible);}
}
}
void map_up()
{
if(map_in>245&&map_in<333){vout2=(map_ref+40);}
else if(map_in>=333&&map_in<419){vout2=(map_ref+50);}
else if(map_in>=419&&map_in<505){vout2=(map_ref+60);}
else if(map_in>=505&&map_in<591){vout2=(map_ref+90);}//569
else if(map_in>=591&&map_in<677){vout2=(map_ref+100);}//640
else if(map_in>=677&&map_in<777){vout2=(map_ref+110);}//711
else{vout2=map_ref;}
}
void input_sensor()
{
if(PORTB.F0==0){i4++; beep3();delay_ms(250);}// NORMAL ON 4.5V
if(i4>4){i4=0;}
if(i4==1){vout1=rail_ref;}
if(i4==2){valible=15;rail_up();}
if(i4==3){valible=40;rail_up();}
if(i4==4){valible=80;rail_up();}
if(i4==0){valible=0;beep3();i4++;}
rail_in=Adc_read(0);
rail_ref=rail_in*2;
map_in=Adc_read(1);
map_ref=map_in*2;
map_up();
}
void dac_output()
{
if(map_in>=777||vout2>1555){vout2=1555;}
DAC_OUT(rail_conf,vout1); // Output on channel A
DAC_OUT(map_conf,vout2); // Output on channel B
}
void counter_t()
{
y++;
if(y<25){pedal1=Adc_Read(2);}
if(y==25){pedal2=Adc_Read(2);}
if(y>25){y=0;}
delay_ms(10);
}
void main()
{
TRISA=0XFF;
TRISC=0X00;
TRISB=0X01;
PORTB=0x00;
PORTC=0x00;
TRISC.F0=0; // Chip select line set to output
Spi_Init(); // Initial Spi
PORTC.F0=1; // Disable Chip Select
DAC_OUT(SHDN,0);
beep3();beep2();beep3();
while(1)
{
counter_t();
{
if(pedal2>pedal1+40)
{
loop3: y1++;
input_sensor(); dac_output();
pedal3=Adc_Read(2);
temp_relay=1;
if(y1>10){beep2();y1=0;}
while(pedal3>=pedal2){goto loop3;} //**************************//
}
else {
input_sensor();
if(i4<=2){ vout2=map_ref-122;temp_relay=0;} //only for safe petrol
else{temp_relay=1;}
dac_output();
}
}
}
}
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
น้าจี น้ายงครับ โคลงงานไกล้ประสบผลสำเร็จแล้วครับ ติดอยู่นิดเดียวครับ ผมลองแก้โค๊ดเป็นร้อยรอบแล้วครับ คือว่าอย่างนี้ครับ
ตอนเบิ้ลวอลลุ่ม(คันเร่ง)มันโอเคครับ เบิ้ลแล้วปล่อย โบว์อ๊อฟเิปิดแล้วปิดตามเวลาที่ตั้งใว้ครับ แต่มีปัญหาตรงที่ เวลาเร่งวอลลุ่ม(คันเร่ง)ค้างใว้ มันเปิดปิด เปิดปิด ตามเวลาที่ตั้งใว้เลยครับและตลอดเวลาครับ จนกว่าจะถอนคันเร่งก็จะกลับมาปิดครับ งงงงมากครับ ลองแก้โค๊ดต่างๆแล้วครับ ผมงงตอนที่แช่คันเร่งใว้ แล้วโปรแกรมมันวนมาอ่าน มันจะอ่านนะเวลานั้นเป็นpedalแรกหรือเปล่าครับ
int padalsensor=0; // the number of the analog pin for recrive signal from padalsensor(analog pin 0)
int solenoildPin = 13; // the number of the solenoildPin pin
int padalvalue1=0;
int padalvalue2=0;
//-----------------------------------------Setup_Function---------------------------
void setup()
{
pinMode(solenoildPin, OUTPUT); // initialize the solenoild pin as an output:
}
//--------------------------------------------loop_function---------------------------
void loop()
{
//----------------------------------------------read sensor-------------------------------
padalvalue1=analogRead(padalsensor); //อ่านค่าจาก sensor ขาคันเร่ง มาเก็บที่ padalvalue1
delay(500); // wait 1 sec.
padalvalue2=analogRead(padalsensor); //อ่านค่าจาก sensor ขาคันเร่ง มาเก็บที่ padalvalue2
if(padalvalue2>=padalvalue1) //ถ้าสัญญาณจากคันเรงค่าที่สองมากกว่าสัญญาณขาคันเร่งค ่าที่1ซึ่งหมายถึงช่วงที่เรากดคันเร่ง ให้สั่งปิด solenoild
{digitalWrite(solenoildPin,LOW);}
if(padalvalue2
{digitalWrite(solenoildPin,HIGH); //ถ้าสัญญาณจากคันเรงค่าที่สองมากกว่าสัญญาณขาคันเร่งค ่าที่1และสัญญาณจาก boost sensor มากกว่า 3V หรือประมาณ 15 psi ให้สั่งเปิด solenoild ประมาณ 1 sec
delay(500);}
}
-
ตอบ: Mcu ไมโครคอนโทรเลอร์ ทำอะไร ๆ ก็ทำได้ ถ้าทำเป็น
อ้างอิง:
โพสต้นฉบับโดยคุณ
pokneed
น้าจี น้ายงครับ โคลงงานไกล้ประสบผลสำเร็จแล้วครับ ติดอยู่นิดเดียวครับ ผมลองแก้โค๊ดเป็นร้อยรอบแล้วครับ คือว่าอย่างนี้ครับ
ตอนเบิ้ลวอลลุ่ม(คันเร่ง)มันโอเคครับ เบิ้ลแล้วปล่อย โบว์อ๊อฟเิปิดแล้วปิดตามเวลาที่ตั้งใว้ครับ แต่มีปัญหาตรงที่ เวลาเร่งวอลลุ่ม(คันเร่ง)ค้างใว้ มันเปิดปิด เปิดปิด ตามเวลาที่ตั้งใว้เลยครับและตลอดเวลาครับ จนกว่าจะถอนคันเร่งก็จะกลับมาปิดครับ งงงงมากครับ ลองแก้โค๊ดต่างๆแล้วครับ ผมงงตอนที่แช่คันเร่งใว้ แล้วโปรแกรมมันวนมาอ่าน มันจะอ่านนะเวลานั้นเป็นpedalแรกหรือเปล่าครับ
int padalsensor=0;
// the number of the analog pin for recrive signal from padalsensor(analog pin 0)
int solenoildPin = 13;
// the number of the solenoildPin pin
int padalvalue1=0;
int padalvalue2=0;
//-----------------------------------------Setup_Function---------------------------
void setup()
{
pinMode(solenoildPin, OUTPUT);
// initialize the solenoild pin as an output:
}
//--------------------------------------------loop_function---------------------------
void loop()
{
//----------------------------------------------read sensor-------------------------------
padalvalue1=analogRead(padalsensor);
//อ่านค่าจาก sensor ขาคันเร่ง มาเก็บที่ padalvalue1
delay(500); // wait 1 sec.
padalvalue2=analogRead(padalsensor);
//อ่านค่าจาก sensor ขาคันเร่ง มาเก็บที่ padalvalue2
if(padalvalue2>=padalvalue1)
//ถ้าสัญญาณจากคันเรงค่าที่สองมากกว่าสัญญาณขาคันเร่งค ่าที่1ซึ่งหมายถึงช่วงที่เรากดคันเร่ง ให้สั่งปิด solenoild
{digitalWrite(solenoildPin,LOW);}
if(padalvalue2
{digitalWrite(solenoildPin,HIGH);
//ถ้าสัญญาณจากคันเรงค่าที่สองมากกว่าสัญญาณขาคันเร่งค ่าที่1และสัญญาณจาก boost sensor มากกว่า 3V หรือประมาณ 15 psi ให้สั่งเปิด solenoild ประมาณ 1 sec
delay(500);}
}
แบบนี้มันเป็นที่ความนิ่งของแรงดันอะครับถ้ามันมีสวิงแค่นิดเดียวมันก็จะ เปิด ปิด ตลอดเวลาแบบนี้หละครับ ถ้างั้นน้าลองให้มันดูว่าแรงดันค่า 1 กับค่า 2 ต่างกันเท่าไรถึงทำงาน แบบนั้นน่าจะแก้ได้ครับ