2015-12-30 13 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 
} 

Kullanıldığında Maksimum gecikme süresi var Gecikmeyi 60.000 olarak ayarlamaya çalışıyorum ancak 1 dakika geçtikten sonra Arduino'ya gönderildiğinde ışık açılmıyor. arduino reference page for delaygecikme için parametre itibarenArduino'da, fuction (Gecikme)

+0

Lütfen kodu gönderin. Belgeler gecikme sınırlamaları hakkında ne söylüyor? Bu bir çalışma zamanı sorusu gibi görünüyor. Beklenen ve gerçek çıktıyı belirttiniz. Stackoverflow için bir sonraki (ve büyük) gereksinim, com, kaynak kodudur. – user3629249

+0

"Gecikme (60000)" veya "gecikme (60 * 1000)" gibi bir şey mi diyorsunuz? –

cevap

3

0'dan 4,294,967,295 ulaşabilir imzasız bir uzun

İmzasız uzun on the arduino olduğunu.

'Gecikme'ye geçirilen sayının int olarak yorumlanması olasıdır. Bu, gecikmenin maksimum 32,767 ile sınırlandığı anlamına gelir.

Gecikme değerinizi, imzasız uzun bir like the solution in this post olarak açıkça belirtmelisiniz.

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

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

O zaman işe yaramalıydı, ama yapmaya karar verdiğim değerlerimi bölmek ve gözden bakmaktı ve bu mükemmel çalışıyor gibi görünüyordu. Ama cevap için teşekkürler. –

1

bu bağlantıyı verilen: Şu https://www.arduino.cc/en/Reference/DelayMicroseconds

, doğru bir gecikme gelecekteki Arduino içinde değişebileceğini Bu serbest bırakır 16383 olduğunu üretecek en büyük değeri. Birkaç bin mikro saniyeden uzun gecikmeler için, bunun yerine delay() kullanmalısınız. Bu, fonksiyonun sadece 14 bitlik değere dikkat ettiğini belirtmektedir.

Bu nedenle, daha uzun gecikme işlevinde bile: delay(), yalnızca alt 14 bitin kullanılması olasıdır.