@ พี่โระ ...รับทราบครับ
@ พี่วุฒิ ว่างๆเจอกันครับผม ปลายๆปีนี้น่าจะได้ไปขึ้นโบใหม่ที่กาหลงครับ เดี๋ยวผมแวะให้คุยด้วย ^^
กลัวโดน tf สวนอ่ะพี่ เลยต้องทำเพิ่ม ช่วงนี้คัน tf06 วิ่งมาทำงานใกล้ๆด้วยดิพี่ ^^
หลังจากที่น้ำหายดันกันแล้ว ปรับบูสใช้งานกันอยู่กี่ปอนด์ครับ
ของผมเหมือนเดิมคับน้าโระ30ปอนด์ อุ่นใจ.....
จัดโบ 04 เลยพี่ แล้วเอา 05 มาใช้ผมอยู่ใช้ก่อน 5555
บอร์ดใช้แบบนี้นะครับ
http://www.ayarafun.com/shop/arduino/freeduino-usb/
หนังสือครับ
เดี๋ยวจะลองเขียน air flow control by ACC ตามแนวคิดที่ให้มานะครับรอสักครู่
ลองดูนะครับคาดว่าจะแรง อิอิ
int accelsensor1=0;
int accelvalue1=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 accelsensor1-------------------------------
accelvalue1=analogRead(accelsensor1); //อ่านค่าแรงดันจากขาคันเร่ง
if((accelvalue1>=200)&&(accelvalue1<940)){
if((accelvalue1>=200)&&(accelvalue1<210)){accelvalue1=analogRead(accelsensor1);} //ช่วงเดินเบาสัญญาณที่ส่งให้ ECU 1V.
else if((accelvalue1>=210)&&(accelvalue1<220)){accelvalue1=analogRead(accelsensor1)+400;} //สัญญาณจากขาคันเร่งช่วงเริ่มมีการแตะขาเร่ง 1.03ถึง1.08V ให้ส่งสัญญาณไปที่ ECU เพิ่มจากค่าที่รับเข้ามา 1.96V =(1.03ถึง1.08)+1.96
else if((accelvalue1>=220)&&(accelvalue1<230)){accelvalue1=analogRead(accelsensor1)+405;} //สัญญาณจากขาคันเร่งช่วงเริ่มมีการแตะขาเร่ง 1.08ถึง1.13V ให้ส่งสัญญาณไปที่ ECU เพิ่มจากค่าที่รับเข้ามา 1.98V =(1.08ถึง1.13)+1.98
else if((accelvalue1>=230)&&(accelvalue1<240)){accelvalue1=analogRead(accelsensor1)+410;}
else if((accelvalue1>=240)&&(accelvalue1<250)){accelvalue1=analogRead(accelsensor1)+415;}
else if((accelvalue1>=250)&&(accelvalue1<260)){accelvalue1=analogRead(accelsensor1)+420;}
else if((accelvalue1>=260)&&(accelvalue1<270)){accelvalue1=analogRead(accelsensor1)+425;}
else if((accelvalue1>=270)&&(accelvalue1<280)){accelvalue1=analogRead(accelsensor1)+430;}
else if((accelvalue1>=280)&&(accelvalue1<290)){accelvalue1=analogRead(accelsensor1)+435;}
else if((accelvalue1>=290)&&(accelvalue1<300)){accelvalue1=analogRead(accelsensor1)+440;}
else if((accelvalue1>=300)&&(accelvalue1<310)){accelvalue1=analogRead(accelsensor1)+445;}
else if((accelvalue1>=310)&&(accelvalue1<320)){accelvalue1=analogRead(accelsensor1)+450;}
else if((accelvalue1>=320)&&(accelvalue1<330)){accelvalue1=analogRead(accelsensor1)+455;}
else if((accelvalue1>=330)&&(accelvalue1<340)){accelvalue1=analogRead(accelsensor1)+460;}
else if((accelvalue1>=340)&&(accelvalue1<350)){accelvalue1=analogRead(accelsensor1)+465;}
else if((accelvalue1>=350)&&(accelvalue1<360)){accelvalue1=analogRead(accelsensor1)+470;}
else if((accelvalue1>=360)&&(accelvalue1<370)){accelvalue1=analogRead(accelsensor1)+475;}
else if((accelvalue1>=370)&&(accelvalue1<380)){accelvalue1=analogRead(accelsensor1)+480;}
else if((accelvalue1>=380)&&(accelvalue1<390)){accelvalue1=analogRead(accelsensor1)+485;}
else if((accelvalue1>=390)&&(accelvalue1<400)){accelvalue1=analogRead(accelsensor1)+490;}
else if((accelvalue1>=400)&&(accelvalue1<410)){accelvalue1=analogRead(accelsensor1)+495;} //สัญญาณจากขาคันเร่งช่วงสัญญาณขาเร่ง 1.96ถึง2.01V ให้ส่งสัญญาณไปที่ ECU เพิ่มจากค่าที่รับเข้ามา 2.43V =(1.96 ถึง 2.01)+2.43V
else if(accelvalue1>=410){accelvalue1=920;} //เมื่อสัญญาณจากขาคันเร่งแรงดันมากกว่า 2.01V ให้ส่งสัญญาณไปที่ ECU 4.508V ถ้ามากไปก็ลดเอานะครับ จากโปรแกรมจะกำหนดค่าสูงสุดไว้ที่ 920 ซึ่งจะเท่ากับแรงดันประมาณ 4.508V ค่า 1=0.004887V
}
else
{ accelvalue1=analogRead(accelsensor1);}
accelvalue1=constrain(accelvalue1,200,1023);
accelvalue1=map(accelvalue1,0,1023,0,4095); //map parameter 'accelvalue1' from 1-1023 to 0-4095 (for DAC)
Write_MCP4922(0,accelvalue1); //write accelvalue1 to DAC-A
}
ตัวเลขปรับแต่งตามความต้องการเอานะครับน้าโร๊ะ
ในขณะนี้มี 1 ท่านดูกระทู้อยู่. (0 สมาชิกและ 1 ผู้เยี่ยมชม)
Bookmarks