Suspende a execução do programa pelo tempo (em microsegundos) especificado como parâmetro. Um 1 milisegundo há 1.000 microsegundos e em 1 segundo há 1 milhão.
Atualmente o maior valor que produzirá uma suspenção precisa é 16383. Isto pode mudar em distribuições futuras do Arduino. Para suspenções maiores que milhares de microsegundo você deve utilizar a função delay().
Parâmetros
μs: o número de microsegundos da suspenção.
Retorno
Nenhum
Exemplo
int outPin = 8; // digital pino 8
void setup()
{
pinMode(outPin, OUTPUT); // marca o pino digital como saída
}
void loop()
{
digitalWrite(outPin, HIGH); // ativa o pino
delayMicroseconds(50); // suspenção de 50 microsegundos
digitalWrite(outPin, LOW); // desativa o pino
delayMicroseconds(50); // suspenção de 50 microsegundos
}
configura o pino 8 para trabalhar como uma saída. Envia uma cadeia de de pulsos com um período de 100 microsegundos.
Cuidados e problemas conhecidos
Esta função funciona com bastante precisão na faixa dos 3 microsegundos e acima. Não podemos nos assegurar que funcione com precisão para tempos de suspenção menores.
Para assegurar suspenções mais precisas esta função desabilita as interrupções durante sua operação. Isto significa que algumas coisas (como o recebimento de informações seriais, ou que a atualização do valor de retorno da função mills() ) não funcionarão. Desse modo, você deve usar esta função apenas para suspenções curtas, e usar delay() para as mais longas.
delayMicroseconds(0) gerará uma suspanção muito maior do que a esperada (~1020 μs) bem como se o parâmetro for um número negativo.
E como resolver a descarga capacitiva no final do pulso quando utiliza delayMicroseconds?
ResponderExcluir