เสร็จเรียบร้อยครับ
สำหรับ mikro C ใช้เป็นคำสั่ง Kick Down
การทำงานคือ
- ถ้ากดคันเร่งแบบเรื่อย ๆ จะไม่มีอะไรเปลี่ยน
- ถ้าเส้นกระตุก นิด จะเข้าสู่การ หลอก Sensor 2 ตัว คือ AT2,AF (ต้องต่อ วงจรออกไปคุมอีกนะครับ)
- ถ้ากดแบบ เฟ้น ๆ อีกหน่อยก็ จะ หลอก AT2,AF,MAP
- สุดท้าย ถ้า กระเทือบลงไปฟืดเดียว ลึก มิด จั๊ด ก็ - ปิด คอมส์แอร์ ,หลอก sensor AT2,AF,MAP,WT
ทุกข้อที่กล่าวมา จะ ยกเลิกเมื่อ ถอนคันเร่งมาที่จุด ที่เริ่ม กระชาก ขอรับ
ส่วน ภาคการหลอก Sensor จะขอกล่าวในวาระ ต่อไป ครับ
Code ภาษา C ข้างล่าง ให้เป็นแนวทางการพัฒนานะครับ
ส่วน HEX File และ Proteus File ก็ให้เป็นตัวอย่างไปลองกันดูได้ครับ
อ่อ Proteus ให้ใช้ Ver 7 ขึ้นไปนะครับ Ver 6 จะ Error
/////////////////////////////////////////////////////////////
#define beep1 PORTC.F3 //BC548 BUZZER 12V
#define Dis PORTC.F4 //DISPLAY CONTROL
unsigned long int pedal1,pedal2,pedal_v,x;
unsigned char v1,v2,v3;
void main()
{
TRISA=0XFF;
TRISB=0x00;
TRISC=0X00;
TRISD=0X00;
TRISE=0X00;
PORTB=0X00;
PORTC=0X00;
PORTD=0X00;
PORTE=0X00;
Lcd_Init(&PORTD);
Lcd_Cmd(LCD_Clear);
Lcd_Cmd(lcd_cursor_off);
Dis=1;
Lcd_Out(1,5,"POWER ON");
delay_ms(1000);
for(x=0;x<3;x++)
{
beep1=1;
delay_ms(50);
beep1=0;
delay_ms(50);
}
while(1)
{
pedal_v=Adc_Read(0);
pedal_v=pedal_v*489/1000;
v1=pedal_v/100;
v2=(pedal_v%100)/10;
v3=pedal_v%10;
Lcd_Out(2,2,"PEDAL");
Lcd_Chr(2,8,v1+48);
Lcd_Chr(2,9,'.');
Lcd_Chr(2,10,v2+48);
Lcd_Chr(2,11,v3+48);
Lcd_Chr(2,14,'V');
Delay_ms(100);
pedal1=Adc_Read(0);
delay_ms(1000);
pedal2=Adc_Read(0);
{
loop1:
if(pedal2>=(pedal1+100)&pedal2<(pedal1+200))
{
Lcd_Cmd(LCD_Clear);
PORTB=0X17;
Lcd_Out(1,1,"ON AT2 AF");
Delay_ms(100);
pedal2=Adc_Read(0);
while(pedal2>=pedal1) {goto loop1;}
}
}
loop2:
if(pedal2>=(pedal1+200)&pedal2<(pedal1+405))
{
Lcd_Cmd(LCD_Clear);
PORTB=0x1F;
Lcd_Out(1,2,"ON AT2 AF MAP");
Delay_ms(100);
pedal2=Adc_Read(0);
while(pedal2>=pedal1) {goto loop2;}
}
loop3:
if(pedal2>=(pedal1+405))
{
Lcd_Cmd(LCD_Clear);
PORTB=0x0F;
Lcd_Out(1,1,"ON AT2 AF MAP WT"); Delay_ms(100);
Lcd_Out(2,3,"COM AIR OFF");Delay_ms(100);
pedal2=Adc_Read(0);
while(pedal2>=pedal1) {goto loop3;}
}
else {
PORTB=0X10;
Lcd_Cmd(LCD_Clear);
Delay_ms(200);
Lcd_Out(1,2,"PEDAL ACTIVE");
Delay_ms(100);
}
}
}
Bookmarks