Está en la página 1de 28

25/09/2017 Arduino Bsico em 10 min | O mecatrnico

O mecatrnico Home
Search
Eletrnica
Mecnica
Programao

Faa voc mesmo. ROS

Sobre o site

Loja do IlustraSon. Confira!

27.86k visits
REVOLVERMAPS

Arduino Bsico em 10 min


Previous / Next By Almir / 26/01/2014 / Arduino, Eletrnica, Uncategorized / One Comment

Nota: caso no saiba programar ento sugiro olhar antes o post Arduino Programming Notebook Traduo que contm a traduo do
mini livro Arduino Programming Notebook que lhe ajudar a comear no mundo da programao em conjunto com o Arduino.

Para voc que j programa em C ou C++ e est interessado em aprender a programar Arduino esse guia ser perfeito. Dividirei em 3 partes:

1. Layout, possveis funes dos pinos, capacidades do Arduino


2. Quais funes chamar para acessar os recursos dos pinos(analogico, digital, i2c pwm, etc)
3. Uma rpida abordagem de eletrnica de como conectar alguns perifricos nas portas do Arduino.

No temos tempo a perder ento vamos.

PARTE 1: Layout, possveis funes dos pinos, capacidades do Arduino


Arduino uma plataforma de desenvolvimento que constituda de uma placa com um chip microcontrolador ( que faz o papel da CPU) e demais
componentes eletrnicos para fazer com que o microcontrolador funcione.

Dica1: o microcontrolador diferente de um processador pois o microcontrolador j possui memria de programa e memria RAM, tudo
integrado num nico chip. um computador inteiro em um nico chip, mas bem mais modesto pois possui apenas kbytes de RAM e alguns kbytes
de memria de programa e alguns MHz de clock.

Dica2: os shields so plaquinhas que so colocadas por cima do Arduino para dar alguma funcionalidade que ele no tem como Rels, WIFI,
Bluetooth, Ethernet, etc

Continuando existem diversos modelos(placas) de Arduinos. A escolha mais comum para comear tem sido o Arduino UNO (com
microcontrolador Atmega328). Depois vem o Arduino nano (tambm com o Atmega328) ou o Arduino Mega (pode vir com microcontrolador
Atmega 1280 ou o Atmega 2560 que tem mais memria) na lista dos mais usados.

Iremos usar o Ardunio UNO por ser o mais comum. A primeira coisa a se fazer antes de comprar ou aps comprar um Arduino ver suas
capacidades suas limitaes e layout. Ento vamos l. V em http://arduino.cc/en/Main/ArduinoBoardUno ou se o link no
funcionar http://arduino.cc depois em products e depois em Arduino UNO.

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 1/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

Cada pino pode executar mais de uma funo. Cabe a voc configurar durante o programa o que o pino vai ser. Cada pino tem suas capacidades, ou
seja, existem pinos que podem receber sinais analgicos j outros no. Para comunicar com o mundo externo o pino pode funcionar como entrada
(analgica ou digital) ou sada (analgica ou digital).

Do lado esquerdo podemos ver A0 at A5 elas so entradas analgicas. Mais na frente veremos que podem ser configuradas para serem entrada ou
sada digital. Do lado Direito temos os pinos Digitais. Eles podem ser entradas ou sadas digitais. E como veremos adiante os que tem um ~ (til)
tem tambm a funo de PWM que podemos considerar a grosso modo como sadas analgicas. Vamos aprofundar nos pinos:

DIGITAIS:
Cada um dos 14 pinos digitais (lado direito da placa do Arduino Uno) podem ser utilizados como uma entrada(input) ou sada(output), usando as
funes pinMode(), digitalWrite(), e digitalRead(). Os pinos operam em 5 volts. Cada pino pode fornecer ou puxar(aterrar) no mximo 40 mA e
possuem resistores internos de pull-up (desconectados por padro) de 20-50 kOhms. E ainda mais, alguns pinos podem ter funes especiais:

Serial: pino 0 (RX) e pino 1 (TX). Usados para receber (RX) e transmitir (TX) dados seriais no padro TTL. Estes pinos esto conectados aos
pinos do microcontrolador ATmega16U2 que faz a converso serial USB para TTL. Ou seja, se no seu projeto a comunicao USB for
utilizada, voc no pode usar os pinos 0 e 1 pois estaro j ocupados com a transmisso serial.
Interrupes Externas: pino 2 e pino 3. Estes pinos podem ser configurados para disparar uma interrupo quando for aterrado (0 volts), ou
na borda de subida ou na de descida, ou ainda na mudana de estado lgico. Veja a funo attachInterrupt() para mais detalhes de como fazer isso.
PWM: pinos 3, 5, 6, 9, 10, e 11. Fornecem sadas de PWM com 8-bit de resoluo PWM atrav da funo analogWrite(). Eles podem ser
considerados com as sadas analgicas escrevendo uma tenso entre 0 e 5volts.
SPI: pino 10 (SS), pino 11 (MOSI), pino 12 (MISO), pino13 (SCK). Estes pinos suportam o protocolo de comunicao SPI utilizando a biblioteca
j pronta SPI library.
LED: pino 13. Existe um Led na placa que est conectado ao pino digital 13. Quando o pino vai para 1 (high ou 5 volts) o LED acende, quando o
pino vai para 0 (LOW ou 0 volt), ele apaga.

