Entradas e Sadas digitais A placa Arduino UNO possui 14 pinos que podem ser configurados como entrada ou sadas digitais conforme a necessidade de seu projeto. Estes pinos so numerados de 0 a 13, conforme destacado na figura a seguir: Entradas Digitais Na programao, deve-se configurar o pino como entrada (INPUT);
Dessa forma o pino colocado em um estado de alta
impedncia a100 Megaohms;
Devido a essa caracterstica, quando um pino colocado com
entrada digital encontrasse flutuando (sem ligao definida), o nvel de tenso presente nesse pino fica variando. Entradas Digitais no podendo ser determinado um valor estvel devido a rudo eltrico ou capacitncia de entrada do pino;
Para resolver esse problema necessrio colocar um resistor
de pull up (ligado a +5V) ou um resistor de pull down (ligado a GND);
Esses resistores garantem nvel lgico estvel quando por
exemplo uma tecla no est pressionada;
Geralmente utiliza-se um resistor de 10K para esse propsito;
Entradas Digitais Entradas Digitais O microcontrolador ATmega328, possui resistores de pull-up internos ( 20 quilohms) que facilitam a ligao de teclas, sensores sem a necessidade de conectar externamente um resistor de pull-up;
A habilitao desses resistores feita de maneira simples via
software; Sadas digitais Quando um pino configurado com sada, ele se encontra em estado de baixa impedncia;
Dessa forma, o pino pode fornecer ou drenar corrente para um
circuito externo;
A corrente mxima que um pino pode fornecer ou drenar de
40 mA, porm a soma das correntes no pode ultrapassar 200 mA; Sadas digitais Deve-se ficar atento a corrente maiores que este limite e a curto-circuitos que podem danificar o transistor de sada danificando o pino e at mesmo queimar o microcontrolador;
Essa uma caracterstica perigosa para a placa Arduino e
seria aconselhavel se tivessem resistores, ou algum tipo de proteo, em todos os pinos utilizados como sada para limitar a corrente em uma situao anormal; Funes para Entradas e Sadas digitais A plataforma Arduino possui funes para trabalhar com entradas e sadas digitais que abstraem toda a configuraes dos registradores que configuram e acessam os pino de I/O;
As principais funes so:
void pinMode();
utilizada para configurar um pino como entrada ou sada
digital. Ela geralmente utilizada dentro da funo setup(). Funes para Entradas e Sadas digitais Sintaxe: pinMode(pino, modo); Parmetros:
pino: Nmero correspondente ao pino que se deseja configurar,
conforme a placa que est trabalhando (no caso da Arduino UNO pode ser de 0 a 13).
modo: Modo que deseja configurar o pino:
INPUT: Entrada digital;
INPUT_PULLUP: Entrada digital com resistor de pull-up (ligado ao VCC) interno habilitado; OUTPUT: Sada digital; Funes para Entradas e Sadas digitais int digitalRead();
Essa funo l o valor presente em um pino digital. Este valor
pode ser HIGH ou LOW. Apresenta as seguintes caractersticas:
Sintaxe: digitalRead(pino); Parmetros: pino: valor correspondente ao pino que se deseja ler.
Retorno: HIGH ou LOW
Funes para Entradas e Sadas digitais void digitalWrite();
A funo digitalWrite() coloca um nvel lgico Alto (HIGH, 5V) ou
baixo (LOW, 0V) em um pino configurado como sada digital.
Sintaxe: digitalWrite(pino, valor)
Parmetros: pino: Nmero correspondente ao pino; valor: HIGH ou LOW Exemplo Para exemplificar a utilizao de pinos de I/O digitais, vamos desenvolver uma aplicao de leitura de tecla e acionamento de LED, conforme o a montagem feita no software FRITZING: Exemplo Atividades 1. Controlar um LED utilizando dois botes, sendo o boto 1 com pull-down utilizado para o acionamento e o boto 2 com pull-up utilizado para o desligar. Atividades 2. Acionar e desacionar o LED com o mesmo boto (flip-flop). Atividades 3. Acionar 4 LEDs de forma escalonada controlado por um boto em pull-down, ou seja, ao se pressionar o boto uma vez acende o LED1, na segunda vez aciona o LED2 e assim por diante. No quinto pulso todos os LEDs apagam. Atividades 4. Acionar quatro LEDS de forma escalonada, sendo que cada LED aciona depois de um tempo t_on. Aps todos os LEDs estiverem acionados, apagar tambm de forma escalonada com tempo t_off. O processo deve ser cclico sem controle.