quarta-feira, 16 de novembro de 2011

Constantes do Arduino


Constantes

Constantes são variáveis pré-definidas da linguagem do Arduino. Elas são usadas para fazer com que programas fiquem mais fáceis de ler. Constantes são classificadas em grupos.

 

Definindo Níveis Lógicos e Constantes Booleanas (true e false)

Existem duas constantes utilizadas para representar verdade e falsidade na linguagem do Arduino: true (verdadeiro) e false (falso).

false

Falso é o mais fácil de se definir. Falso é definido como zero (0).

true

Verdadeiro é normalmente tido como um (1), que está correto, mas verdadeiro tem uma definição mais ampla. Qualquer inteiro que não seja zero (0) é considerado verdadeiro, num sentido booleano. Então -1, 2 e -200 são todos definidos como verdadeiro, também em um sentido booleano.
Note que as constantes verdadeiro (true) e falso (false) são digitadas em caixa-baixa (letras minúsculas), ao contrário de HIGH (ALTO), LOW (BAIXO), INPUT (ENTRADA) e OUTPUT (SAIDA).

 

Definindo os Níveis das Portas, HIGH e LOW

Quando lendo ou escrevendo em uma porta digital, existem apenas dois valores possíveis que a porta pode ser lida/configurada: HIGH (ALTO) e LOW (BAIXO).
HIGH
O entendimento de HIGH (em relação a porta) é um pouco diferente dependendo se a porta foi configurada como INPUT (ENTRADA) ou OUTPUT (SAIDA). Quando uma porta é configurada como INPUT, utilizando a função pinMode, e lida com a função digitalRead, o microcontrolador retornará HIGH se a voltagem de 3 volts ou mais estiver presente na porta.
Uma porta também pode ser configurada como INPUT com o pinMode e na sequência ser configurada como HIGH com a função digitalWrite. Isto ativará o resistor interno de elevação de 20K ohms, o qual derivará a porta para o valor HIGH a não ser que ela seja trazida para LOW, por um circuito externo.
Quando uma porta é configurada para OUTPUT com a função pinMode, e configurada para HIGH com a digitalWrite, a porta ficará em 5 volts. Neste estado, a porta pode fornecer corrente, por exemplo para acender um LED, conectado através de um resistor em série com o terra (ground ou GND), ou mesmo para outro pino configurado como saída e com valor LOW (tem o mesmo efeito do GND).
LOW (BAIXO)
O significado de LOW também tem diferentes entendimentos dependendo de como a porta é configurada para INPUT ou OUTPUT. Quando uma porta é configurada como INPUT pela função pinMode, e lida com a função digitalRead, o microcontrolador irá retornar LOW se a voltagem de 2 volts ou menos estiver presente na porta.
Quando uma porta é configurada para OUTPUT com pinMode, e configurada como LOW pelo digitalWrite, a porta terá o valor de 0 volts. Neste estado podemos ancorar corrente, como no exemplo do LED ligado através de um resistor em série com uma porta OUTPUT no estado HIGH.

 

Definindo Portas Digitais, INPUT (ENTRADA) e OUTPUT (SAIDA)

Portas digitais podem ser usadas tanto como INPUT ou OUTPUT. Mudar o estado de uma porta de INPUT para OUTPUT com a função pinMode() muda drasticamente as características elétricas da porta.

Porta Configurada como Entrada

Portas do Arduino (ATMega) configuradas como INPUT com pinMode estão em um estado conhecido por alta-impedância. Uma forma de explicar isso é que a porta configurada como INPUT demanda muito pouca corrente do circuito que está amostrando, como se tivesse um resistor de 100 Megaohms em série com a porta. Isto se faz útil para leitura de um sensor, mas não para acender um LED.

Porta Configurada como Saída

Portas configuradas como OUTPUT com pinMode estão em um estado conhecido por baixa-impedância. Isso significa que elas podem fornecer uma quantidade substancial de corrente para outros circuitos. As portas do ATMega podem fornecer (prover corrente positiva) ou ancorar (prover corrente negativa) até 40 mA (miliamperes) de corrente para outros dispositivos/circuitos. Configuradas dessa forma, as portas podem fornecer corrente para acender um LED, mas se tornam inúteis para leitura de um sensor. Portas configuradas como saída podem também ser danificadas ou destruídas se curto-circuitadas tanto ao terra quanto aos 5 volts. A corrente fornecida pelas portas do ATMega também não são suficientes para a maioria dos motores e relês, então algum circuito de casamento se faz necessário.

Tradução

Por Renato Aloi, do original em inglês, no site: http://arduino.cc/en/Reference/Constants


2 comentários:

  1. Muito bom trabalho, eu tava no python já, agora vo comprar um arduino e vo inventar uns prototipos.hehe...claro se conseguir, mas aprendo rapido, e sou fascinado pelo o assunto!!

    Vlw, está de parabéns seus videos e o site.

    att

    Douglas Vieira.

    ResponderExcluir