Constantes
Descrição
Constantes são expressões predefinidas na linguagem Arduino. Essas são usadas para tornar os programas mais legíveis. As constantes da linguagem Arduino são classificadas nos grupos:
Definições de Constantes Booleanas: true e false
Existem duas constantes usadas para representar verdade e falsidade na linguagem Arduino: true e false.
false
false é o mais fácil dos dois de ser definido. Sendo definido apenas como 0 (zero).
true
true é freqeuentemente dito ser definido como 1, o que está correto, porém true possui uma definição mais ampla. Qualquer inteiro que não seja zero é true, em um sentido booleano. Então -1, 2 e -200 são todos definidos como true, também, em um sentido booleano.
Note que as constantes true e false são digitadas em caixa baixa, diferentemente de HIGH, LOW, INPUT, and OUTPUT.
Definições de níveis lógicos: HIGH e LOW
Quando lendo-se ou escrevendo-se o estado de um pino digital há apenas dois valores possíveis que esse pino pode assumir: HIGH e LOW.
HIGH
O significado de HIGH (em relação a um pino) depende se o pino está configurado como entrada ou saída (INPUT ou OUTPUT). Qaundo um pino é configurado como INPUT com pinMode(), e lido com digitalRead(), o Arduino (ATmega) irá retornar HIGH se:
- Uma tensão maior que 3.0V está presente no pino (em placas 5V)
- Uma tensão maior que 2.0V está presente no pino (em placas 3.3V)
Um pino pode também ser configurado como entrada (INPUT) com pinMode(), e posteriormente colocado em HIGH com digitalWrite(). Isso irá ativar os resistores de 20K internos para pullup, o que irá forçar o estado do pino para HIGH a menos que esse seja forçado para LOW por um circuito externo. Isso é exatamente como a opção INPUT_PULLUP funciona, sendo descrita abaixo em mais detalhes.
Quando um pino é configurado como saída (OUTPUT) com pinMode(), e colocado em estado HIGH com digitalWrite(), a tensão no pino é:
- 5 volts (em placas 5V)
- 3.3 volts (em placas 3.3V)
Nesse estado, o pino pode fornecer corrente (ver limites para sua placa, geralmente 40.0mA). Isso pode ser usado, por exemplo, para acender um LED que está conecatdo ao ground através de um resistor limitador de corrente.
LOW
O significado de LOW depende também se o pino está configurado como entrada ou saída (INPUT ou OUTPUT). Qaundo um pino é configurado como INPUT com pinMode(), e lido com digitalRead(), o Arduino (ATmega) irá retornar LOW se:
- Uma tensão menor que 1.5V está presente no pino (em placas 5V)
- Uma tensão menor que 1.0V (aproxidamente) está presente no pino (em placas 3.3V)
Quando um pino é configurado como OUTPUT com pinMode(), e colocado em estado LOW com digitalWrite(), a tensão no pino é 0 volts (tanto em placas de 5V como 3.3V boards). Nesse estado o pino pode absorver corrente, o que pode ser usado, por exemplo, para acender um LED conectado através de um resistor limitador de corrente aos +5 volts (ou +3.3 volts).
Definições de modos para Pinos Digitais: INPUT, INPUT_PULLUP e OUTPUT
Pinos digitais pode ser usados como entrada, entrada com pull-up ou saída (INPUT, INPUT_PULLUP ou OUTPUT, respectivamente). Mudar o modo de um pino com pinMode() muda o comportamento elétrico do pino.
Pinos Configurados como entrada - INPUT
Pinos configurados como INPUT com pinMode() são ditos estarem em um estado de alta-impedância. Quando configurados como INPUT, esses pinos exigem multíssimo pouco dos circuitos que estão verificando, equivalente a um resistor de 100 Megohm na frente do pino. Isso faz com que sejam muito úteis para ler sensores.
Se você configurar um pino como INPUT, e ler o estado de um botão conectado a 5V, por exemplo, quando o botão estiver em estado aberto, a entrada estará "flutuando", resultando em leituras imprevisíveis. Isso acontece porque quando o botão está aberto, o pino não está conectado a nenhuma tensão. Para assegurar uma leitura correta quando o botão está aberto, um resistor de pull-up ou pull-down deve ser usado. O propósito desse resistor é colocar o pino em um estado conhecido quando o botão estiver aberto. Um resistor de 10K ohm é usado geralmente, pois possui valor baixo o suficiente para previnir confiavelmente o estado flutuante, ao mesmo tempo que é grande o suficiente para não usar muita corrente qaundo o botão estiver fechado. Veja o tutorial Serial e Digital Read (Em Innglẽs) para mais informações.
- Se um resistor de pull-down é usado, o pino de entrada estará em LOW quando o botão estiver aberto e HIGH quando o btoão estiver pressionado.
- Se um resistor de pull-up é usado, o pino de entrada estará em HIGH quando o botão estiver aberto e LOW quando o btoão estiver pressionado.
Pinos Configuradoos como entrada com pull-up - INPUT_PULLUP
O microcontrolador ATmega na maioria das placas Arduino possui resistores pull-up internos (resistores conectados a alimentação internamente) que você pode acessar. Se você preferir usar estes em vez de resistores de pull-up externos, você pode usar o argumento INPUT_PULLUP na função pinMode().
Veja o tutorial Input Pullup Serial (Em Inglês) para um exemplo do uso desses resistores.
Pinos configurados como entradas com ambos INPUT ou INPUT_PULLUP podem ser danificados ou destruídos se são conectados a tensões abaixo de zero (tensões negativas) ou acima da tensão de alimentação (5V ou 3V).
Pinos Configurados como saída - OUTPUT
Pinos configurados como OUTPUT com pinMode() são ditos estarem em um estado de baixa-impedância. Isso significa que esses podem fornecer uma quantidade substancial de corrente para outros circuitos. Os pinos de um ATmega podem fornecer ou absorver correntes de até 40 mA (miliamperes) para/de outros dispositivos/circuitos. Isso faz com que sejam úteis para alimentar LEDs, pois LEDs tipicamente usam menos de 40 mA. Cargas que exigem mais de 40 mA (ex. motores) irão reqeurer um transistor ou um outro circuito de interface.
Pinos configurados como saídas podem ser danificados ou destruídos se forem conectados diretamente ao ground ou na tensão de alimentação.
Definição do LED na placa: LED_BUILTIN
A maioria das placas Arduino possuem um pino conectado a um LED on-board através de um resistor. A constante LED_BUILTIN é o número do pino ao qual o LED on-board está conectado. Na maioria das placas, esse LED é conectado ao pino digital 13.
Ver Também
- Linguagem : Constantes de Ponto Flutuante
- Linguagem : Constantes Inteiras
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |