Salve a tutti volevo creare un contagiri a led per la mia vespa... avevo creato questo sketch ma risulta non funzionante e da valori sballati...
int ms;
int rpm;
int rpm1;
int pot;
unsigned int timeout=100;
void setup() {
Serial.begin(9600);
pinMode(2,OUTPUT );
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,INPUT);
digitalWrite(2,HIGH);delay(60);
digitalWrite(3,HIGH);delay(60);
digitalWrite(4,HIGH);delay(60);
digitalWrite(5,HIGH);delay(60);
digitalWrite(6,HIGH);delay(60);
digitalWrite(7,HIGH);delay(60);
digitalWrite(8,HIGH);delay(60);
digitalWrite(9,HIGH);delay(60);
digitalWrite(10,HIGH);delay(60);
digitalWrite(11,HIGH);delay(60);
digitalWrite(12,HIGH);delay(60);
digitalWrite(13,HIGH);delay(60);
digitalWrite(2,LOW);delay(60);
digitalWrite(3,LOW);delay(60);
digitalWrite(4,LOW);delay(60);
digitalWrite(5,LOW);delay(60);
digitalWrite(6,LOW);delay(60);
digitalWrite(7,LOW);delay(60);
digitalWrite(8,LOW);delay(60);
digitalWrite(9,LOW);delay(60);
digitalWrite(10,LOW);delay(60);
digitalWrite(11,LOW);delay(60);
digitalWrite(12,LOW);delay(60);
digitalWrite(13,LOW);delay(500);
}
void loop(){
ms=pulseIn(13,HIGH);
rpm=60000/ms;
Serial.println(rpm);
if(rpm<9449){
if(rpm >=1000){digitalWrite(3,HIGH);} else{digitalWrite(3,LOW);}
if(rpm >=1500){digitalWrite(3,HIGH);} else{digitalWrite(3,LOW);}
if(rpm >=2000){digitalWrite(4,HIGH);} else{digitalWrite(4,LOW);}
if(rpm >=3000){digitalWrite(5,HIGH);} else{digitalWrite(5,LOW);}
if(rpm >=4000){digitalWrite(6,HIGH);} else{digitalWrite(6,LOW);}
if(rpm >=5000){digitalWrite(7,HIGH);} else{digitalWrite(7,LOW);}
if(rpm >=5500){digitalWrite(8,HIGH);} else{digitalWrite(8,LOW);}
if(rpm >=6000){digitalWrite(9,HIGH);} else{digitalWrite(9,LOW);}
if(rpm >=7000){digitalWrite(10,HIGH);} else{digitalWrite(10,LOW);}
if(rpm >=8000){digitalWrite(11,HIGH);} else{digitalWrite(11,LOW);}
if(rpm >=8500){digitalWrite(12,HIGH);} else{digitalWrite(12,LOW);}}
if(rpm >=9000){
digitalWrite(2,HIGH);digitalWrite(3,HIGH);digitalWrite(4,HIGH);
digitalWrite(5,HIGH);digitalWrite(6,HIGH);digitalWrite(7,HIGH);
digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,HIGH);
digitalWrite(11,HIGH);digitalWrite(12,HIGH);digitalWrite(13,HIGH);
delay(100);
digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,LOW);
digitalWrite(5,LOW);digitalWrite(6,LOW);digitalWrite(7,LOW);
digitalWrite(8,LOW);digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,LOW);digitalWrite(12,LOW);digitalWrite(13,LOW);
delay(100);
}
}
avete qualche soluzione senza utilizzare il comando pulse in?