โพสต้นฉบับโดยคุณ
jee4x4
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 0.5 sec.
padalvalue2=analogRead(padalsensor); //อ่านค่าจาก sensor ขาคันเร่ง มาเก็บที่ padalvalue2
if(padalvalue2>=padalvalue1) //ถ้าสัญญาณจากคันเรงค่าที่สองมากกว่าสัญญาณขาคันเร่งค ่าที่1ซึ่งหมายถึงช่วงที่เรากดคันเร่ง ให้สั่งปิด solenoild
{digitalWrite(solenoildPin,LOW);}
if((padalvalue2+100)<padalvalue1)
{digitalWrite(solenoildPin,HIGH); //ถ้าสัญญาณจากคันเรงค่าที่สองบวก 0.5V น้อยกว่าสัญญาณขาคันเร่งค ่าที่1 ให้สั่งเปิด solenoild ประมาณ 0.5 sec
delay(500);}
}
ผมเพิ่มเงื่อนไขการสั่งเปิดมาให้อีกนิดครับเพื่อแก้ปัญหา on-off ตลอดเวลาโดยจะให้มันเปิดเมื่อค่ามันต่างกัน 0.5V โดยประมาณนะครับลองดูน่าจะช่วยได้ เวลาใช้งานจริงอาจต้องมีการปรับปรุงอีกหลายอย่างครับ
Bookmarks