HOME HOM E SOB SOBRE RE CON CONTEÚ TEÚDO DO FÓR FÓRUM UM EVE EVENTO NTOS S OPO OPORTU RTUNID NIDADE ADES S COM COMUNI UNIDAD DADE E
Arduino - Ent Entrrad adas as e Saídas digitais
EMBARCADOS TV
por Fábio Souza em Souza em segunda‐feira, 09 de dezembro de 2013.
1/67
World Maker F...
OPORTUNIDADES Estágio em Sistemas Embarcados na Quadrar Tecnologia ‐ São Paulo/SP
Olá rorisvon nascimento almeida: Seu Perfil Logout
Prof. Dr. Adjunto ‐ Eletrônica / Sistemas Embarcados na Univ. Federal de PernambudoPesquisar ‐ Recife/PE
Ir
Analista de Desenvolvimento de Software na Gertec ‐ São Paulo
Entradas e Saídas digitais Quando você adquire uma placa Arduino Uno, a primeira coisa que vem em mente é como ligar e desligar um equipamento ou eletrodoméstico, eletrodoméstico, ou como ler uma tecla do computador para para enviar comandos para a placa. Este artigo visa apresentar as funções de entrada e saída digital e exibir a correta configuração de um pino digital antes da utilização pela sua aplicação. A placa Arduino UNO possui 14 pinos que podem ser configurados como entrada ou saídas digitais conforme a necessidade de seu projeto. Estes pinos são numerados de 0 a 13, conforme destacado na figura a seguir:
Analista de Sistemas | Engenheiro de Desenvolvimento | Analista de Testes na Auteq Telemática (John Deere) ‐ Indaiatuba/SP Desenvolvedor de Programa para CLP na Lean Clean ‐ Sorocaba/SP
Mais oportunidades
NEWSLETTER Email
ASSINAR
ENQUETES REALIZADAS Entradas e Saídas Digitais da placa Arduino Translate »
Antes de utilizar cada um desses pinos em sua aplicação, você deve configurá‐lo como entrada ou saída digital, conforme a necessidade. Por exemplo, para acionar um LED você deve configurar o pino como saída e para ler uma tecla você deve configurar o pino como entrada.
Escolha de Microcontrolador / Microprocessador Sistema Operacional Embarcado Linguagem de programação Tipo de ProcessadorO Novo Embarcados
Por padrão os pinos no Arduino estão configurados como entradas digitais, porém, para ficar mais explicito na programação, deve‐se configurar o pino como entrada. Dessa forma o pino é colocado em um estado de alta impedância, equivalente a um resistor de 100 Megohms em serie com o circuito a ser monitorado. Dessa forma, o pino absorve uma corrente muito baixa do circuito que está monitorando. Devido a essa característica de alta impedância, quando um pino colocado com entrada digital encontrasse flutuando (sem ligação definida), o nível de tensão presente nesse pino fica variando não podendo ser determinado um valor estável devido a ruido elétrico e até mesmo capacitância de entrada do pino. Para resolver esse problema é necessário colocar um resistor de pull up (ligado a +5V) ou um resistor de pull down (ligado a GND) conforme a necessidade. Esses resistores garantem nível lógico estável quando por exemplo uma tecla não está pressionada. Geralmente utiliza‐se um resistor de 10K para esse propósito. A seguir é exibida a ligação desses resistores no circuito para leitura de tecla:
POSTS POPULARES Arduino ‐ Comunicação Serial 44.119 visualizações
Simulador de Arduino: Virtual Breadboard 42.814 visualizações
Arduino UNO 37.387 visualizações
Comunicação Serial Java + Arduino 26.567 visualizações
Arduino ‐ Entradas Analógicas 25.665 visualizações
PARCEIROS
O microcontrolador ATmega328, da placa Arduino UNO, possui resistores de pull‐up internos ( 20 Kilohms) que facilitam a ligação de teclas, sensores sem a necessidade de conectar externamente um resistor de pull‐ up. A habilitação desses resistores é feita de maneira simples via software. Quando um pino é configurado com saída, ele se encontra em estado de baixa impedância. Dessa forma, o pino pode fornecer ou drenar corrente para um circuito externo. A corrente máxima que um pino pode fornecer ou drenar é de 40 mA, porém a soma das correntes não pode ultrapassar 200 mA. Deve‐se ficar atento a corrente maiores que este limite e a curto‐circuitos que podem danificar o transistor de saída danificando o pino e até mesmo queimar o microcontrolador. Essa é uma característica perigosa para a placa Arduino e seria interessante se tivessem resistores ou algum tipo de proteção em todos os pinos utilizados como saída para limitar a corrente em uma situação anormal.
Funções para Entradas e Saídas digitais A plataforma Arduino possui funções para trabalhar com entradas e saídas digitais que abstraem toda a configurações dos registradores que configuram e acessam os pino de I/O. Isso torna a programação do Arduino realmente fácil e esse é seu encanto. Essas funções são: void pinMode(); Essa função é utilizada para configurar um pino como entrada ou saída digital. Ela geralmente é utilizada dentro da função setup(). Apresenta as seguintes características: Sintaxe:
pinMode(pino, modo); Parâmetros: pino: Número 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, INPUT_PULLUP, OUTPUT.
INPUT: Entrada digital; INPUT_PULLUP: Entrada digital com resistor de pull‐up (ligado ao VCC) interno habilitado; OUTPUT: Saída digital;
Retorno:
Essa função não tem retorno algum. int digitalRead(); Essa função lê o valor presente em um pino digital. Este valor pode ser HIGH ou LOW. Apresenta as seguintes características: Sintaxe:
digitalRead(pino); Parâmetros: pino: valor correspondente ao pino que se deseja ler. Retorno:
HIGH ou LOW. void digitalWrite(); A função digitalWrite() coloca um nível lógico Alto (HIGH, 5V) ou baixo (LOW, 0V) em um pino configurado como saída digital. Sintaxe:
digitalWrite(pino, valor) Parâmetros: pino: Número correspondente ao pino; valor: HIGH OU LOW Retorno:
Essa função não tem retorno algum. Exemplo
Para exemplificar a utilização de pinos de I/O digitais, vamos desenvolver uma aplicação de leitura de tecla e acionamento de LED, conforme o a montagem feita no software Fritzing exibida a seguir:
O esquema elétrico obtido a partir do Fritzing é exibido abaixo, note que no circuito há um resistor de pull‐ up que garante nível lógico alto quando tecla não está pressionada:
O exemplo consiste em ler a tecla S1 e ligar o LED caso a mesma estiver pressionada. Caso não esteja sendo pressionada, o LED deve permanecer desligado. O Sketch a seguir exibe a programação: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
/* Leitura de tecla O exemplo le uma tecla conectada ao pino 2 e aciona um led conectado ao pino 13 */ const int ledPin = 13; // cria uma constante com o numero do pino ligado ao LED const int inputPin = 2; // cria uma constante com o numero do pino conectado a tecla void setup() { pinMode(ledPin, OUTPUT); // declara o pino do led como saída pinMode(inputPin , INPUT); // declara o pino da tecla como entrada } void loop() { int val = digitalRead(inputPin); // le o valor na entrada if (val == LOW) // se valor está em zero( tecla pressionada) { digitalWrite(ledPin, HIGH); // Liga LED indicando tecla pressionada } else { digitalWrite(ledPin, LOW); // Desliga LED indicando tecla solta } }
A programação apresentada acima possui uma estrutura bem simples e serve de inicio para a manipulação de pinos de I/O digitais. Com as três funções apresentadas é possível aplicar em diversos projetos que necessitem de acionamento e leitura de sinais digitais. Agora para fixar os conceitos apresentados é necessário colocar a mão na massa!!! Fica como exercício o desenvolvimento de um sketch para leitura de tecla com resistor de pull up interno habilitado para o pino onde é conecta a tecla S1.
Para aprender mais sobre Arduino Arduino ‐ Primeiros Passos Arduino ‐ O documentário Placas Arduino ‐ trajetória até o UNO Arduino UNO Arduino ‐ Entradas/Saídas digitais Arduino ‐ Entradas Analógicas Arduino ‐ Saídas PWM Arduino ‐ Comunicação Serial Arduino ‐ ArduBlock Arduino no Proteus 8.1 Simulador de Arduino: Virtual Breadboard Arduino Leonardo Arduino MEGA 2560 Acionamento de uma lâmpada com Arduino Arduino ‐ Controle de uma lâmpada com LDR Placa Arduino da Robocore ‐ BlackBoard
Criando suas próprias bibliotecas para Arduino Arduino UNO ‐ Taxa de amostragem do conversor A/D Arduino UNO ‐ Sensor de temperatura interno Medindo o nível de água com Arduino Comunicação Serial com C# e Arduino ‐ Parte 1 Comunicação Serial com C# e Arduino ‐ Parte 2 Arduino: Expandindo os I/Os ‐ Parte 1 Arduino Esplora Arduino ‐ Teclado touch capacitivo Arduino ‐ Interface com acelerômetro e giroscópio Arduino: RS‐232/RS‐485 ‐ Hardware Trinket ‐ Uma pequena poderosa placa compatível com Arduino Nova Arduino Zero Pro ‐ Disponível no site arduino.org Embrio: Uma ferramenta de programação visual para Arduino Comunicação serial com Arduino utilizando Qt5 Console Application Utilizando microcontroladores para controle de conversores DC‐DC personalizados, parte II Móveis de escritório + IoT ‐ Uma impressora de recibo com NFC e Wifi LightBlue Bean ‐ Placa compatível com Arduino BR‐Arduino.org: Sua nova fonte de conhecimento sobre Arduino Shield Arduino YÚN Arduino Yún Novo Shield Arduino Wi‐Fi com controlador Atmel Python + Arduino ‐ Comunicação Serial Arduino vs Raspberry Pi: entenda as diferenças Papilio ‐ Arduino + FPGA Intel Galileo Gen 2 ‐ Placa Arduino Arduino TRE Developer Edition ‐ Lançamento! Novo Arduino ‐ Arduino Zero lançado Intel Galileo ‐ Placa Arduino Arduino TRE Arduino Due Comunicação Serial Java + Arduino UDOO ‐ Arduino, Linux e Android em uma mesma placa
Referências
Referência para programação Arduino Pinos digitais Arduino
Arduino ‐ Entradas e Saídas digitais por Fábio Souza. Esta obra está sob a licença Creative Commons
Atribuição‐CompartilhaIgual 4.0 Internacional .
Fábio Souza Engenheiro eletricista com experiência no desenvolvimento de hardware e firmware para sistemas embarcados. Atua com desenvolvimento de projetos eletrônicos, consultoria e treinamentos na área de sistemas embarcados.
Tweetar
7
1
POSTS SIMILARES
Device Drivers para Linux Embarcado - Introdução Neste artigo eu irei falar sobre desenvolvimento de device drivers para Linux embarcado. Há certa carência de documentação ou tutoriais sobre o
Vídeo: UDOO UnboxingConfira O que é o protocolo NTCIP o vídeo de comunicação?
de unboxing da placa UDOO [1] feito por Diego Sueiro [2]. Para mais detalhes sobre Introdução A ANTT (Agência Nacional de Transportes Terrestres) estabeleceu por ela veja o post de review [3] feito... veja+ meio da resolução nº 3.323‐A, de 18 de novembro de 2009, que em todo o...
assunto. Espero com este...
veja+ veja+
COMENTÁRIOS
Embarcados ‐ Todos os Direitos Reservados®
Links
Comunidade
Publicidade
Fique por dentro
Sobre Eventos Vídeos Downloads Login Contato
Seja Colaborador Oportunidades Sites e Blogs
Anuncie Conosco
Registre‐se Newsletter
Desenvolvido por