! (NÃO lógico)
!condicao
O ! é o operador da negação: ele vira o valor booleano de cabeça pra baixo. Se a condição era true, vira false; se era false, vira true. É ótimo pra alternar estados e pra ler botões de forma legível.
Sintaxe
!condicao
Parâmetros
- condicao: uma expressão booleana ou variável que será invertida (ex.:
ligado,digitalRead(2)).
Retorno
Um valor booleano (bool): o inverso do valor recebido. Vale lembrar que qualquer número diferente de zero conta como true, então !0 é true e !5 é false.
Exemplo
bool ligado = false;
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
ligado = !ligado; // inverte o estado a cada volta
digitalWrite(13, ligado); // pisca o LED
delay(500);
}
Notas e cuidados
- Não confunda
!(NÃO lógico) com~(NÃO bit a bit):!5dá0(false), mas~5inverte todos os bits e dá um número bem diferente. - Cuidado com
!e=:!=é o operador "diferente de", não a negação de uma atribuição. - Um truque comum:
if (!digitalRead(botao))lê como "se o botão estiver em LOW" quando você usaINPUT_PULLUP.