Você está na página 1de 7

HOME SOBRE CONTEDO FRUM EVENTOS OPORTUNIDADES COMUNIDADE

Arduino - Entradas e Sadas digitais

EMBARCADOS TV

porFbioSouzaemsegundafeira,09dedezembrode2013.

1/67

World Maker F...

OPORTUNIDADES
EstgioemSistemasEmbarcadosnaQuadrar
TecnologiaSoPaulo/SP
Prof.Dr.AdjuntoEletrnica/Sistemas
EmbarcadosnaUniv.Federalde
PernambudoRecife/PE
Pesquisar
Ir
AnalistadeDesenvolvimentodeSoftwarena
GertecSoPaulo

Olrorisvonnascimentoalmeida: SeuPerfil Logout

Entradas e Sadas digitais

Contato/Feedback

QuandovocadquireumaplacaArduinoUno,aprimeiracoisaquevememmentecomoligaredesligar
umequipamentooueletrodomstico,oucomolerumatecladocomputadorparaenviarcomandosparaa
placa.

Esteartigovisaapresentarasfunesdeentradaesadadigitaleexibiracorretaconfiguraodeumpino
digitalantesdautilizaopelasuaaplicao.

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
figuraaseguir:

AnalistadeSistemas|Engenheirode
Desenvolvimento|AnalistadeTestesna
AuteqTelemtica(JohnDeere)
Indaiatuba/SP
DesenvolvedordeProgramaparaCLPna
LeanCleanSorocaba/SP
Maisoportunidades

NEWSLETTER
Email

ASSINAR

ENQUETES REALIZADAS
EntradaseSadasDigitaisdaplacaArduino

Translate
Antes de utilizar cada um desses pinos em sua aplicao, voc deve configurlo como entrada ou sada
digital,conformeanecessidade.Porexemplo,paraacionarumLEDvocdeveconfiguraropinocomosada
eparalerumateclavocdeveconfiguraropinocomoentrada.

PorpadroospinosnoArduinoestoconfiguradoscomoentradasdigitais,porm,paraficarmaisexplicito
naprogramao,deveseconfiguraropinocomoentrada.Dessaformaopinocolocadoemumestado
dealtaimpedncia,equivalenteaumresistorde100Megohmsemseriecomocircuitoasermonitorado.
Dessa forma, o pino absorve uma corrente muito baixa do circuito que est monitorando. Devido a essa
caracterstica de alta impedncia, quando um pino colocado com entrada digital encontrasse flutuando
(semligaodefinida),onveldetensopresentenessepinoficavariandonopodendoserdeterminado
umvalorestveldevidoaruidoeltricoeatmesmocapacitnciadeentradadopino.Pararesolveresse
problemanecessriocolocarumresistordepullup(ligadoa+5V)ouumresistordepulldown(ligadoa
GND) conforme a necessidade. Esses resistores garantem nvel lgico estvel quando por exemplo uma
teclanoestpressionada.Geralmenteutilizaseumresistorde10Kparaessepropsito.Aseguirexibida
aligaodessesresistoresnocircuitoparaleituradetecla:

EscolhadeMicrocontrolador/
Microprocessador
SistemaOperacionalEmbarcado
Linguagemdeprogramao
TipodeProcessadorONovoEmbarcados

POSTS POPULARES
ArduinoComunicaoSerial
44.119visualizaes

SimuladordeArduino:VirtualBreadboard
42.814visualizaes

ArduinoUNO
37.387visualizaes

ComunicaoSerialJava+Arduino
26.567visualizaes

ArduinoEntradasAnalgicas
25.665visualizaes

PARCEIROS

OmicrocontroladorATmega328,daplacaArduinoUNO,possuiresistoresdepullupinternos(20Kilohms)
quefacilitamaligaodeteclas,sensoressemanecessidadedeconectarexternamenteumresistordepull
up.Ahabilitaodessesresistoresfeitademaneirasimplesviasoftware.

Quandoumpinoconfiguradocomsada,eleseencontraemestadodebaixaimpedncia.Dessaforma,o
pino pode fornecer ou drenar corrente para um circuito externo. A corrente mxima que um pino pode
forneceroudrenarde40mA,pormasomadascorrentesnopodeultrapassar200mA.Deveseficar
atento a corrente maiores que este limite e a curtocircuitos 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 interessante se tivessem resistores ou algum tipo de proteo em todos os pinos
utilizadoscomosadaparalimitaracorrenteemumasituaoanormal.

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. Isso torna a programao do
Arduinorealmentefcileesseseuencanto.Essasfunesso:

voidpinMode();

Essafunoutilizadaparaconfigurarumpino comoentradaousadadigital.Ela geralmenteutilizada


dentrodafunosetup().Apresentaasseguintescaractersticas:

Sintaxe:

pinMode(pino,modo);

Parmetros:

pino:Nmerocorrespondenteaopinoquesedesejaconfigurar,conformeaplacaqueesttrabalhando.No
casodaArduinoUNOpodeserde0a13;

modo:Modoquedesejaconfiguraropino.INPUT,INPUT_PULLUP,OUTPUT.

INPUT:Entradadigital;
INPUT_PULLUP:Entradadigitalcomresistordepullup(ligadoaoVCC)internohabilitado;
OUTPUT:Sadadigital;

Retorno:

Essafunonotemretornoalgum.

intdigitalRead();

Essafunolovalorpresenteemumpinodigital.EstevalorpodeserHIGHouLOW.Apresentaas
seguintescaractersticas:

Sintaxe:


digitalRead(pino);

Parmetros:

pino:valorcorrespondenteaopinoquesedesejaler.

