! (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): !50 (false), mas ~5 inverte 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ê usa INPUT_PULLUP.

Quer aprender a usar isso em projetos reais, do zero?

Conhecer o Curso Maker