grazie GINGARDU della tua disponibilità (ma ti avevo scritto ieri di dare una letta prima sul forum che magari riuscivo a risolvere) e infatti ho già risolto tutte le rotture
cmq ti ringrazio nuovamente per avermi regalato la conoscienza dell'istruzione micros()
ma piccolo appunto (mo me a tiro)
hai sbagliatoooooooooooooooooooooo!!!!!!!!!!!!!!!!!!!!!!!!
if (millis() - previousMillis > interval) {
previousMillis = micros(); // modifica GINGARDU sostituito il timer millis com micros
//per evitare che dia fastiadio al timer timer0_millis = 0; o voceversa
if (val5 == LOW)
val5 = HIGH;
else
val5 = LOW;
digitalWrite(frecceOut, val5);
}
nell'if hai lasciato millis() cmq sarà sicuramente utilissimo nei prossimi progetti
intanto per studiare il millis ho scritto uno spezzone di codice per far accendere e spegnere un led in modo proporzionale utilizzando millis() e sono veramente molto soddisfatto!!!
int value = 0;
int value2;
long previousMillis = 0;
long interval = 10;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
if (value == 150) value2 = 1;
if (value == 0) value2 = 2;
if (millis() - previousMillis > interval) {
previousMillis = millis();
if (value2 == 2) value = value+1;
analogWrite(ledPin, value);
}
if (millis() - previousMillis > interval) {
previousMillis = millis();
if (value2 == 1) value = value-1;
analogWrite(ledPin, value);
}
}