ANALGICAS:

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 2/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico
O Uno possui 6 entradas analgicas, de nomes A0 at A5, cada uma com uma resoluo de 10 bits (o que d 1024 valores diferentes). Por padro
elas so medidas a partir do terra at os 5 volts, mas possvel mudar a referncia de tenso superior para outro valor utilizando o pino AREF e a
funo analogReference(). Conforme os pinos digitais, os pinos analgicos tambm possuem funes especiais:

TWI ( I2C ): pino A4 ou SDA e pino A5 ou SCL. Estes pinos suportam o protocolo de comunico I2C ou TWI atravs do uso da biblioteca
e Wire.

Outros Pinos:
AREF. pino que recebe a tenso externa de referncia para leitura das entradas analgicas. Este pino s ser usado caso queira uma faixa de
entrada diferente de 0volts at 5volts (padro). Mais informaes leia analogReference().
Reset. Ao ligar este pino ao terra (0 volt) o microcontrolador ser reiniciado. Geralmente utilizado por shields que ficam por cima
impossibilitando o acesso ao boto do Arduino, ento estas shilelds podem possuir um boto prprio de reset conectado a esse pino.

PinOut Atmega168 e Atmega 328 nos Arduinos

A pinagem idntica para o Atmega8, 168, e 328. Imagem retirada de mapping between Arduino pins and ATmega328 ports.

No se assuste com a quantidade de informao dessa figura abaixo, aconselho a imprimir e olhar quando for escolher um pino para executar
alguma funo.

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 3/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

Diagrama de pinos pra o Arduino Uno

Imagem retirada de www.pighixxx.com.

Agora de posse da informao sobre os pinos e suas possveis funes vamos para a 2 etapa.

PARTE 2: Estrutura bsica dos programas e quais funes chamar para


acessar os recursos dos pinos(analogico, digital, i2c pwm, etc)
Comeamos com a filosofia de que meio byte basta para programadores de nibbles

Caso no tenha baixado e configurado a plataforma de desenvolvimento do Arduino (IDE) clique aqui (inclusive como instalar os drivers USB
como CH340 de algumas Arduino clones).

A estrutura bsica dos programas do Arduino a encontrada no exemplo Bare Minimum. Conforme resumo abaixo:

Podemos observar que temos dois blocos que sempre existiro nos cdigos Arduino: o setup e o loop.

SETUP: No setup voc vai escrever o cdigo que vai configurar o arduino para iniciar sua aplicao. Nesse bloco voc informar cada pino que
quer usar (seu numero) e como quer que o pino funcione, se sada (Output) ou entrada (Input). Como assim? Bem, digamos que voc queira ligar
um led no pino 12. Para isso voc tem que informar ao arduino que o pino 12 ser usado como uma sada (Output), ou seja, voce controlar o pino
12 e vai enviar tenso 0v ou 5v para ligar ou desligar coisas, nesse caso o Led.

LOOP: J o bloco Loop a sesso que ficar sendo repetida e o programa efetivo dever estar nele contido. Como no bloco anterior (setup)
configuramos os pinos e/ou as bibliotecas nesse novo bloco Loop iremos usar os comandos que forem necessrios para que o Arduino faa o que
queiramos e interaja com o meio.

Concluindo:

Ento o programa mnimo para que a interface do Arduino no nos mostre erro o Bare Minimum (mnimo possvel) exibido abaixo:

