# Arduino saidas digitais

**URL:** <https://forum.fazedores.com/t/arduino-saidas-digitais/5967>\
**Category:** Arduino\
**Created:** [Dezembro 28, 2018, 11:28am UTC](https://forum.fazedores.com/t/arduino-saidas-digitais/5967 "2018-12-28T11:28:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![camillo89](https://avatars.discourse-cdn.com/v4/letter/c/8797f3/32.png) [@camillo89](https://forum.fazedores.com/u/camillo89)\
**Post date:** [Dezembro 28, 2018, 11:28am UTC](https://forum.fazedores.com/t/arduino-saidas-digitais/5967/1 "2018-12-28T11:28:11Z")

</div>

Olá tenho uma saida D2 do arduino com tres estados : desligado ,ligado e blink (a cada 500ms(funcao millis)) queria saber como faço para ler essa saida… e definir como desligado\>desligado;ligado\>ligado e piscando como desligado .isso em outra saida D8

---

<div class="post-metadata">

**Author:** ![Augusto\_Antenucci](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/augusto_antenucci/32/2316_2.png) [@Augusto\_Antenucci](https://forum.fazedores.com/u/Augusto_Antenucci)\
**Post date:** [Janeiro 2, 2019, 11:07pm UTC](https://forum.fazedores.com/t/arduino-saidas-digitais/5967/2 "2019-01-02T23:07:04Z")

</div>

Ola. Eu posso tentar te ajudar…  
No seu codigo, voce envia o comando desligado/ligado/piscando para a saida d2, certo ??  
Pegue este valor tambem jogue para uma variavel.  
Assim, voce pode saber o estado que na saida d2, olhando o valor que está na variavel.  
exemplo  
desligado = 0  
ligado = 1  
piscando = 2

ajudou ???

---

<div class="post-metadata">

**Author:** ![XjonyX](https://avatars.discourse-cdn.com/v4/letter/x/34f0e0/32.png) [@XjonyX](https://forum.fazedores.com/u/XjonyX)\
**Post date:** [Janeiro 15, 2019, 8:22pm UTC](https://forum.fazedores.com/t/arduino-saidas-digitais/5967/3 "2019-01-15T20:22:33Z")

</div>

Bom, se entendi o que você quis dizer segue abaixo a explicação, espero que ajude.

Para ler uma saída do Arduino você deve usar o comando: digitalRead(SAIDA9) .  
Por exemplo: digitalRead(SAIDA9) == HIGH, no caso se a SAIDA9 estiver em nível alto sua logica fará algo ou não dependendo da logica empregada.

Para escrever ou mandar a saída ligar ou desligar você deve usar:  
digitalWrite (Saida9, LOW) (desliga) ou digitalWrite (Saida9, HIGH) (liga);

Claro não esqueça de declarar as saídas e entradas e defini-las, como tais conforme sua necessidade.

---

<div class="post-metadata">

**Author:** ![StramCast](https://avatars.discourse-cdn.com/v4/letter/s/a698b9/32.png) [@StramCast](https://forum.fazedores.com/u/StramCast)\
**Post date:** [Fevereiro 3, 2019, 4:23am UTC](https://forum.fazedores.com/t/arduino-saidas-digitais/5967/4 "2019-02-03T04:23:39Z")

</div>

Pra fazer isso você pode usar a função pulseIn(pino, valor, tempo\_de\_espera);  
Segue referência: [https://www.arduino.cc/reference/pt/language/functions/advanced-io/pulsein/](https://www.arduino.cc/reference/pt/language/functions/advanced-io/pulsein/)

Ficaria algo do tipo:

static int tempoPulso = 0;  
if(digitalRead(D8)) tempoPulso = pulseIn(D8, HIGH, 10);  
else tempoPulso = pulseIn(D8, LOW, 10);  
if((tempoPulso \> 400 and tempoPulso \< 600) or !digitalRead(D8))  
{  
Serial.println("Desligado);  
}  
else  
{  
Serial.println(“Ligado”);  
}
