2015-12-30 25 views
6
{ 
    digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) 
    delay(1000);    // wait for a second 
    digitalWrite(13, LOW); // turn the LED off by making the voltage LOW 
    delay(1000);    // wait for a second 
} 

Sto cercando di impostare il ritardo a 60.000, ma quando l'output al Arduino dopo 1 minuto passa la luce non si accende.In Arduino c'è un tempo massimo di ritardo quando si utilizza il fuction (Delay)

+0

Si prega di inviare il codice. Cosa dice la documentazione sui limiti di ritardo? Questa sembra essere una domanda di runtime. Hai indicato l'output previsto ed effettivo. Il prossimo (e importante) requisito per stackoverflow, com, è il codice sorgente. – user3629249

+0

Lo stai chiamando come 'delay (60000)' o qualcosa come 'delay (60 * 1000)'? –

risposta

3

Dal arduino reference page for delay il parametro per ritardo è un unsigned long

anela Unsigned on the arduino può raggiungere da 0 a 4.294.967.295.

È probabile che il numero passato a "ritardo" sia interpretato come int. Ciò significherebbe che il ritardo è limitato a un massimo di 32.767.

È necessario dichiarare esplicitamente il proprio valore di ritardo come like the solution in this post lungo senza segno.

unsigned long seconds = 1000L; //Notice the L 
unsigned long minutes = seconds * 60; 

delay(minutes); //for 60,000 milliseconds 
+0

Quindi dovrebbe funzionare, ma quello che ho deciso di fare è stato quello di dividere i miei valori e guardare attraverso e che sembra funzionare perfettamente. Ma grazie per la risposta. –

1

dato questo link: https://www.arduino.cc/en/Reference/DelayMicroseconds

Attualmente, il valore più grande che produrrà un ritardo accurata è 16383. Questo potrebbe cambiare in futuro Arduino rilascia. Per ritardi superiori a qualche migliaio di microsecondi, dovresti usare invece delay().

tutto ciò sembra indicare che la funzione sta solo prestando attenzione ai 14 bit inferiori.

Quindi anche nella funzione di ritardo più lungo: delay() è probabile che vengano utilizzati solo i 14 bit inferiori.