Retorno:

HIGHouLOW.

voiddigitalWrite();

AfunodigitalWrite()colocaumnvellgicoAlto(HIGH,5V)oubaixo(LOW,0V)emumpinoconfigurado
comosadadigital.

Sintaxe:

digitalWrite(pino,valor)

Parmetros:

pino:Nmerocorrespondenteaopino;
valor:HIGHOULOW

Retorno:

Essafunonotemretornoalgum.

Exemplo

ParaexemplificarautilizaodepinosdeI/Odigitais,vamosdesenvolverumaaplicaodeleituradetecla
eacionamentodeLED,conformeoamontagemfeitanosoftwareFritzingexibidaaseguir:

OesquemaeltricoobtidoapartirdoFritzingexibidoabaixo,notequenocircuitohumresistordepull
upquegarantenvellgicoaltoquandoteclanoestpressionada:

OexemploconsisteemlerateclaS1eligaroLEDcasoamesmaestiverpressionada.Casonoestejasendo
pressionada,oLEDdevepermanecerdesligado.OSketchaseguirexibeaprogramao:

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 sada
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
}
}

Aprogramaoapresentadaacimapossuiumaestruturabemsimpleseservedeinicioparaamanipulao
de pinos de I/O digitais. Com as trs funes apresentadas possvel aplicar em diversos projetos que
necessitem de acionamento e leitura de sinais digitais. Agora para fixar os conceitos apresentados
necessriocolocaramonamassa!!!Ficacomoexerccioodesenvolvimentodeumsketchparaleiturade
teclacomresistordepullupinternohabilitadoparaopinoondeconectaateclaS1.

Para aprender mais sobre Arduino

ArduinoPrimeirosPassos
ArduinoOdocumentrio
PlacasArduinotrajetriaatoUNO
ArduinoUNO
ArduinoEntradas/Sadasdigitais
ArduinoEntradasAnalgicas
ArduinoSadasPWM
ArduinoComunicaoSerial
ArduinoArduBlock
ArduinonoProteus8.1
SimuladordeArduino:VirtualBreadboard
ArduinoLeonardo
ArduinoMEGA2560
AcionamentodeumalmpadacomArduino
ArduinoControledeumalmpadacomLDR
PlacaArduinodaRobocoreBlackBoard

CriandosuasprpriasbibliotecasparaArduino
ArduinoUNOTaxadeamostragemdoconversorA/D
ArduinoUNOSensordetemperaturainterno
MedindoonveldeguacomArduino
ComunicaoSerialcomC#eArduinoParte1
ComunicaoSerialcomC#eArduinoParte2
Arduino:ExpandindoosI/OsParte1
ArduinoEsplora
ArduinoTecladotouchcapacitivo
ArduinoInterfacecomacelermetroegiroscpio
Arduino:RS232/RS485Hardware
TrinketUmapequenapoderosaplacacompatvelcomArduino
NovaArduinoZeroProDisponvelnositearduino.org
Embrio:UmaferramentadeprogramaovisualparaArduino
ComunicaoserialcomArduinoutilizandoQt5ConsoleApplication
UtilizandomicrocontroladoresparacontroledeconversoresDCDCpersonalizados,parteII
Mveisdeescritrio+IoTUmaimpressoraderecibocomNFCeWifi
LightBlueBeanPlacacompatvelcomArduino
BRArduino.org:SuanovafontedeconhecimentosobreArduino
ShieldArduinoYN
ArduinoYn
NovoShieldArduinoWiFicomcontroladorAtmel
Python+ArduinoComunicaoSerial
ArduinovsRaspberryPi:entendaasdiferenas
PapilioArduino+FPGA
IntelGalileoGen2PlacaArduino
ArduinoTREDeveloperEditionLanamento!
NovoArduinoArduinoZerolanado
IntelGalileoPlacaArduino
ArduinoTRE
ArduinoDue
ComunicaoSerialJava+Arduino
UDOOArduino,LinuxeAndroidemumamesmaplaca

Referncias

RefernciaparaprogramaoArduino
PinosdigitaisArduino

ArduinoEntradaseSadasdigitaisporFbioSouza.EstaobraestsobalicenaCreativeCommons
AtribuioCompartilhaIgual4.0Internacional.

Fbio Souza

Engenheiroeletricistacomexperincianodesenvolvimentodehardwareefirmwarepara
sistemasembarcados.Atuacomdesenvolvimentodeprojetoseletrnicos,consultoriae
treinamentosnareadesistemasembarcados.

Tweetar

POSTS SIMILARES

Device Drivers para Linux


Embarcado - Introduo
Nesteartigoeuireifalarsobre
desenvolvimentodedevicedriverspara
Linuxembarcado.Hcertacarnciade
documentaooututoriaissobreo

Vdeo: UDOO UnboxingConfira O que o protocolo NTCIP


ovdeo de comunicao?

deunboxingdaplacaUDOO[1]feitopor
DiegoSueiro[2].Paramaisdetalhessobre IntroduoAANTT(AgnciaNacionalde
TransportesTerrestres)estabeleceupor
elavejaopostdereview[3]feito...
veja+ meiodaresoluon3.323A,de18de
novembrode2009,queemtodoo...

assunto.Esperocomeste...

veja+

veja+

COMENTRIOS

EmbarcadosTodososDireitosReservados

Links

Comunidade

Publicidade

Fique por dentro

Sobre
Eventos
Vdeos
Downloads
Login
Contato

SejaColaborador
Oportunidades
SiteseBlogs

AnuncieConosco

Registrese
Newsletter

Desenvolvidopor