Code:
int nstar[] = {1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0};
// there are 0-95 elements, position 0 = 1st pulse from crank sensor A
// crank sensor B = lags behind A by 7 positions
// position 2 = cyl 1-4 TDC
// position 18 = cam sensor pulse
// position 26 = cyl 2-5 TDC
// position 50 = cyl 7-6 TDC
// position 74 = cyl 3-8 TDC
// approx 3.857* per position
int crank1 = 2; //pin2 = cranksensor 1
int crank2 = 3; //pin3 = cranksensor 2
int coil = 4;
int x = 0;
int y = 0;
void setup() {
Serial.begin(9600);
pinMode(crank1,OUTPUT);
pinMode(crank2,OUTPUT);
pinMode(4,OUTPUT); //coil 1
pinMode(5,OUTPUT); //coil 2
pinMode(6,OUTPUT); //coil 3
pinMode(7,OUTPUT); //coil 4
pinMode(LED_BUILTIN,OUTPUT); //enable the built-in led
}
void loop() {
// put your main code here, to run repeatedly:
for (int x = 0; x < 96 ; x = x + 1) {
Serial.print(x);
Serial.print(" ");
if (x==2) {digitalWrite(5,HIGH); digitalWrite(7,LOW);}; //coil 2 enable coil 1 disable
if (x==26) {digitalWrite(6,HIGH); digitalWrite(4,LOW);}; //coil 3 enable coil 2 disable
if (x==50) {digitalWrite(7,HIGH); digitalWrite(5,LOW);}; //coil 4 enable coil 3 disable
if (x==74) {digitalWrite(4,HIGH); digitalWrite(6,LOW);}; //coil 1 enable coil 4 disable
if (nstar[x]==1) {digitalWrite(crank1,HIGH);
delay(3);
digitalWrite(crank1,LOW);}
else {digitalWrite (crank1,LOW);}
y = x+7;
if (y>=96) {y=y-96;}
if (nstar[y]==1) {digitalWrite(crank2,HIGH);
delay(3);
digitalWrite(crank2,LOW);}
else {digitalWrite(crank2,LOW);}
// digitalWrite(LED_BUILTIN,HIGH);
//delay (3);
//digitalWrite(LED_BUILTIN,LOW);
}
Serial.println("");
}
Bookmarks