void setup() {

// aqui voc escreve o cdigo para configurao inicial, que roda apenas uma vez.

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 4/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico
void loop() {

// aqui coloca o cdigo principal, que ficar sendo repetido.

Voc encontra esse programa em (File>Examples>01.Basics>BareMinimum). Agora vamos para uma tabela resumo das funes (mais comuns)
que podemos usar:

Durante o SETUP:

pinMode(pino, modo); onde pino o nome do pino em questo e o modo pode ser: INPUT, OUTPUT, ou INPUT_PULLUP exemplos:
pinMode(A0, INPUT); ou pinMode(13, OUTPUT);
Serial.begin(BaudRate); onde BaudRate a velocidade da comunicao serial exemplos: Serial.begin(9600); ou Serial.begin(19200);.

Durante o LOOP:

OBS: para usar comando que atribua valor ao pino (comandos com Write ) voc tem que ter declarado no SETUP que o pino seria OUTPUT. Da
mesma forma se voc vai ler o valor de um pino (comando com Read) tem que declarar antes no SETUP que o pino seria INPUT.

digitalWrite(pino, valor); onde pino o nome do pino em questo e o valor ser HIGH ou LOW. Exemplos: digitalWrite(13, HIGH); ou
digitalWrite(13, LOW); Utilizada para ligar ou desligar coisas ligadas ao Arduino.
digitalRead(pino); pino o nome do pino que ser lido. Esta funo retorna 1 se o pino est recebendo 5 volts ou 0 se o pino est recebendo 0
volts Exemplo: digitalRead(10); Com esta funo podemos testar se um boto conectado ao pino 10 foi pressionado por exemplo.
analogRead(pino); onde pino ser A0 at A5 no UNO. Esta funo retorna um valor entre 0 e 1024 proporcional tenso entre 0 volt e 5 volts
que est chegando no pino. Exemplo: analogRead(A2); Esta funo serve para lermos tenses analgicas entre 0 e 5 volts como por exemplo
leituras de termistores, potencimetros, foto resistores, microfones, etc.
analogWrite(pino, valor); nesta funo o pino tem que ser um pino capaz de ser PWM ( no Uno so os pinos 3,5,6,9,10 e 11). Com ela fazemos o
pino gerar uma onda PWM que pode ter valores mdio entre 0 volt (para valor = 0) e 5 volts ( para valor = 255) no pino. Exemplos:
analogWrite(3, 128); teremos pino 3 com 2,5 volts, analogWrite(9, 200); teremos pino 9 com aproximadamente 3,9 volts.

E para voc que quer aprofundar sobre as funes disponveis pela biblioteca padro visite a Referncia completa de funes do Arduino.

Abaixo segue uma folha resumo retirada do site mechatronicsguy com nome Arduino Cheat Sheet V.02c

Arduino cheat sheet v02c

Futuramente publico verso traduzida para quem interessar

Continuando analise estes programas:

Blink , Fade e ReadAnalogVoltage e perceba que eles utilizam as funes descritas acima. O bsico da parte da programao essa pois de posse
dela voc j capaz de ligar e desligar dispositivos, controlar analogicamente atravs de PWM, consegue saber o estado de um boto lendo o pino
de forma digital e finalmente consegue ler as entradas analgicas para interfacear termistores ou potencimetros etc

Parte 3: Conectando alguns perifricos nas portas do Arduino ( resumo).


Ando sem tempo para postar material mas venho colocar aqui pelo menos os esquemas sem as explicaes por enquanto desse tpico 3. Todas as
imagens abaixo foram retiradas do site http://pighixxx.tumblr.com/ . Vale a pena visitar o site e olhar as muitas outras imagens. O autor das
imagens no permite na licena a traduo, somente a cpia idntica. Ento escreverei abaixo de cada imagem explicaes em portugus.

OBS: geralmente o sinal marcado com IN nos diagramas abaixo devero ser conectados ao Arduino em uma porta configurada como
entrada.

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 5/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

1_botao_trimmer_fotoresistor_optoacoplador

Descrio da 1 imagem:

Pushbutton to GND: Boto com resistor de pullup ligado em +5v. O sinal IN dever ser conectado ao Arduino. O sinal ficar normalmente em
5v e quando o boto for pressionado o sinal ir para 0v(GND).
Pushbutton to 5v: botao com resistor de pulldown para o terra. O sinal IN dever ser conectado ao Arduino. O sinal ficar normalmente em
0v e quando o boto for pressionado o sinal ir para 5v.
Pushbutton to 12v: conectando um boto com tensao de 12v ao Arduino. Utiliza 2 resistores para fazer uma diviso de tenso para evitar a
queima da placa. Pode ser acrescido de um capacitor para ajudar no debouncing do boto. O sinal ficar normalmente em 0v e quando o boto
for pressionado o sinal ir para 5v.
Trimmer ou potentiometer: esquema de ligao de um trimmer ou de um potencimetro. Olhando de frente um potenciometro o pino da
esquerda liga-se ao 0v(GND) o pino do meio ao Arduino (em um dos pinos analgicos A0, A1) e o pino da direita ao +5V da placa.
Optocoupled inputs: esquema de entradas opto acopladas. Esta forma util para ler sinais de forma a isolar os circuitos. Do lado do LED
ligado o sinal a ser lido e do lado do foto transistor temos o sinal a ser enviado para placa.
Photoresistor: Esquema de ligao de um fotoresistor ou at mesmo de um termoresistor. Lembrando que o sinal ser analgico e ento dever
ser ligado a um pino analgico(A0,A1).

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 6/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

2_conectando_LEDS

Descrio da 2 imagem:

Connect a Led: LED com o resistor (470 ohms) de pullup ligado em +5. Quando for usado o comando digitalWrite(pino, LOW); o LED
acender.
Connect a Led: LED com resistor de pulldown para o terra. Quando for usado o comando digitalWrite(pino, HIGH); o LED acender.
Dual LEDs or Bi-color LED: com um nico pino podemos controlar dois LEDs de forma exclusiva, ou seja, ou um ou o outro estar ligado. No
exemplo o LED vermelho est com resistor de pullup e o LED verde est com resistor de pulldown. Quando executar o comando digitalWrite(pino,
HIGH); o LED verde acender e o vermelho ficar apagado. J no comando digitalWrite(pino, LOW); o LED vermelho acender e o verde ficar
apagado.
Connect a Lamp(DC Low Voltage): conectar uma lmpada de baixa tenso e corrente contnua. Podem ser usados transistores NPN como o
BC337 ou BC548 etc. O transstor utilizado para amplificar a corrente, pois o microcontrolador no aguenta ligar a lmpada sem a ajuda do
transstor. Observe tambm que com o comando digitalWrite(pino, HIGH); o transstor vai ligar a lmpada.
LED Clusters: ligando mais de um LED em srie em 12v. Observe a tabela para a escolha correta do resistor.

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 7/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

3_rele_buzzer_mosfet_saida_RCA

Descrio da imagem 3:

Connect a Relay: conectando um rel. muito importante a utilizao do Diodo reverso na bobina do rel, ele evitar a queima prematura do
transstor e at do Arduino. O transstor tambm importante por causa da tenso geralmente acima dos 5v e da corrente acima da capacidade do
Arduino.
Connect a Mosfet:

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 8/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

4_altofalante_baterias_Triac

Descrio da imagem 4:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 9/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

5_motor_DC_Encoder_e_Fita_RGB

Descrio da imagem 5:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 10/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

6_conversores_de_niveis_de_tensao

Descrio da imagem 6:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 11/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

7_servo_e_microfone

Descrio da imagem 7:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 12/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

8_7segmentos_e_VariosLEDS

Descrio da imagem 8:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 13/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

9_7segmentos_multiplexado_e_Array_de_LED

Descrio da imagem 9:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 14/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

10_7segmentos_com_max7221

Descrio da imagem 10:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 15/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

11_LCD_hitachi_44780(alfanumerico 162)

Descrio da imagem 11:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 16/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

12_I2C_LCD_hitachi_44780 (alfanumerico 162)

Descrio da imagem 12:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 17/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

13_NOKIA_LCD 5110

Descrio da imagem 13:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 18/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

14_motor_de_passo_unipolar_e_bipolar

Descrio da imagem 14:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 19/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

15_LCD_grafico_via_I2C

Descrio da imagem 15:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 20/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

16_fonte_5V_e_Arduino_DIY

Descrio da imagem 16:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 21/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

17_conectar_SD_card

Descrio da imagem 17:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 22/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

18_LM35(temperatura)_RTC(DS1307)_video_composto_e_VGA

Descrio da imagem 18:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 23/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

19_teclado_numerico

Descrio da imagem 19:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 24/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

20_sensor_infravermelho

Descrio da imagem 20:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 25/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

21_MAX232(TTL_RS232)

Descrio da imagem 21:

Em breve

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 26/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

22_MIDI_multiplos_botoes_um_analogico

Descrio da imagem 22:

Em breve

Espero que este tutorial tenha ajudado em alguma coisa

At a prxima.

Tweetar Like Share 98 people like this. Sign Up to see what your friends like.

One Comment

frenois 11/08/2014 at 4:21 am

super blog train instructif il ma rendu bien des service je remerci son auteur pour la qualit

Deixe uma resposta

Your message

Name (required)

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 27/28
25/09/2017 Arduino Bsico em 10 min | O mecatrnico

Email (required)

URL

MYlUtCPh6NEM * Copy This Password *

* Type Or Paste Password Here *

642 Spam Comments Blocked so far by Spam Free Wordpress

Publicar comentrio

2011 O mecatrnico
Designed by Wpshower / Powered by WordPress

http://omecatronico.com.br/blog/arduino-basico-em-10-min/ 28/28

También podría gustarte