Você está na página 1de 108

Fundao Universidade Federal de Mato Grosso do Sul Faculdade de Computao - FACOM

SubProjeto DesTaCom Despertando Novos Talentos em Computao no MS Atividade Arduino

Equipe: Hewerson Antonio Perdomo Jacquet Luana Loubet Borges Ricardo Espindola de Aguiar Riccieli Kendy Zan Minakawa Ricardo Ribeiro dos Santos

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Sumrio

1 Introduo 2 O Kit de Desenvolvimento Arduino - Arduino MEGA 2560


2.1 2.2 2.3 2.4 2.5 2.6 2.7 Alimentao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Memria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entrada e Sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comunicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset Automtico (Software) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Proteo contra sobrecorrente via USB . . . . . . . . . . . . . . . . . . . . . . . . Caractersticas Fsicas e Compatibilidade com

6 7
8 9 9 10 10 11 11

Shields . . . . . . . . . . . . . . .

3 Desenvolvimento de Programas para o Arduino


3.1 3.2 Ambiente de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13
13

Programando para o Arduino: Conceitos e Sintaxe da Linguagem de Programao 16 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 Elementos de Sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setup e Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Converso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 18 19 19 24 26

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.7 3.2.8 3.2.9

Estrutura de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores de Comparao . . . . . . . . . . . . . . . . . . . . . . . . . . Operador de Atribuio . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28 32 32 33 34 34 36 39 40 42 44 46

3.2.10 Operadores Aritmticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.11 Operadores Booleanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.12 Operadores de Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.13 Operadores Compostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.14 Entrada e sada digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.15 Entrada e sada analgica . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.16 Entrada e sada avanada . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.17 Tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.18 Comunicao serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Montagens Prticas
4.1 4.2 4.3 4.4 4.5 4.6 4.7 Imprimindo uma mensagem no LCD . . . . . . . . . . . . . . . . . . . . . . . . . Alterando a frequncia com que o LED pisca . . . . . . . . . . . . . . . . . . . . Semforo de Carros e Pedestres . . . . . . . . . . . . . . . . . . . . . . . . . . . . Termmetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Piano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alarme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Projeto Alarme Multipropsito . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54
54 56 58 62 66 69 72

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

4.8

Porto Eletrnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

A Sensores e Componentes
A.1 LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81
81 82 83 84 85 86 87 88 88 89 91 91 91 92 93

A.2 Potencimetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Push-button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.4 Buzzer 5V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.5 Sensor de Luminosidade LDR 5mm . . . . . . . . . . . . . . . . . . . . . . . . . . A.6 Sensor de temperatura e umidade DHT11 . . . . . . . . . . . . . . . . . . . . . . A.7 Sensor Infravermelho - Sharp GP2Y0A21YK0F . . . . . . . . . . . . . . . . . . . A.8 Servo motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.9 Display de 7 segmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.10 LCD 16x2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.11 Resistores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.11.1 O que so resistores? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.11.2 Tipo de resistores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.11.3 Resistores em srie e em paralelo . . . . . . . . . . . . . . . . . . . . . . . A.11.4 Cdigo de Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B Descrio do funcionamento de uma C Glossrio

protoboard

95 97

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

C.1 ASCII

(American Standard Code for Information Interchange) . . . . . . . . . .

97 97 97 99 99 99

C.2 Biblioteca SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 C.4 C.5

Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Case Sensitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C.6 Circuito Impresso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.7

Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

C.8 Complemento de 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 C.9 Entrada/Sada digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 C.10 FTDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 C.11 Fusvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 C.12 Impedncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 C.13 ICSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 C.14 Jack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 C.15 Jumpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 C.16 Memria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 C.16.1 Memrias volteis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 C.16.2 Memrias no volteis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 C.17 MSB/LSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 C.18 Open-Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 C.19 Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

C.20 PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 C.21 Shields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 C.22 SPI

(Serial Peripheral Interface) . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 (Two-Wire Interface) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

C.23 TWI

C.24 UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 C.25 Wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Introduo

O projeto Arduino 1 teve incio na cidade de Ivrea, Itlia, em 2005, objetivando a efetivao de projetos de estudantes menos onerosa. Os fundadores do projeto, Massimo Banzi e David Cuartielles denominaram Arduino em homenagem a Arduin de Ivrea um antepassado histrico da cidade de Ivrea. Arduino um kit de desenvolvimento de circuito impresso
[ver apndice C.6]

open-source

[ver apndice C.18]

baseado em uma placa

dotada de vrios recursos de interfaceamento (pinagem de

entrada e sada) e um microcontrolador Atmel AVR. um projeto descendente da plataforma

Wiring

[ver apndice C.25]

que foi concebida com o objetivo de tornar o uso de circuitos eletrnicos

mais acessvel em projetos multidisciplinares. A linguagem

Wiring foi criada por Hernando

Barragn em sua dissertao de mestrado no Instituto de Projetos Interativos de Ivrea sob a superviso de Massimo Banzi e Casey Reas. A linguagem usada para programao do Arduino baseada na linguagem Wiring (sintaxe + bibliotecas), e muito similar a C++ com pequenas modicaes. A linguagem adotada baseada em

Processing [ver apndice C.19] .


Atualmente, pode-se comprar um kit Arduino em diferentes verses. Tambm so disponi-

bilizadas informaes do hadware para aqueles que desejam montar seu prprio kit Arduino. Alm do ambiente de programao para o Arduino, existem outros softwares que podem facilitar o entendimento e documentao dessa tecnologia: X Fritzing2 um ambiente de desenvolvimento de software dentro do projeto Arduino. Possibilita que os usurios possam documentar seus prottipos e, principalmente, que possam ilustrar a implementao de um projeto real de uma maneira fcil e intuitiva de ser enten

http://arduino.cc http://fritzing.org/

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

dida por outros usurios. X Miniblog3 um ambiente de desenvolvimento grco para Arduino. O principal objetivo auxiliar o ensino de programao e, em especial, o ensino de robtica em nvel de ensino mdio.

O Kit de Desenvolvimento Arduino - Arduino MEGA 2560

O Arduino Mega 2560 um kit de desenvolvimento baseado no microcontrolador ATmega2560 que possui 54 pino de entrada/sada (I/O) [ver apndice C.9], dos quais 14 podem ser usadas como sadas PWM [ver apndice C.20] de 8 bits, 16 entradas analgicas, 4 UARTs [ver apndice C.24] que so portas seriais de hardware, um cristal oscilador de 16MHz, uma conexo USB, um conector de alimentao, um conector ICSP (In-Circuit Serial Programming ) [ver apndice C.13], e um boto de reset. Para energizar o Arduino Mega 2560 necessrio conect-lo a um computador via cabo USB, a um adaptador AC/DC ou a uma bateria. Ressalta-se que a utilizao do cabo USB imprescindvel quando deseja-se efetuar a programao do kit. O Arduino Mega 2560 (Figura 1) uma evoluo do Arduino Mega, que usa o microcontrolador ATmega 1280.

Figura 1: Arduino Mega 2560 A Tabela 1 resume todas as caractersticas j citadas e fornece algumas informaes importantes a respeito da utilizao do Arduino.
!

http://blog.minibloq.org/

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Microcontrolador Tenso de operao Tenso de entrada (recomendada) Tenso de entrada (limites) Pinos de entrada e sada (I/O) digitais Pinos de entradas analgicas Corrente DC por pino I/O Corrente DC para pino de 3,3V Memria Flash SRAM EEPROM Velocidade de Clock [ver apndice C.7]

ATmega2560 5V 7-12 V 6-20 V 54 (dos quais 14 podem ser sadas PWM) 16 40 mA 50 mA 256 kB (dos quais 8 kB so usados para o 8 kB 4 kB 16 MHz

bootloader )

Tabela 1: Caractersticas do kit Arduino MEGA2560

2.1

Alimentao

O Arduino pode ser alimentado por uma conexo USB ou por uma fonte de alimentao externa que pode ser at uma bateria. A fonte pode ser ligada atravs de um conector de 2,1 mm (positivo no centro), na entrada de alimentao. Cabos vindos de uma bateria podem ser ligados nos pinos GND e entrada de alimentao (Vin) do conector de energia. A placa pode operar com alimentao externa entre 6 V e 20 V como especicado na Tabela 1. Entretanto, se a tenso aplicada for menor que 7 V, o regulador de 5 V pode fornecer menos de 5 V e a placa pode car instvel. Com mais de 12 V o regulador de tenso pode superaquecer e danicar a placa. A faixa recomendvel de 7 V a 12 V. Os pinos de alimentao so citados a seguir: X VIN. Relacionado entrada de tenso da placa Arduino quando se est usando alimentao externa (em oposico aos 5 volts fornecidos pela conexo USB ou outra fonte de alimentao regulada). possvel fornecer alimentao atravs deste pino ou acess-la se estiver alimentando pelo conector de alimentao. X 5V. Fornecimento de tenso regulada para o microcontrolador e outros componentes da placa. X 3V3. Uma alimentao de 3,3 volts gerada pelo chip FTDI mxima de 50 mA. X GND. Pinos de referncia (0V).
[ver apndice C.10]

. A corrente

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

2.2

Memria

O ATmega2560 tem 256 kB de memria ash [ver apndice C.16] para armazenamento de cdigo (dos quais 8 kB usado para o bootloader [ver apndice C.3], 8 kB de SRAM e 4 kB de EEPROM (que pode ser lida e escrita com a biblioteca EEPROM).

2.3

Entrada e Sada

Cada um dos 54 pinos digitais do kit Arduino Mega 2560 pode ser usado como entrada ou sada, usando as funes de pinMode(), digitalWrite(), e digitalRead(). Eles operam a 5 volts. Cada pino pode fornecer ou receber uma corrente mxima de 40 mA e possui um resistor interno (desconectado por default ) de 20-50k. Alm disso, alguns pinos possuem funes especializadas: X Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Usados para receber (RX) e transmitir (TX) dados de forma serial com nveis TTL. Os Pinos 0 e 1 so conectados aos pinos correspondentes do chip ATmega8U2; que um conversor USB-to-Serial. X Interruptores externos: 2 (interruptor 0), 3 (interruptor 1), 18 (interruptor 5), 19 (interruptor 4), 20 (interruptor 3), e 21 (interruptor 2). Estes pinos podem ser congurados para disparar uma interrupo por um nvel lgico baixo, por uma transio descendente ou ascendente, ou por uma mudana de nveis Para mais detalhes deve-se ver a funo attachInterrupt(). X PWM: 0 a 13. Fornecem sada analgica PWM de 8 bits com a funo

analogWrite().

X SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Estes pinos do suporte comunicao SPI [ver apndice C.22] por meio da biblioteca SPI. [ver apndice C.2] Os pinos SPI tambm esto disponveis no conector ICSP que sicamente compatvel com o Uno, Duemilanove e Diecimila (ou outros modelos de Arduino). X LED: 13. H um LED conectado ao pino digital 13. Quando o pino est em nvel lgico HIGH, o LED se acende e quando o pino est nvel lgico LOW, o LED ca desligado. X TWI (I2C): 20 (SDA) e 21 (SCL). Fornecem suporte comunicao TWI [ver apndice C.23] utilizando a biblioteca Wire. Note que estes pinos no esto na mesma posio que no Duemilanove ou Diecimila.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

O Mega2560 tem 16 entradas analgicas, cada uma das quais digitalizada com 10 bits de resoluo (i.e. 1024 valores diferentes). Por padro elas medem de 0 a 5 V, embora seja possvel mudar o limite superior usando o pino AREF e a funo analogReference(). H ainda pino reset que ao receber um nvel lgico LOW, reseta o microcontrolador. Esse pino tipicamente usado para adicionar um boto de reset em shields (placas que adicionam recursos ao Arduino) [ver apndice C.21] .

2.4

Comunicao

O Arduino Mega 2560 possui vrias possibilidades de comunicao com um computador, com outro Arduino ou outros microcontroladores. O ATmega2560 fornece quatro portas de comunicao serial (UARTs) usando nveis TTL (5V). Um chip FTDI FT232RL direciona uma destas portas para a conexo USB e os drivers FTDI (que acompanham o software do Arduino) criam uma porta serial virtual no computador, que pode ser utilizada por qualquer software. A plataforma de desenvolvimentodo Arduino inclui um monitor serial que permite que caracteres sejam enviados da placa Arduino e para a placa Arduino. Os LEDs RX e RT piscaro enquanto dados estiverem sendo transmitidos pelo chip FTDI e pela conexo USB com o computador (mas no para comunicao serial nos pinos 0 e 1). A biblioteca SoftwareSerial permite uma comunicao serial atravs de qualquer um dos pinos digitais do Mega 2560. O ATmega2560 tambm fornece suporte para comunicao I2C (TWI) e SPI. O software Arduino inclui uma biblioteca (Wire ) para simplicar o uso do barramento I2C. Para utilizar a comunicao SPI deve-se vericar o datasheet do ATmega2560.

2.5

Reset Automtico (Software)

Em vez de necessitar de um pressionamento fsico do boto de reset antes de um upload, o Arduino Mega 2560 projetado de modo a permitir que o reset seja feito pelo software executado em um computador conectado. Uma das linhas de controle do uxo por hardware (DTR) do ATmega8U2 conectada diretamente linha de reset do ATmega2560 atravs de um capacitor de 100 nF. Quando esta linha colocada em nvel lgico baixo, a linha de reset vai para nve baixo por um tempo suciente para resetar o microcontrolador. O software Aduino utiliza esta capacidade para possibilitar que novos cdigos sejam enviados simplesmente clicando no boto de upload do ambiente de desenvolvimento do Arduino. Esta congurao tem outras implicaes. Quando o Mega2560 est conectado via USB a um computador com sistema operacional Mac OS X ou Linux, ele resetado cada vez que uma

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

10

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

conexo feita com o software (via USB). Durante o prximo meio segundo, aproximadamente, o bootloader executado no Mega2560. Embora seja programado para ignorar dados corrompidos (i.e. qualquer coisa que no seja o upload de um novo cdigo), ele ir interceptar os primeiros bytes de dados enviados placa depois que a nova conexo estabelecida. Se um programa rodando no Arduino recebe uma pr-congurao ou outros dados assim que iniciado, deve-se certicar de que o software com o qual ele se comunica espera meio segundo depois que a conexo foi estabelecida antes de comear a enviar os dados. O Mega 2560 tem uma trilha que pode ser cortada para desabilitar o reset automtico. Esta trilha pode ser reconectada por solda para reabilitar esta funcionalidade. Esta trilha tem a identicao "RESET-EN". Tambm possvel desabilitar o reset automtico conectando-se um resistor de 110 entre a linha de reset e 5 V.

2.6

Proteo contra sobrecorrente via USB

O Arduino Mega2560 possui um fusvel [ver apndice C.11] resetvel que protege a porta USB do computador contra curto-circuitos e sobrecorrentes. Apesar de muitos computadores possurem sua prpria proteo interna, o fusvel resetvel proporciona um grau extra de segurana. Se mais de 500 mA forem drenados ou aplicados na porta USB, o fusvel automaticamente abrir o circuito at que o curto ou a sobrecarga sejam removidos.

2.7

Caractersticas Fsicas e Compatibilidade com

Shields

Alm das funcionalidades presentes no Arduino Mega 2560, pode-se adicionar kits acessrios diretamente sobre o Arduino, a m de se obter outras caractersticas e recursos tecnolgicos no disponveis no Arduino. A Figura 2 apresenta um kit acessrio (shield ) que implementa o protocolo para comunicao wireless ZigBee acoplado ao kit Arduino. As dimenses mximas de comprimento e largura da placa Mega2560 so 4,0"(101,60 mm) e 2,1"(53,34 mm), respectivamente, com o conector USB e o jack [ver apndice C.14] de alimentao ultrapassando um pouco essas dimenses. Trs furos para montagem com parafusos permitem montar a placa numa superfcie ou caixa. Nota-se que a distncia entre os pinos 7 e 8 de entrada e sada digital de 0,16"e no 0,10"como entre os outros pinos . O Mega2560 projetado para ser compatvel com a maioria dos shields construdos para o Uno Diecimila ou Duemilanove. Os pinos de entrada e sada digital 0-13 (e adjacentes AREF e GND), as entradas analgicas 0-5, o conector Power e o ICSP esto todos em posies equivalentes. Alm disso, a UART principal (porta serial) est localizada nos mesmos pinos (0 e 1), bem com as interrupes 0 e 1 (pinos 2 e 3, respectivamente). O SPI est disponvel atravs do conector ICSP no Arduino Mega 2560 e no Duemilanove/Diecimila. Nota-se que o I2C no est localizado nos

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

11

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 2: Exemplo de utilizao do Arduino com kit acessrio Xbee.

mesmos pinos no Mega2560 (20 e 21) e no Duemilanove/Diecimila (entradas analgicas 4 e 5).

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

12

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3
3.1

Desenvolvimento de Programas para o Arduino


Ambiente de Desenvolvimento

O ambiente de desenvolvimento do Arduino contm um editor de texto para escrita do cdigo, uma rea de mensagem, uma rea de controle de informaes, uma barra de ferramentas com botes para funes comuns e um conjunto de menus. Esse ambiente se conecta ao hardware Arduino para transformar os programas e se comunicar com eles. Os programas escritos usando o ambiente de desenvolvimento Arduino so chamados de sketches. O ambiente de desenvolvimento foi desenvolvido em Java e derivado do ambiente de desenvolvimento para a linguagem Processing.

Figura 3: Ambiente de desenvolvimento (IDE) do Arduino A biblioteca  Wiring  disponibilizada junto com o ambiente de desenvolvimento do Arduino possibilita que os programas sejam organizados atravs de duas funes, embora sejam programas C/C++. Essas duas funes, obrigatrias em todos os programas escritos, so:

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

13

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X setup(): funo que executada uma nica vez no incio do programa e usada para fazer conguraes. X loop(): funo que executada repetidamente at que o kit seja desligado. O ambiente Arduino usa o conjunto de ferramentas de compilao gnu C e a biblioteca AVR libc para compilar programas. Usa ainda a ferramenta avrdude para carregar programas no Arduino. Principais comandos disponveis atravs de botes:

(a) Verify/Compile - Verica se o cdigo tem erros

(b) Stop - Para o monitor serial ou interrompe processos que foram iniciados pelos outros botes.

(c) New - Cria um novo sketch.

(d) Open - Mostra uma lista de todos os sketches salvos e abre o que for selecionado.

(e) Save - Salva o sketch.

(f) Upload to I/O Board - Compila o cdigo e transfere para o Arduino.

(g) Serial Monitor - Mostra a informao enviada pelo Arduino para o computador.

Comandos adicionais so encontrados atravs dos menus: File, Edit, Sketch, Tools, Help. As funes disponveis nos menus File, Edit e Help so semelhantes s de outros programas bem conhecidos e, por isso, no sero detalhadas aqui.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

14

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

menu Sketch
X Verify/Compile - Verica se o cdigo tem erros X Import Library - Adiciona bibliotecas ao programa X Show sketchfolder - Abre a pasta onde o programa est salvo X Add File... - Adiciona um arquivo fonte ao programa. O novo arquivo aparece em uma nova aba

menu Tools
X Auto format - Formata o cdigo para uma melhor leitura, alinhando as chaves e indentando seu contedo. X Board - Seleciona o modelo da placa Arduino utilizada no projeto. X Serial Port - Mostra todas as portas seriais disponveis no computador. X Burn Bootloader - Permite gravar um

bootloader no Arduino.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

15

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2

Programando para o Arduino: Conceitos e Sintaxe da Linguagem de Programao

Como j exposto, a linguagem de programao do Arduino baseada nas linguagens C/C++, preservando sua sintaxe na declarao de variveis, na utilizao de operadores, na manipulao de vetores, na conservao de estruturas, sendo tambm case sensitive [ver apndice C.5]. Contudo, ao invs de uma funo main(), o programa necessita de duas funes elementares: setup() e loop(). Pode-se dividir a linguagem de programao para Arduino em trs partes principais: as varives e constantes, as estruturas e, por ltimo, as funes.

3.2.1

Elementos de Sintaxe

X ; (ponto e Sintaxe:

vrgula) sinaliza a separarao e/ou nalizao de instrues.

instruo;
X {} (chaves) utilizada para delimitar um bloco de instrues referente a uma funo (setup,loop...), a um lao (for, while,...), ou ainda, a uma sentena condicional (if...else, switch case...). Sintaxe:

funo/lao/sentena_condicional { instrues; }
X // (linhas de comentrios simples) O contedo inserido aps // at o nal dessa linha, ignorado pelo compilador e considerado um comentrio. O propsito dos comentrios ajudar a entender (ou relembrar) como o programa funciona. Sintaxe:

instruo; // aqui, todo comentrio ignorado pelo compilador


X /* */ (bloco de comentrio) tem por nalidade comentar trechos de cdigo no programa. Assim como as linhas de comentrios simples, o bloco de comentrio geralmente usado

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

16

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

para resumir o funcionamento do que o programa faz e para comentar e descrever funes. Todo contedo inserido entre /* */ tambm ignorado pelo compilador. Sintaxe:

/* Use o bloco de comentrio para descrever, comentar ou resumir funes e a funcionalidade do programa. */
X #dene permite dar um nome a uma constante antes que o programa seja compilado. Constantes denidas no Arduino no ocupam espao na memria. O compilador substitui referncias a estas constantes pelo valor denido. No deve-se usar ponto-e-vrgula (;) aps a declarao #dene e nem inserir o operador de atribuio " = ", pois isso gerar erros na compilao. Sintaxe:

#define nome_constante constante


X #include usado para incluir outras bibliotecas no programa. Isto permite acessar um grande nmero de bibliotecas padro da linguagem C (de funes pr-denidas), e tambm as bibliotecas desenvolvidas especicamente para o Arduino. De modo similar ao #dene, no deve-se usar ponto-e-vrgula (;) no nal da sentena. Sintaxe:

#include <nome_da_biblioteca.h> ou #include "nome_da_biblioteca.h"


Exemplos de programas com a utilizao dessa sintaxe bsica sero apresentados posteriormente nesta apostila.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

17

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.2

Setup e Loop

Todo programa criado para o Arduino deve obrigatoriamente possuir duas funes para que o programa funcione corretamente: a funo setup( ) e a funo loop( ). Essas duas funes no utilizam parmetros de entrada e so declaradas como void. No necessrio invocar a funo setup() ou a funo loop(). Ao compilar um programa para o Arduino, o compilador ir, automaticamente, inserir uma funo main que invocar ambas as funes.

setup( )
A funo setup utilizada para inicializar variveis, congurar o modo dos pinos e incluir bibliotecas. Esta funo executada automaticamente uma nica vez, assim que o kit Arduino ligado ou resetado. Sintaxe:

void setup() { . : }

loop( )
A funo loop faz exatamente o que seu nome sugere: entra em looping (executa sempre o mesmo bloco de cdigo), permitindo ao programa executar as instrues que esto dentro desta funo. A funo loop() deve ser declarada aps a funo setup() Sintaxe:

void loop() { . : }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

18

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Variveis e Constantes

3.2.3

Variveis

Variveis so reas de memria, acessveis por nomes, que pode-se usar em programas para armazenar valores, como por exemplo, a leitura de um sensor conectado em uma entrada analgica. A seguir aparecem exemplos de alguns trechos de cdigo.

3.2.4

Tipos de dados

As variveis podem ser de vrios tipos: X boolean Variveis booleanas podem ter apenas dois valores: (falso). Sintaxe: Exemplo:

true (verdadeiro) ou false

boolean varivel = valor // valor = true ou false

boolean teste = false; ... if (teste == true) i++; ...

X byte Armazena um nmero de 8 bits sem sinal (unsigned ), de 0 a 255. Sintaxe: Exemplo:

byte variavel = valor;

byte x = 1; byte b = B10010; // B indica o formato binrio // B10010 = 18 decimal

X char um tipo de varivel que ocupa 1 byte de memria e armazena o cdigo ASCII de um caractere [ver apndice C.1]. Caracteres literais so escritos com ' '(aspas simples) como: 'N'. Para cadeia de caracteres utiliza-se   (aspas duplas), como : ABC.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

19

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Sintaxe:

Exemplo:

char variavel = 'caracater'; char variavel = frase;

char mychar = 'N'; // mychar recebe o valor 78, // Correspondente ao // caracter 'N' segundo a tabela ASCII

X int Inteiro o principal tipo de dado para armazenamento numrico capaz de armazenar nmeros de 2 bytes. Isto abrange a faixa de -32.768 a 32.767. Sintaxe: Exemplo:

int var = valor;

int ledPin = 13; //ledPin recebe 13 int x = -150; //x recebe -150

X unsigned int Inteiros sem sinal permitem armazenar valores de 2 bytes. Entretanto, ao invs de armazenar nmeros negativos, armazenam somente valores positivos abrangendo a faixa de 0 a 65.535. A diferena entre inteiros e inteiros sem sinal est no modo como o bit mais signicativo interpretado. No Arduino, o tipo int (que com sinal) considera que, se o bit mais signicativo 1, o nmero interpretado como negativo. Os tipos com sinal representam nmeros usando a tcnica chamada complemento de 2 [ver apndice C.8]. Sintaxe: Exemplo:

unsigned int var = val;

unsigned int ledPin = 13;

X long Variveis do tipo Long tm um tamanho ampliado para armazenamento de nmeros, sendo capazes de armazenar 32 bits (4 bytes), de -2.147.483,648 a 2.147.483.647. Sintaxe: Exemplo:

long variavel = valor;

long exemplo = -1500000000 long exemplo2 = 2003060000

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

20

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X unsigned long Longs sem sinal so variveis de tamanho ampliado para armazenamento numrico. Diferente do tipo long padro, esse tipo de dado no armazena nmeros negativos, abrangendo a faixa de 0 a 4.294.967.295. Sintaxe: Exemplo:

unsigned long variavel = valor;

unsigned long var = 3000000000;

X oat Tipo de varivel para nmeros de ponto utuante que possibilitam representar valores reais muito pequenos e muito grandes. Nmeros do tipo oat utilizam 32 bits e abrangem a faixa de -3,4028235E+38 a 3,4028235E+38. Sintaxe: Exemplo:

floar var = val;

float sensorCalbrate = 1.117;

X double Nmero de ponto utuante de preciso dupla. A implementao do double no Arduino , atualmente, a mesma do oat, sem ganho de preciso, ocupando 4 bytes tambm. Sintaxe: Exemplo:

double var = val;

double x = 1.117;

X array Um array (vetor) uma coleo de variveis do mesmo tipo que so acessadas com um ndice numrico. Sendo a primeira posio de um vetor V a de ndice 0 (V[0]) e a ltima de ndice n 1 (V[n-1]) para um vetor de n elementos. Um vetor tambm pode ser multidimensional (matriz), podendo ser acessado como: V [m][n], tendo m n posies. Assim, tem-se a primeira posio de V com ndice 0,0 (V[0][0]) e a ltima sendo m 1, n 1 (V [m 1][n 1]). Um array pode ser declarado sem especicar o seu tamanho.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

21

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Sintaxe:

Exemplo:

tipo_varivel tipo_varivel tipo_varivel tipo_varivel tipo_varivel tipo_varivel

var[]; var[] = valor; var[ndice] = valor; var[][]; var[][ndice] = valor; var[nd][nd] = valor;

int int int char int

var[6]; myvetor[] = {2, 4, 8, 3, 6}; vetor[6] = {2, 4, -8, 3, 2}; message[6] = "hello"; v[2][3] = {0 1 7 3 1 0}; int A[2][4] = {{2 7} {3 2 5 6}};

X string Strings so representadas como um vetor do tipo char e terminadas por null (nulo). Por serem terminadas em null (cdigo ASCII 0), permitem s funes (como Serial.print()) saber onde est o nal da string. De outro modo elas continuariam lendo os bytes subsequentes da memria que de fato no pertencem string. Isto signica que uma string deve ter espao para um caractere a mais do que o texto que ela contm. Sintaxe: Exemplo:

tipo_varivel var[ndice] = valor;

char char char char char

Str1[15]; Str2[5] = Str3[5] = Str4[ ] = Str5[5] =

{'m','e','g','a'}; {'m','e','g','a','\0'}; "arduino"; "mega";

Como apresentado no exemplo anterior, Str2 e Str5 precisam ter 5 caracteres, embora mega tenha apenas 4. A ltima posio automaticamente preenchida com o caractere null. Str4 ter o tamanho determinado automaticamente como 8 caracteres, um extra para o null. Na Str3 foi incluido explicitamente o caractere null (escrito como  \0). Na Str1 deniu-se uma string com 15 posies no inicializadas, lembrando que a ltima posio correspondente posio 15 reservada para o caracter null.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

22

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X void A palavra chave void usada apenas em declaraes de funes. Ela indica que a funo no deve enviar nenhuma informao de retorno funo que a chamou. Como exemplo de funes declaradas com retorno void tem-se as funes setup e loop. Sintaxe: Exemplo:

void nome_funo() void nome_funo(parametros)

void setup() { . : } void loop() { . : }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

23

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.5

Constantes

Constantes so nomes com valores pr-denidos e com signicados especcos que no podem ser alterados na execuo do programa. Ajudam a deixar o programa mais facilmente legvel. A linguagem de programao para o Arduino oferece algumas constantes acessveis aos usurios.

Constantes booleanas (verdadeiro e falso)


H duas constantes usadas para representar verdadeiro ou falsona linguagem Arduino: true (verdadeiro), e false (falso). X false false a mais simples das duas e denida como 0 (zero). X true true frequentemente denida como 1, o que correto, mas true tem uma denio mais ampla. Qualquer inteiro que no zero TRUE, num modo booleano. Assim, -1, 2 e -200, 70 so todos denidos como true.

HIGH e LOW
Quando se est lendo ou escrevendo em um pino digital h apenas dois valores que um pino pode ter: HIGH (alto) e LOW (baixo). X HIGH O signicado de HIGH (em referncia a um pino) pode variar um pouco dependendo se este pino uma entrada (INPUT) ou sada (OUTPUT). Quando um pino congurado como INPUT com a funo pinMode, e lido com a funo digitalRead, o microcontrolador considera como HIGH se a tenso for de 3 V ou mais. Um pino tambm pode ser congurado como um INPUT, e posteriormente receber um HIGH com um digitalWrite, isto vai levantar o resistor interno de 20 KOhms que vai manter a leitura do pino como HIGH a no ser que ela seja alterada para LOW por um circuito externo. Quando um pino congurado como OUTPUT, e denido como HIGH com o digitalWrite, ele ca com 5 V. Neste estado ele pode enviar corrente para, por exemplo, acender um LED que est conectado com um resistor em srie ao GND, ou a outro pino congurado como OUTPUT e denido como LOW. X LOW O signicado de LOW tambm pode variar dependendo do pino ser denido como INPUT ou OUTPUT. Quando um pino congurado como INPUT com a funo pinMode, e lido com a funo digitalRead, o microcontrolador considera como LOW se a tenso for de 2 V ou menos. Quando um pino congurado como OUTPUT, e denido como LOW, ele ca com 0 V. Neste estado ele pode drenar corrente para, por exemplo, acender um

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

24

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

LED que est conectado com um resistor em srie ao +5 Volts, ou a outro pino congurado como OUTPUT e denido como HIGH.

INPUT e OUTPUT
Pinos digitais podem ser congurados como INPUT e como OUTPUT. Mudar um pino de INPUT para OUTPUT com pinMode() muda drasticamente o seu comportamento eltrico. X INPUT Os pinos do Arduino (Atmega) congurados como INPUT com a funo pinMode() esto em um estado de alta impedncia [ver apndice C.12]. Pinos de entrada so usados para ler um sensor mas no para energizar um LED. X OUTPUT Pinos congurados como OUTPUT com a funo pinMode() esto em um estado de baixa impedncia. Isto signica que eles podem fornecer grandes quantidades de corrente para outros circuitos. Os pinos do Atmega podem fornecer (corrente positiva) ou drenar (corrente negativa) at 40 mA (milliamperes) de/para outros dispositivos ou circuitos. Isto faz com que eles sejam teis para energizar um LED mas inapropriados para a leitura de sensores. Pinos congurados como OUTPUT tambm podem ser danicados ou destruidos por curto-circuitos com o GND ou com outros pontos de 5 Volts. A quantidade de corrente fornecida por um pino do Atmega tambm no suciente para ativar muitos rels e motores e, neste caso, algum circuito de interface ser necessrio.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

25

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.6

Converso
converte de boolean int long oat double char boolean long oat double char boolean long int double char boolean long int oat char oat long boolean boolean(variavel) double double(variavel) oat oat(variavel) int int(variavel) char char(variavel) Para Sintaxe

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

26

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

int double char oat boolean int double long long(variavel)

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

27

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Estrutura

3.2.7

Estrutura de Controle

X if: estrutura utilizada com a nalidade de vericar se uma condio verdadeira. Em caso armativo, executa-se um bloco do cdigo com algumas instrues. Caso contrrio, o programa no executa o bloco de instrues e pula o bloco referente a essa estrutura. Sintaxe: Exemplo:

if (condio) { bloco de instruo; }

if (x > 120) int y = 60;

X if...else: permite um controle maior sobre o uxo de cdigo do que a sentena if bsica. Quando usa-se a estrutura if...else garante-se que uma das duas declaraes ser executada. Nunca sero executadas as duas ou nenhuma delas. Caso a condio do if seja satisfeita, executa-se o bloco de instrues referente ao if, caso contrrio, executa-se obrigatoriamente o bloco de instrues do else. Sintaxe: Exemplo:

If (condio) { bloco de instruo 1 } else{ bloco de instruo 2 }

if (x int else{ int x = }

<= 500) y = 35; y = 50 + x; 500;

X switch case: permite construir uma lista de casos dentro de um bloco delimitado por chaves. O programa verica cada caso com a varivel de teste e executa determinado bloco de instruo se encontrar um valor idntico. A estrutura switch case mais exvel que a estrutura if...else j que pode-se determinar se a estrutura switch deve continuar vericando se h valores idnticos na lista dos casos aps encontrar um valor idntico, ou no. Deve-se utilizar a sentena break aps a execuo do bloco de cdigo selecionado por um dos casos. Nessa situao, se uma sentena break encontrada, a execuo do

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

28

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

programa sai do bloco de cdigo e vai para a prxima instruo aps o bloco switch case. Se nenhuma condio for satisfeita o cdigo que est no default executado. O uso do default ou seja, de uma instruo padro, opcional no programa. Sintaxe: Exemplo:

switch (varivel) { case 1: instruo p/ quando varivel == 1 break; case 2: instruo p/ quando varievel == 2 break; default: instruo padro }

switch (x) { case 1: y = 100; break; case 2: y = 158; break; default: y = 0; }

X for: utilizado para repetir um bloco de cdigo delimitado por chaves. Um contador com incremento/decremento normalmente usado para controlar e nalizar o lao. A sentena for til para qualquer operao repetitiva. H trs partes no cabealho de um for : for (inicializao; condio; incremento)

inicializao ocorre primeiro e apenas uma vez. Cada vez que o lao executado, a condio vericada; se ela for verdadeira, o bloco de cdigo executado. Em seguida, o incremento realizado, e ento a condio testada novamente. Quando a condio se
A torna falsa o lao termina. Sintaxe: Exemplo:

for(inicializa;condio;incremento) { bloco de instrues; }

for (int i=0; i <= 255; i++){ char str[i] = i; . : }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

29

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X while: permite executar um bloco de cdigo entre chaves repetidamente por inmeras vezes at que a (condio) se torne falsa. Essa condio uma sentena booleana em C que pode ser vericada como verdadeira ou falsa. Sintaxe: Exemplo:

while(condio){ bloco de instrues; }

int i = 0; while(i < 51){ . : i++; }

X do...while: funciona da mesma maneira que o while, com a exceo de que agora a condio testada no nal do bloco de cdigo. Enquanto no while, se a condio for falsa, o bloco de cdigo no ser executado, no do...while ele sempre ser executado pelo menos uma vez. Sintaxe: Exemplo:

do {

bloco de instrues; } while (condio);

int x= 20; do { . : x--; } while (x > 0);

X continue: usado para saltar pores de cdigo em comandos como for do...while, Ele fora com que o cdigo avance at o teste da condio, saltando todo o resto. Sintaxe usando o while:

while.

Exemplo de trecho de cdigo usando for:

while (condio){ bloco de instrues; if (condio) continue; bloco de instrues; }

for (x=0;x<255;x++){ if(x>40 && x<120) continue; . : }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

30

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X break: utilizado para sair de um lao do...while, for, while ou switch condio normal de vericao. Sintaxe usando do...while:

case, se sobrepondo

Exemplo de trecho de cdigo usando while:

do{ bloco de instrues; if (condio) bloco de instrues; break; } while (condio);

x=1; while(x<255){ y = 12/x; if (y < x){ x = 0; break; } x++; }

X return: naliza uma funo e retorna um valor, se necessrio. Esse valor pode ser uma varivel ou uma constante. Sintaxe: Exemplo:

return; ou return valor;

if (x > 255) return 0; else return 1;

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

31

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.8

Operadores de Comparao

Os operadores de comparao, como o prprio nome sugere, permitem que se compare dois valores. Em qualquer das expresses na Tabela 7, o valor retornado sempre ser um valor booleano. possvel realizar comparaes entre nmeros, caracteres e booleanos. Quando se utiliza um caractere na comparao, o cdigo ASCII desse caractere considerado. Para comparar um array com outro tipo de dado, deve-se indicar uma posio do array para ser comparado. Tabela 3: Operadores de Comparao Operando Direito Operador Operando Esquerdo boolean == boolean int != int oat < oat double > double char <= char array[ ] >= array[ ]

Retorno

boolean

3.2.9

Operador de Atribuio

O operador de atribuio (ou operador de designao) armazena o valor direita do sinal de igual na varivel que est esquerda desse sinal. Esse operador tambm indica ao microcontrolador para calcular o valor da expresso direita e armazenar este valor na varivel que est esquerda.

x = y; (a varivel x armazena o valor de y) a = b + c; (calcula o resultado da soma e coloca na varivel a)

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

32

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.10

Operadores Aritmticos

Os operadores aritmticos so usados para realizar operaes matemticas.

Tabela 4: Operadores Aritmticos com int Operando Direito Operador Operando Esquerdo Retorno int + int * / % double oat char int char int

Tabela 5: Operadores Aritmticos com char / array[ ] Operando Direito Operador Operando Esquerdo Retorno int + char * / % double oat char int char char

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Tabela 6: Operadores Aritmticos com double / oat Operando Direito Operador Operando Esquerdo Retorno int + oat oat double double * / oat char double

3.2.11

Operadores Booleanos

Os operadores booleanos (ou operadores lgicos) so geralmente usados dentro de uma condio if ou while. Em geral, os operandos da expresso podem ser nmeros, expresses relacionais e sempre retornam como resposta um valor lgico: Verdadeiro (1) ou Falso (0). X && (e) exige que os dois operandos sejam verdadeiros para ser verdade, ou seja, a primeira condio e a segunda devem ser verdadeiras; X || (ou) para ser verdadeiro, basta que um dos operando seja verdade, ou seja, se a primeira condio ou a segunda ou ambas (so) verdadeira(s), ento o resultado verdadeiro; X !

(no) verdadeiro apenas quando o operando for falso.


Operadores de Bits

3.2.12

Os operadores de bits realizam operaes ao nvel de bits das variveis. Esses operadores operam somente em dados do tipo char ou int.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

34

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X & (operador AND bit a bit) usado entre duas variveis/constantes inteiras. Ele realiza uma operao entre cada bit de cada varivel de acordo com a seguinte regra: se os dois bits de entrada forem 1, o resultado da operao tambm 1, caso contrrio 0. Exemplo:

0 0 1 1 a 0 1 0 1 b ---------0 0 0 1 ( a & b)

& 1 0

0 0 0

1 1 0

X | (operador OR bit a bit) realiza operaes com cada bit de duas variveis conforme a seguinte regra: o resultado da operao 1 se um dos bits de entrada for 1, caso contrrio 0. Exemplo:

0 0 1 1 0 1 0 1 ---------0 1 1 1

c d ( c | d )

| 1 0

0 1 0

1 1 1

X  (operador XOR bit a bit) Conhecido como Exclusive or (ou exclusivo), esse operador realiza uma operao entre cada bit de cada varivel de acordo com a seguinte regra: se os dois bits de entrada forem diferentes, o resultado desta operao 1 , caso contrrio, retorna 0. Exemplo:

0 0 1 1 0 1 0 1 ---------0 1 1 0

e f ( e ^ f )

 1 0

0 1 0

1 0 1

X  (operador de bits NOT) diferente dos operadores AND, OR e XOR, este operador aplicado apenas sobre um operando, retornando o valor inverso de cada bit. Exemplo:

0 1 ---1 0

g (~g)
0 1

 1 0

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

35

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X < < (deslocamento esquerda) Desloca para a esquerda os bits do operando esquerdo conforme o valor dado pelo operando direito. Exemplo:

int a = 3; int x = a << 2; 0 0 0 0 1 1 0 1 1 0 0 0 a a << 3

byte 00000001 00000101

<< 2 3

retorno 00000100 00101000

X > > (deslocamento direita) Desloca, para a direita, os bits do operando esquerdo conforme o valor dado pelo operando direito. Exemplo:

int b = 40; int y = b >> 3; 0 1 0 1 0 0 0 0 0 0 0 1 0 1 b b >> 3


byte 00001000 00001001 >> 2 3 retorno 00000010 00000001

3.2.13

Operadores Compostos

Os operadores compostos consistem em um recurso de escrita reduzida provido pela linguagem C, havendo sempre a possibilidade de obter-se o resultado equivalente atravs do uso de operadores simples.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

36

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Incremento e Decremento
Os incrementos (++) e decrementos (- -) podem ser colocados antes ou depois da varivel a ser modicada. Se inseridos antes, modicam o valor antes da expresso ser usada e, se inseridos depois, modicam depois do uso. X ++ (incremento) aumenta o valor de variveis em uma unidade; Exemplo:

int x = 2; int var = ++x;


o valor de var ser 3 e o de x ser 3.

x = 2; var = x++;
o valor de var ser 2 e o de x ser 3 .

X - - (decremento) diminui o valor de variveis em uma unidade; Exemplo:

int x = 7; int var = --x;


o valor de var ser 6 e o de x ser 6. X += (adio Exemplo:

x = 7; var = x--;
o valor de var ser 7 e o de x ser 6 .

composta) realiza a adio de uma varivel com outra constante ou varivel.


x = 2; x += 4;
x passa a valer 6

x += y;

equivale expresso x = x + y X -= (subtrao rivel. Exemplo:

composta) realiza a subtrao de uma varivel com outra constante ou va-

x -= y;

x = 7; x -= 4;
x passa a valer 3

equivale expresso x = x - y

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

37

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X *= (multiplicao ou varivel. Exemplo:

composta) realiza a multiplicao de uma varivel com outra constante

x *= y;

x = 8; x *= 2;
x passa a valer 16

equivale expresso x = x * y X /= (diviso Exemplo:

composta) realiza a diviso de uma varivel com outra constante ou varivel.


x = 10; x /= 2;
x passa a valer 5

x /= y;

equivale expresso x = x / y

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

38

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Funes

3.2.14

Entrada e sada digital

X pinMode( ) Congura o pino especicado para que se comporte como uma entrada ou como uma sada. Deve-se informar o nmero do pino que deseja-se congurar e em seguida se o pino ser uma entrada (INPUT) ou uma sada (OUTPUT). Sintaxe:

pinMode(pino, modo);

X digitalWrite( ) Escreve um valor HIGH ou LOW em um pino digital. Se o pino foi congurado como uma sada, sua tenso ser: 5V para HIGH e 0V para LOW. Se o pino est congurado como uma entrada, HIGH levantar o resistor interno de 20KOhms e LOW rebaixar o resistor. Sintaxe:

digitalWrite(pino, valor);

X digitalRead( ) L o valor de um pino digital especicado e retorna um valor HIGH ou LOW. Sintaxe:

int digitalRead(pino);

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

39

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

/* Exemplo de funo sobre de Entrada e Sada Digital */ int ledPin = 13; // LED conectado ao pino digital 13 int inPin = 7; // boto conectado ao pino digital 7 int val = 0; // varivel para armazenar o valor lido void setup() { pinMode(ledPin, OUTPUT); pinMode(inPin, INPUT); }

// determina o pino digital 13 como uma sada // determina o pino digital 7 como uma entrada

void loop() { digitalWrite(ledPin, HIGH); val = digitalRead(inPin); digitalWrite(ledPin, val); }

// acende o LED // l o pino de entrada // acende o LED de acordo com o pino de entrada

Essa funo transfere para o pino 13, o valor lido no pino 7 que uma entrada.

3.2.15

Entrada e sada analgica

X analogWrite( ) - PWM (Pulse Width Modulation ou Modulao por Largura de Pulso) um mtodo para obter sinais analgicos com sinais digitais. Essa funo, basicamente, dene o valor de um sinal analgico. Ela pode ser usada para acender um LED variando o seu brilho, ou controlar um motor com velocidade varivel. Depois de realizar um analogWrite(), o pino gera uma onda quadrada estvel com o ciclo de rendimento especicado at que um analogWrite(), um digitalRead() ou um digitalWrite() seja usado no mesmo pino. Em kits Arduino com o chip ATmega168, esta funo est disponvel nos pinos 3,5,6,9,10 e 11. Kits Arduino mais antigos com um ATmega8 suportam o analogWrite() apenas nos pinos 9,10 e 11. As sadas PWM geradas pelos pinos 5 e 6 tero rendimento de ciclo acima do esperado. Isto se deve s interaes com as funes millis() e delay(), que compartilham o mesmo temporizador interno usado para gerar as sadas PWM. Para usar esta funo deve-se informar o pino ao qual deseja escrever e em seguida informar um valor entre 0 (pino sempre em 0V) e 255 (pino sempre em +5V). Sintaxe:

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

40

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

analogWrite(pino, valor);

X analogRead( ) L o valor de um pino analgico especicado. O kit Arduino contm um conversor analgico-digital de 10 bits com 6 canais. Com isto ele pode digitalizar tenses de entrada entre 0 e 5 Volts, em valores inteiros entre 0 e 1023. Isto permite uma resoluo entre leituras de 5 Volts / 1024 ou 0,0049 Volts (4,9 mV) por unidade do valor digitalizado. Sintaxe:

int analogRead(pino);

/* Exemplo de funo sobre Entrada e Sada Analgica */ int ledPin = 9; int analogPin = 3; int val = 0; // LED conectado ao pino digital 9 // potencimetro conectado ao pino analgico 3 // varivel para armazenar o valor lido

void setup() { pinMode(ledPin, OUTPUT); }

// pr-determina o pino como sada

void loop() { val = analogRead(analogPin); analogWrite(ledPin, val/4); }

// l o pino de entrada //

Torna o brilho de um LED proporcional ao valor lido em um potencimetro.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

41

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.16

Entrada e sada avanada

X pulseIn( ) L um pulso (tanto HIGH como LOW) em um determinado pino. Por exemplo, se o valor for HIGH, a funo pulseIn() espera que o pino tenha o valor HIGH, inicia uma cronometragem, e ento espera que o pino v para LOW e pra essa cronometragem. Por m, essa funo retorna a durao do pulso em microsegundos. Caso nenhum pulso iniciar dentro de um tempo especicado (a determinao desse tempo na funo opcional), pulseIn( ) retorna 0. Esta funo funciona com pulsos entre 10 microsegundos e 3 minutos. Sintaxe:

pulseIn(pino, valor) ou pulseIn(pino, valor, tempo)

int pin = 7; unsigned long duration; void setup() { pinMode(pin, INPUT); } void loop() { duration = pulseIn(pin, HIGH); }

X shiftOut( ) Envia um byte de cada vez para a sada. Pode comear tanto pelo bit mais signicativo (mais esquerda) quanto pelo menos signicativo (mais direita). Os bits vo sendo escritos um de cada vez em um pino de dados em sincronia com as alteraes de um pino de clock que indica que o prximo bit deve ser escrito. Isto um modo usado para que os microcontroladores se comuniquem com sensores e com outros microcontroladores. Os dois dispositivos mantm-se sincronizados a velocidades prximas da mxima, desde que ambos compartilhem a mesma linha de clock. Nesta funo deve ser informado o nmero referente ao pino no qual sair cada bit (pino de dados). Em seguida, declara-se o nmero do pino que ser alterado quando um novo bit dever sair no primeiro pino (pino de clock). Depois, informa-se qual a ordem de envio dos bits. Essa ordem pode ser MSBFIRST (primeiro o mais signicativo ) ou LSBFIRST (primeiro o menos signicativo) [ver apndice C.17]. Por ltimo, declara-se a informao que ser enviada para a sada. Obs: O pino de dados e o funo pinMode().

pino de clock devem ser declarados como sada (OUTPUT) pela

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

42

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Sintaxe:

shiftOut(pino de dados, pino de clock, ordem, informao);

Exemplo:

int latchPin = 8; int clockPin = 12; int dataPin = 11; void setup() { pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { for (int j = 0; j < 256; j++) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, j); digitalWrite(latchPin, HIGH); delay(1000); } }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

43

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.17

Tempo

X millis( ) Retorna o nmero de milisegundos desde que o kit Arduino comeou a executar o programa. Este nmero voltar a zero depois de aproximamente 50 dias. Sintaxe:

unsigned long tempo; void loop { . : } tempo = millis()

X delay( ) Suspende a execuo do programa pelo tempo (em milisegundos) especicado (1 segundo = 1000 milisegundos). Sintaxe:

delay(tempo);
X micros( ) Retorna o nmero de microsegundos desde que o kit Arduino comeou a executar o programa. Este nmero voltar a zero depois de aproximamente 70 minutos (1 segundo = 1000 milisegundos = 1 000 000 microsegundos). Sintaxe:

unsigned long tempo; void loop { . : tempo = micros(); . : }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

44

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Exemplo:

/* Este programa mostra uma aplicao das funes millis( ) e delay( ) * Para usar a funo micros( ), basta substituir millis( ) por micros ( ) */ unsigned long time; void setup(){ Serial.begin(9600); } void loop(){ Serial.print("Time: "); time = millis(); Serial.println(time); //imprime o tempo desde que o programa comeou delay(1000); }
X delayMicroseconds( ) Suspende a execuo do programa pelo tempo (em microsegundos) especicado. Atualmente, o maior valor que produzir uma suspenso precisa da ordem de 16383. Para suspenses maiores que milhares de microsegundos, deve-se utilizar a funo delay( ). Sintaxe:

delayMicroseconds(tempo);
Exemplo:

int outPin = 8; void setup() { pinMode(outPin, OUTPUT); }

void loop() { digitalWrite(outPin, HIGH); delayMicroseconds(50); digitalWrite(outPin, LOW); delayMicroseconds(50); }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

45

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

3.2.18

Comunicao serial

X Serial.begin ( ) Ajusta o taxa de transferncia em bits por segundo para uma transmisso de dados pelo padro serial. Para comunicao com um computador utiliza-se uma destas taxas: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 57600, 115200. Pode-se, entretanto, especicar outras velocidades, por exemplo, para comunicao atravs dos pinos 0 e 1 com um componente que requer uma taxa especca. Sintaxe:

Serial.begin(taxa); Serial1.begin(taxa); Serial12.begin(taxa); Serial13.begin(taxa);


Exemplo para Arduino Mega:

void setup(){ /* Abre a porta serial 1, 2, 3 e 4 * e ajusta a taxa das portas para * 9600 bps, 38400 bps, 19200 bps * e 4800 bps respectivamente */ Serial1.begin(9600); Serial2.begin(38400); Serial3.begin(19200); Serial4.begin(4800); . : } void loop() {}

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

46

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X int Serial.available( ) Retorna o nmero de bytes (caracteres) disponveis para leitura no buer da porta serial. O buer serial pode armazenar at 128 bytes. [ver apndice C.4] Sintaxe:

Serial.available();
Exemplo

if (Serial.available()) { int inByte = Serial.read(); Serial1.print(inByte, BYTE); } /* l na porta 1 e * envia para a porta 0: */ if (Serial1.available()) { int inByte = Serial1.read(); Serial.print(inByte, BYTE); }

void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() { /* l na porta 0 * e envia para a porta 1: */ }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

47

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X int Serial.read( ) Retorna o primeiro byte disponvel no buer de entrada da porta serial (ou -1 se no hover dados mo buer) Sintaxe Exemplo

variavel = Serial.read( )

int incomingByte = 0; // para entrada serial void setup() { Serial.begin(9600); } void loop() { // envia dados apenas //quando recebe dados: if (Serial.available() > 0) { // l o primeiro byte disponvel: incomingByte = Serial.read(); // imprime na tela o byte recebido: Serial.print("Eu recebi: "); Serial.println(incomingByte, DEC); } }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

48

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X Serial.ush( ) Esvazia o buer de entrada da porta serial. De modo geral, esta funo apaga todos os dados presentes no buer de entrada no momento de execuo da mesma. Sintaxe: Exemplo:

Serial.flush();

void setup() {( Serial.begin(9600); } void loop(){ Serial.flush(); /* Apaga o contedo * do buffer de entrada */ . : }

X Serial.print( ) Envia dados de todos os tipos inteiros, incluindo caracteres, pela porta serial. Ela no funciona com oats, portanto necessrio fazer uma converso para um tipo inteiro. Em algumas situaes til multiplicar um oat por uma potncia de 10 para preservar (ao menos em parte) a informao fracionria. Atente-se para o fato de que os tipos de dados sem sinal, char e byte iro gerar resultados incorretos e atuar como se fossem do tipo de dados com sinal. Este comando pode assumir diversas formas:

Serial.print(valor) sem nenhum formato especicado: imprime o valor como um nmero


decimal em uma string Por exemplo:

ASCII.

int b = 79; Serial.print(b);

(envia pela porta serial o cdigo 7 e o cdigo ASCII do 9).

ASCII do

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

49

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

CII.

Serial.print(valor, DEC): imprime valor como um nmero decimal em uma string AS-

Por exemplo:

int b = 79; Serial.print(b, DEC);

(imprime a string

ASCII "79").

Serial.print(valor, HEX): imprime valor como um nmero hexadecimal em uma string

ASCII.

Por exemplo:

int b = 79; Serial.print(b, HEX);

(imprime a string "4F").

Serial.print(valor, OCT): imprime valor como um nmero octal em uma string ASCII.
Por exemplo:

int b = 79; Serial.print(b, OCT);

(imprime a string "117")

Por exemplo:

Serial.print(valor, BIN): imprime valor como um nmero binrio em uma string ASCII.
(imprime a string "1001111").

int b = 79; Serial.print(b, BIN);

Serial.print(valor, BYTE): imprime valor como um nico byte. Por exemplo:


int b = 79; Serial.print(b, BYTE);
(envia pela porta serial o valor 79, que ser mostrado na tela de um terminal como um caractere "0", pois 79 o cdigo ASCII do "0").

Serial.print(str): se str for uma string ou um array de chars, imprime uma string ASCII.
Por exemplo:

Serial.print("Arduino Mega");

(imprime a string "Arduino Mega")

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

50

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Exemplo:

int analogValue; void setup() { serial.begin(9600); } void loop() { analogValue = analogRead(0); serial.print(analogValue); serial.print("\t"); serial.print(analogValue, DEC); serial.print("\t"); serial.print(analogValue, HEX); serial.print("\t"); serial.print(analogValue, OCT); serial.print("\t"); serial.print(analogValue, BIN); serial.print("\t"); // // // // // // // // // // imprime imprime Imprime imprime imprime imprime imprime imprime imprime imprime um um um um um um um um um um ASCII tab valor tab ASCII tab ASCII tab ASCII tab decimal - o mesmo que "DEC" decimal hexadecimal octal binrio

serial.print(analogValue/4, BYTE); /* imprime como um byte nico e adiciona um "cariage return" * (divide o valor por 4 pois analogRead() retorna nmero de 0 1023, * mas um byte pode armazenar valores somente entre 0 e 255 */ serial.print("\t"); } delay(1000); // imprime um tab // espera 1 segundo para a prxima leitura

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

51

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

X Serial.println(data) Esta funo envia dados para a porta serial seguidos por um carriage return (ASCII 13, ou '\r') e por um caractere de linha nova (ASCII 10, ou '\n'). Este comando utiliza os mesmos formatos do Serial.print( ) :

Serial.println(valor): imprime o valor de um nmero decimal em uma string seguido por um carriage return e um linefeed.

ASCII

Serial.println(valor, DEC): imprime o valor de um nmero decimal em uma string

ASCII seguido por um carriage return e um linefeed.

Serial.println(valor, HEX): imprime o valor de um nmero hexadecimal em uma string

ASCII seguido por um carriage return e um linefeed.

Serial.println(valor, OCT): imprime o valor de um nmero octal em uma string ASCII


seguido por um carriage return e um linefeed.

Serial.println(valor, BIN): imprime o valor de um nmero binrio em uma string ASCII


seguido por um carriage return e um linefeed.

Serial.println(valor, BYTE): imprime o valor de um nico byte seguido por um carriage


return e um linefeed.

Serial.println(str): se str for uma string ou um array de chars, imprime uma string

ASCII seguido por um carriage return e um linefeed.

Serial.println(): imprime apenas um carriage return e um linefeed.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

52

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Exemplo:

/* Entrada Analgica l uma entrada analgica no pino analgico 0 e imprime o valor na porta serial. */ int analogValue = 0; // varivel que armazena o valor analgico

void setup() { // abre a porta serial e justa a velocidade para 9600 bps: Serial.begin(9600); } void loop() { analogValue = analogRead(0); // l o valor analgico no pino 0:

/* imprime em diversos formatos */ Serial.println(analogValue); // imprime um ASCII decimal - o mesmo que "DEC" Serial.println(analogValue, DEC); // imprime um ASCII decimal Serial.println(analogValue, HEX); // imprime um ASCII hexadecimal Serial.println(analogValue, OCT); // imprime um ASCII octal Serial.println(analogValue, BIN); // imprime um ASCII binrio Serial.println(analogValue/4, BYTE); // imprime como um byte nico delay(1000);// espera 1 segundo antes de fazer a prxima leitura:

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

53

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

4
4.1

Montagens Prticas
Imprimindo uma mensagem no LCD

Componentes: 1 LCD, 1 potencimetro


Neste exemplo ser mostrado como conectar corretamente um LCD ao Arduino, alm de imprimir o famoso Hello World! na tela do LCD atravs da funo lcd.print(), contida na biblioteca LiquidCrystal.h.

Sugesto de montagem
Para conectar o LCD ao Arduino, conecte os seguintes pinos: X pino VSS(1) do LCD ao pino GND X pino VDD(2) do LCD ao pino 5V X pino RS(4) do LCD ao pino 12 X pino RW(5) do LCD ao pino GND X pino Enable(6) do LCD ao pino 11 X pino D4(11) do LCD ao pino 5 X pino D5(12) do LCD ao pino 4 X pino D6(13) do LCD ao pino 3 X pino D7(14) do LCD ao pino 2 Deve-se conectar tambm o potencimetro de 10K Ohms aos pinos 5V, GND e V0(3) do LCD, conforme sugere as Figuras 4 e 5:

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

54

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 4: Montagem do Circuito

Cdigo fonte
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.print("Hello World!"); } void loop() { lcd.setCursor(0, 1); lcd.print(millis()/1000); lcd.print("s"); }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

55

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 5: Esquemtico Eletrnico


4.2 Alterando a frequncia com que o LED pisca

Componentes: 1 Potnciometro, 1 LED


Este projeto muito simples e tratar da utilizao do potencimetro, que um componente que possui resistncia eltrica ajustvel. A frequncia com que o LED pisca vai depender diretamente do ajuste do potencimetro.

Sugesto de montagem
Conecte um potencimetro na porta 0 e um LED na porta 11, com um resistor de 330 Ohms, como mostra as Figuras 6 e 7.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

56

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 6: Montagem do Circuito

Cdigo-fonte
int potPin = 0; int ledPin = 11; int val = 0; void setup() { pinMode(ledPin, OUTPUT); } void loop() { val = analogRead(potPin); digitalWrite(ledPin, HIGH); delay(val); digitalWrite(ledPin, LOW); delay(val); }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

57

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 7: Esquemtico Eletrnico


4.3 Semforo de Carros e Pedestres

Componentes: 2 LEDs vermelho, 2 LEDs verdes, 1 LED amarelo, 1 push-button


Neste exemplo, ser simulado o trnsito em uma determinada rua de Campo Grande, e desejase controlar com segurana e ecincia o uxo de carros e de pedestres. Elabore um projeto para implantao de dois semforos nessa rua: um que controle a circulao de carros e outro que garanta a segurana dos pedestres para atravessar a rua, como mostra a Figura 8, obedecendo as seguintes regras: X quando o sinal do semforo de carros estiver com as cores verde ou amarelo acesas, o sinal vermelho de pedestres deve estar aceso. X quando o sinal vermelho do semforo de carros estiver aceso, somente o sinal verde de pedestres deve car aceso. X caso o boto seja apertado, a preferncia de passagem pela rua do pedestre.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

58

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Sugesto de montagem
Para o semforo de carros: conecte um LED verde na porta 10, um LED amarelo na porta 11 e um LED vermelho na porta 12; Para o semforo de pedestres: conecte um LED verde na porta 8, um LED vermelho na porta 9 e um push-button na porta 2, como mostra as Figuras 8 e 9. Dica: em seu programa, todos os LEDs devem estar congurados como sada e o boto deve estar congurado como entrada.

Figura 8: Montagem do Circuito

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

59

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 9: Esquemtico Eletrnico

Cdigo-Fonte
int scVerde = 10; int scAmarelo = 11; int scVermelho = 12; int spVerde = 8; int spVermelho = 9; int ledState = LOW; long previousMillis = 0; long interval = 5000; int ctrlLuz = 0; void setup() { Serial.begin(9600); pinMode(scVerde,OUTPUT); pinMode(scAmarelo,OUTPUT);

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

60

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

pinMode(scVermelho,OUTPUT); pinMode(spVerde,OUTPUT); pinMode(spVermelho,OUTPUT); pinMode(2, INPUT); // Botao

void loop() { unsigned long currentMillis = millis(); int sensorValue = digitalRead(2); if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; switch(ctrlLuz) { case 0 : // Verde digitalWrite(scVermelho,LOW); digitalWrite(scVerde,HIGH); digitalWrite(spVerde,LOW); digitalWrite(spVermelho,HIGH); ctrlLuz++; interval = 15000; break; case 1 : // amarelo digitalWrite(scVerde,LOW); digitalWrite(scAmarelo,HIGH); digitalWrite(spVerde,LOW); digitalWrite(spVermelho,HIGH); ctrlLuz++; interval = 1000; break; case 2 : // Vermelho digitalWrite(scAmarelo,LOW); digitalWrite(scVermelho,HIGH); digitalWrite(spVermelho,LOW); digitalWrite(spVerde,HIGH); interval = 7000; ctrlLuz = 0; break; }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

61

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

if((sensorValue == 1) && (ctrlLuz == 1)) { interval = 2000; Serial.print("Sensor "); Serial.println(sensorValue, DEC); }

4.4

Termmetro

Componentes: 1 Sensor de Temperatura DHT11, 2 LEDs vermelhos, 2 LEDs amarelos, 2 LEDs verdes, 1 Buzzer
possvel construir um termmetro utilizando o Kit Arduino, LEDs e um sensor de temperatura. Dependendo do valor da temperatura ambiente, ele acende n LEDs que correspondem a temperatura lida. Para ilustrar melhor, imagine um circuito com 20 LEDs onde cada LED correspondesse a 1o C . Caso o sensor leia uma temperatura de 15o C em uma sala, isso signica que os 15 primeiros LEDs devero acender. Como essa escala utiliza muitos LEDS, implemente um termmetro que utilize 6 LEDs onde cada um representa uma determinada faixa de temperatura. Para incrementar o projeto, faa com que quando o termmetro indicar uma situao crtica de temperatura no ambiente, ou seja, quando todos os LEDs estiverem acesos, um Buzzer seja acionado, indicando uma alta temperatura ambiente. Seu projeto deve seguir o seguinte padro:

X temperatura maior que 15o C : acenda o primeiro LED verde. Caso contrrio, mantenha-o apagado. X temperatura maior que 20o C : acenda o segundo LED verde. Caso contrrio, mantenha-o apagado. X temperatura maior que 25o C : acenda o primeiro LED amarelo. Caso contrrio, mantenha-o apagado. X temperatura maior que 30o C : acenda o segundo LED amarelo. Caso contrrio, mantenha-o apagado. X temperatura maior que 40o C : acenda o primeiro LED vermelho. Caso contrrio, mantenhao apagado. X temperatura maior que 50o C : acenda o segundo LED vermelho. Caso contrrio, mantenhao apagado.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

62

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Lembre-se de que caso todos os LEDs estiverem ativos, isso signica que o termmetro detectou uma temperatura crtica no ambiente e um alarme deve ser soado.

Sugesto de montagem
Conecte um LED verde na porta 8 e outro na porta 9; um LED amarelo na porta 10 e outro na porta 11; e por m, um LED vermelho na porta 12 e um outro na porta 13. Conecte na porta 6, o Buzzer e o Sensor de temperatura DHT11 na porta 2. Observe a Figura 10.

Figura 10: Montagem do Circuito

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

63

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Cdigo-Fonte
#include <DHT.h> #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); float temperatura, umidade; int int int int int int int Buzzer led1 = led2 = led3 = led4 = led5 = led6 = = 6; 8; 9; 10; 11; 12; 13;

void setup(){ Serial.begin(9600); pinMode(Buzzer, OUTPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); dht.begin(); } void loop(){ temperatura = dht.readTemperature(); umidade = dht.readHumidity(); Serial.print("Umidade (%): \t"); Serial.println(umidade); Serial.print("Temperatura (oC): \t"); Serial.println(temperatura);

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

64

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

if (temperatura > 15) digitalWrite(led1, HIGH); else digitalWrite(led1, LOW); if (temperatura > 20) digitalWrite(led2, HIGH); else digitalWrite(led2, LOW); if (temperatura > 25) digitalWrite(led3, HIGH); else digitalWrite(led3, LOW); if (temperatura > 30) digitalWrite(led4, HIGH); else digitalWrite(led4, LOW); if (temperatura > 40) digitalWrite(led5, HIGH); else digitalWrite(led5, LOW); if (temperatura > 50 ){ digitalWrite(led6, HIGH); analogWrite(Buzzer, 80); } else { digitalWrite(led6, LOW); analogWrite(Buzzer, 0); } delay(1000);

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

65

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 11: Esquemtico Eletrnico


4.5 Piano

Componentes: 3 Botes, 3 LEDs, 1 Buzzer


possvel fazer barulho, ou at mesmo tocar notas musicais com o kit arduino, atravs de um componente chamado buzzer. O buzzer no tem capacidade suciente para tocar msicas, mas consegue produzir apitos, teis em sirenes e alarmes, por exemplo. Implemente seu projeto de forma que quando pressionado um boto, toque uma nota musical e acenda um LED. Como tem-se apenas 3 botes e sete notas musicais, cada boto vai referenciar a mais de uma nota musical, logo, assim tambm ser com os LEDs.

Obs: As notas musicais so: d, r, mi, fa, sol, la, si.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

66

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Sugesto de montagem
Conecte cada um dos botes nas portas 2, 3 e 4. Conecte o dos LEDs, nas portas 11, 12 e 13. Observe as Figuras 12 e 13.

Buzzer na porta 10 e cada um

Figura 12: Montagem do Circuito

Cdigo-fonte
int int int int int int ledPin1 = 13; ledPin2 = 12; ledPin3 = 11; Botao1 = 4; Botao2 = 3; Botao3 = 2;

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

67

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

int int int int int

Buzzer = 10; EstadoBotao1 = 0; EstadoBotao2 = 0; EstadoBotao3 = 0; Tom = 0;

void setup() { pinMode(Buzzer, OUTPUT); pinMode(ledPin1, OUTPUT); pinMode(Botao1, INPUT); pinMode(ledPin2, OUTPUT); pinMode(Botao2, INPUT); pinMode(ledPin3, OUTPUT); pinMode(Botao3, INPUT); } void loop(){ EstadoBotao1 = digitalRead(Botao1); EstadoBotao2 = digitalRead(Botao2); EstadoBotao3 = digitalRead(Botao3); if (EstadoBotao1 && !EstadoBotao2 && !EstadoBotao3) { Tom = 400; digitalWrite(ledPin1, HIGH); } if (EstadoBotao2 && !EstadoBotao1 && !EstadoBotao3) { Tom = 700; digitalWrite(ledPin3, HIGH); } if (EstadoBotao3 && !EstadoBotao2 && !EstadoBotao1) { Tom = 1000; digitalWrite(ledPin2, HIGH); } if (Tom > 0) { digitalWrite(Buzzer, HIGH); delayMicroseconds(Tom); digitalWrite(Buzzer, LOW); delayMicroseconds(Tom); Tom = 0; } digitalWrite(ledPin1, LOW);

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

68

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, LOW);

Figura 13: Esquemtico Eletrnico

4.6

Alarme

Componentes: 1 Sensor Ultrassnico, Buzzer, 1 LED


Hoje em dia comum encontrar sensores de distncia instalados na traseira de carros para auxiliarem os motoristas na hora de estacionarem. Esses sensores detectam objetos que esto em uma determinada distncia e caso o sistema decide que o objeto est muito perto do carro, ele emite um beep. Os sensores de distncia tem vrias aplicaes no meio comercial e industrial, como por exemplo, em residncias e em escritrios para indicar a presena de algum no ambiente. Alguns desses sensores emitem um beep e outros acendem uma luz. Implemente um projeto onde o sensor ultra-sonico acenda um LED, ou emita um beep, quando um objeto estiver a menos de 20 cm do seu raio de alcance.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

69

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Sugesto de montagem
Conecte o LED no pino 11 e o Buzzer no pino 10. Para conectar o sensor ultrassnico, observe as Figuras 14 e 15

Figura 14: Montagem do Circuito

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

70

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Cdigo-fonte
#include "Ultrasonic.h" int int int int echoPin = 13; trigPin = 12; LED = 11; buzzer = 10;

Ultrasonic ultrasonic(trigPin, echoPin); int distancia; void setup() { pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT); pinMode(LED, OUTPUT); pinMode(buzzer, OUTPUT); } void loop() { digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); distancia = ultrasonic.Ranging(CM); if(distancia < 20){ digitalWrite(LED, HIGH); analogWrite(buzzer, 80); } else{ digitalWrite(LED, LOW); analogWrite(buzzer, 0); }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

71

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 15: Esquemtico Eletrnico


4.7 Projeto Alarme Multipropsito

nosidade (LDR), 1 Sensor de Temperatura DHT11, 1 LED Alto Brilho, 1 Buzzer

Componentes: 2 LEDs Verdes, 2 LEDs Amarelos, 2 LEDs Vermelhos, 1 Sensor de Lumi-

Neste exemplo deve-se ter um cuidado maior, por ele ser mais complexo que os anteriores. Neste projeto, 3 LEDs (1 de cada cor) correspondem temperatura e os outros 3 correspondem luminosidade. Deve-se implementar o projeto da seguinte forma: X A medida que a temperatura for aumentando vai acendendo os LEDs correspondentes ela, um por um, ento se a temperatura estiver alta os 3 LEDs devem estar acesos e um alarme deve soar. X Se a luminosidade do ambiente estiver alta os 3 LEDs correspondentes ela devem estar acesos, a medida que a luminosidade for cando fraca, ou seja, o ambiente for cando escuro, os LEDs vo apagando um por um, at que todos os LEDs estejam apagados indicando falta total de luminosidade no ambiente, nesse momento o LED de alto brilho deve acender.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

72

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Sugesto de montagem
Conecte os LEDs nos pinos de 5 11, o Buzzer no pino 2, o sensor de temperatura DHT11 no pino 12 e o sensor de luminosidade na porta 0. Observe as Figuras 18 e 17

Figura 16: Montagem do Circuito

Cdigo-fonte
#include <DHT.h> #define DHTPIN 12 #define DHTTYPE DHT11 DHT dht(DHTPIN,DHTTYPE);

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

73

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

int int int int int int int int int

LDR = 0; Buzzer = 2; led1 = 5; led2 = 6; led3 = 7; led4 = 8; led5 = 9; led6 = 10; ledAB = 11;

int ValorLDR = 0; float ValorDHT11 = 0; void setup(){ pinMode(Buzzer, OUTPUT); pinMode(LDR, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(ledAB, OUTPUT); Serial.begin(9600); dht.begin(); } void loop(){ ValorLDR = analogRead(LDR); ValorDHT11 = dht.readTemperature(); Serial.print("Valor da Temperatura = "); Serial.println(ValorDHT11); if (ValorDHT11 > 10) digitalWrite(led1, HIGH); else digitalWrite(led1, LOW); if (ValorDHT11 > 20) digitalWrite(led2, HIGH); else digitalWrite(led2, LOW);

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

74

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

if (ValorDHT11 > 30) { digitalWrite(led3, HIGH); analogWrite(Buzzer, 80); } else { digitalWrite(led3, LOW); analogWrite(Buzzer, 0); } Serial.print("LDR "); Serial.println(ValorLDR); if (ValorLDR > 600) digitalWrite(led6, HIGH); else digitalWrite(led6, LOW); if (ValorLDR > 500) digitalWrite(led5, HIGH); else digitalWrite(led5, LOW); if (ValorLDR > 450) { digitalWrite(led4, HIGH); digitalWrite(ledAB, LOW); } else { digitalWrite(led4, LOW); digitalWrite(ledAB, HIGH); }

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

75

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 17: Esquemtico Eletrnico


4.8 Porto Eletrnico

Componentes: 1 servo-motor, 1 sensor de distncia ultrassnico, 1 buzzer, barra retangular de cartolina ou papelo.
Neste exemplo ser utilizado um servo-motor para realizar a elevao de uma barra retangular simulando o funcionamento de um porto eletrnico. Alm do servo-motor, ser utilizado tambm um sensor de distncia ultrassnico para acionar o servo-motor caso a distncia seja menor que

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

76

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

determinado limite em centmetros. Alm disso, um alarme deve soar quando o porto fechar. O funcionamento do circuito acontece da seguinte forma: X O sensor de distncia deve ser posicionado a frente (utiliza uma segunda servo-motor.

protoboard ) do

X Se a distncia retornada pelo sensor for menor ou igual a determinado limite (20 cm), o servo-motor deve ser acionado para girar 90o para esquerda (sentido anti-horrio). X Uma vez que a distncia retornada pelo sensor seja maior que 20 cm (indica que o objeto est saindo do campo de deteco do sensor), o alarme acionado, o sensor aguarda 3 segundos e aciona o servo-motor para retornar a posio inicial (giro de 90o para direita).

Sugesto de montagem
Siga o exemplo das Figuras 18 e 19

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

77

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 18: Montagem do Circuito

Cdigo-fonte
#include <Servo.h> #include <Ultrasonic.h> Servo myservo; int echoPin = 13; int trigPin = 12; int buzzer = 7;

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

78

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

int distancia; boolean flag = false; long microsec; int pos; Ultrasonic sensor(trigPin, echoPin); void setup() { myservo.attach(9); pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT); pinMode(buzzer, OUTPUT); Serial.begin(9600); myservo.write(0); } void loop() { digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); distancia = ultrasonic.Ranging(CM); Serial.print("Distncia (cm) = "); Serial.println(distancia); if(distancia < 20) { for(pos= 0; pos < 90; pos++) { myservo.write(pos); delay(50); } flag = true; } while(distancia < 20) { digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); distancia = ultrasonic.Ranging(CM); Serial.print("Distncia (cm) = "); Serial.println(distancia); delay(30); } if(flag == true) {

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

79

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

analogWrite(buzzer, 80); delay(1000); analogWrite(buzzer, 0); delay(3000); for(pos= 90; pos > 0; pos--){ myservo.write(pos); delay(50); } flag = false;

Figura 19: Esquemtico Eletrnico

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

80

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

APNDICE

A
A.1

Sensores e Componentes
LEDs

LED um diodo emissor de luz (Light Emission Diode ) que, quando alimentado corretamente, permite o uxo de corrente eltrica em apenas um sentido. um componente polarizado (com polo positivo e negativo) e deve ser conectado corretamente para funcionar. O terminal positivo (nodo) maior que o terminal negativo (ctodo). A Figura 20 mostra alguns LEDs de diferentes cores.

Figura 20: LEDs de vrias cores

resistor, que por sua vez deve ser conectado em um dos pinos da placa Arduino. O terminal menor do LED deve ser conectado ao pino GND do Arduino, como mostra a Figura 21 .

Pinagem: o terminal maior (positivo) do LED deve ser conectado em um dos terminais do

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

81

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 21: Representao da pinagem de um LED

de LED h uma voltagem prpria para que o mesmo acenda. Na maioria dos casos, LED's vermelhos, verdes e amarelos precisam de uma tenso entre 2,2 V e 2,4 V (quase constante decorrente do fato de o LED ser um diodo). Quanto ao uxo de corrente necessria, muitos dos LED's necessitam somente de 20 mA. Tendo esses valores em mos, possvel determinar o melhor valor de resistor para cada cor de LED. Para isso, usa-se a equao:

Resistor adequado: Primeiramente, preciso deixar claro que para cada cor e tamanho

R=

(Vf Vl ) Il

onde R a resistncia do resistor (em ohms), Vf a tenso da fonte (em Volts), Vl a queda de tenso para o LED em questo (em Volts) e Il a corrente suportada com segurana pelo LED.

A.2

Potencimetro

Um potencimetro um componente com uma haste giratria, cuja funo variar a resistncia. Normalmente, o valor gerado pelo mesmo lido pelo Arduino como um valor analgico em uma entrada analgica. Uma aplicao bastante simples desse componente controlar a frequncia com que um LED pisca, por meio da variao da resistncia ao girar o boto do potencimetro.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

82

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 22: Potencimetro 10K

Pinagem: Como pode-se observar na Figura 22, um potencimetro possui 3 terminais. Um dos terminais da extremidade do potencimetro deve ser conectado ao GND da placa e a outra extremidade alimentao +5 V. O terminal central conectado a um pino de entrada analgica da placa Arduino.
A.3 Push-button

onado (como ligar um LED ao pression-lo).

Push-button (Figura 23) um componente que conecta dois pontos no circuito ao ser pressi-

Figura 23: Dois

push-buttons de 4 terminais

Pinagem:
Um dos quatros terminais do boto conectado a um resistor que por sua vez conectado ao GND da placa Arduino. Outro terminal conectado ao +5 V do Arduino, e o terceiro terminal conectado na entrada digital, que ir ler o estado atual do boto, como mostra a Firgura 24. Quando o push-button est aberto (no pressionado), a entrada do Arduino ca conectada ao GND pelo resistor e retornar o valor LOW em uma leitura. Quando o push- button, est pressionado a entrada ca conectada ao + 5V e o valor lido ser HIGH.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

83

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 24: Pinagem do

push-button de 4 terminais

a 1 K.

Resistor adequado: em geral, recomenda-se utilizar resistores que estejam na faixe de 220

A.4

Buzzer 5V

tenses em seus terminais.

Buzzer (Figura 25) uma campainha que reproduz um beep de acordo com as variaes de

Figura 25:

Buzzer 5V

Pinagem:

Figura 26: Pinagem de um

Buzzer 5V

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

84

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

A.5

Sensor de Luminosidade LDR 5mm

Um sensor de luminosidade (Light Dependent Resistor ) basicamente um sensor que permite detectar a luz do ambiente variando seu valor de resistncia (em ), dependendo da intensidade de luz em sua superfcie. Eles so baratos, fceis de adquirir em vrios tamanhos e especicaes, mas tambm so muito imprecisos. Cada sensor age de forma diferente um do outro, mesmo que sejam de um mesmo lote. Por este motivo no se pode conar neles para se determinar nveis precisos de luz, mas so bem teis para se determinar variaes bsicas de luz. No escuro sua resistncia pode alcanar 1 K e diminui conforme a intensidade da luz aumenta, ou seja, sua resistncia diminui proporcionalmente intensidade de luz ambiente detectada.

Figura 27: Sensor de Luminosidade LDR 5mm

Pinagem: conecte um dos terminais do LDR ao +5 V da placa Arduino e o outro terminal conecte ao pino analgico da placa arduino. Nesse mesmo terminal, conecte um dos terminais de um resistor de 10 K, por exemplo. O outro terminal do resistor deve ser conectado ao GND da placa Arduino

Figura 28: Esquemtcio do sensor de luminosidade

Resistor adequado: A resistncia de um sensor de luminosidade varia de acordo com a marca, modelo e tamanho, no existindo um resistor padro para ser utilizado.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

85

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

A.6

Sensor de temperatura e umidade DHT11

Um sensor de temperatura e umidade faz exatamente o que o nome sugere, l a temperatura e a umidade do ar. um sensor bsico e geralmente lento, mas timo para se fazer algumas coletas bsicas de dados. O sensor DHT (Figura 29) composto de duas partes, um sensor capacitivo de umidade e um termistor. Tambm h um chip bastante bsico dentro dele que faz algumas converses de analgico para digital e manda um sinal digital com a temperatura e umidade. Este sinal digital bastante fcil de ler usando qualquer microcontrolador.

Figura 29: Sensor de temperatura e umidade DHT11 terminal (como na Figura 29). Outros sensores possuem quatro terminais, dos quais apenas trs so usados: os dois primeiros e o quarto terminal. O primeiro terminal ligado na sada de +5V do Arduino. O segundo conectado no pino de entrada de dados na placa Arduino e o quarto terminal ligado ao GND do Arduino. A Figura 30 demonstra como conectar o sensor DHT11 com o Arduino, utilizando um resistor de 10K.

Pinagem: Alguns Sensores DHT11 possuem as indicaes sobre onde deve ser ligado cada

Figura 30: Sensor de temperatura e umidade DHT11 ligado a um Arduino

Resistor adequado: Um sensor de umidade e temperatura DHT utiliza, um resistor de 10 K para que seu funcionamento seja adequado, podendo variar conforme o modelo.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

86

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

A.7

Sensor Infravermelho - Sharp GP2Y0A21YK0F

O sensor infravermelho - Sharp GP2Y0A21YK0F (Figura 31), faz uso das leituras em infravermelho para detectar a distncia do sensor at objetos, isto , atravs da leitura em infravermelho possvel fazer a deteco de objetos que estejam a frente do sensor, muito til caso se construa um rob que necessite desviar de obstculos por exemplo.

Figura 31: Sensor Infravermelho - Sharp GP2Y0A21YK0F

Pinagem: O sensor infravermelho - Sharp GP2Y0A21YK0F possui trs terminais, sendo o primeiro para sada de dados, o segundo sendo o GND (ground) e o terceiro o pino de 5V, a Figura 32 mostra a ligao com uma placa Arduino.

Figura 32: Sensor Infravermelho - Sharp GP2Y0A21YK0F

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

87

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

A.8

Servo motor

Servo motor um motor com amplitude de angulao inferior aos demais motores, em geral, conseguindo realizar um deslocamento de 180o . Um servo motor recebe um sinal de controle, verica a posio que est e ento se move para a posio desejada. Eles so muito mais precisos do que os demais motores para atingir a posio nal desejada.

Figura 33: Servo Motor minal preto deve ser conectado o GND, o terminal vermelho no + 5 V e o terceiro terminal, que pode assumir diferentes cores ao variar o modelo do servo, deve ser conectado na sada PWM de dados da placa Arduino.

Pinagem: Em geral, os servos-motores seguem um padro internacional para cores: o ter-

A.9

Display de 7 segmentos

O Display de 7 segmentos um dispositivo muito til quando se quer mostrar alguma informao numrica (Figura 34).

Pinagem: Basicamente os segmentos que estiverem com valor LOW esto apagados e os que estiverem com valor HIGH esto acesos, pois esse display do tipo ctodo comum.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

88

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 34:

Display de 7 segmentos

para limitar a corrente eltrica atravs dos segmentos que so LEDs.

Resistncia: Para cada segmento do display deve-se colocar um resistor entre 220 e 550

A.10

LCD 16x2

O Display de Cristal Lquido (Liquid Cristal Display ) um dispositivo utilizado para mostrar informaes na forma de texto (Figura 35). Um modelo muito utilizado o que apresenta 2 linhas e 16 colunas, onde pode-se representar at de 32 caracteres.

Figura 35: Descrio de cada pino de um LCD 16x2 5V o contraste dos caracteres que so mostrados na tela do LCD, recomendvel adicionar uma resistncia de 200 no pino 15 para limitar a corrente no LED da iluminao de fundo

Resistncia: Alm da necessidade de um potencimetro 10 K, utilizado para controlar

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

89

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Pinagem:

Figura 36: Pinagem de um LCD

Pino 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Tabela 7: Funcionalidade de cada pino de um LCD Funo Descrio Alimentao Terra (GND) Alimentao VCC ou +5V V0 Tenso para ajuste de contraste RS Seleo: 1  Dado. 0  Instruo. R/W Seleo: 1  Leitura. 0  Escrita. E Chip select: 1  Habilita. 0  Desabilita B0 LSB B1 B2 B3 Barramento de Dados B4 B5 B6 B7 MSB A (quando existir) nodo para LED backlight K (quando existir) Ctodo para LED backlight

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

90

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

A.11

Resistores

A.11.1

O que so resistores?

So elementos que apresentam resistncia passagem de corrente eltrica, sendo que quanto maior a sua resistncia, menor a corrente eltrica que passa em um resistor. Os resistores geralmente possuem um formato cilndrico e faixas coloridas que denem o seu valor em Ohms. Servem para opor-se a passagem de corrente, cando assim certa tenso sobre o mesmo. O valor de um resistor pode ser facilmente identicado analisando-se as cores em torno dele ou ento usando um ohmmetro (instrumento de medio de resistncia eltrica). O material do resistor uma pelcula na de carbono (lme), depositada sobre um pequeno tubo de cermica. O lme resistivo enrolado em hlice por fora do tubinho at que a resistncia entre os dois extremos que to prxima quanto possvel do valor que se deseja. So acrescentados terminais (um em forma de tampa e outro em forma de o) em cada extremo. Em seguida o resistor recoberto com uma camada isolante e no m suas faixas coloridas transversais so pintadas para indicar o valor da sua resistncia.

Figura 37: O resistor internamente

A.11.2

Tipo de resistores

Os resistores podem ser de resistncia xa ou varivel. X Resistor xo: um resistor que apresenta um nico valor de resistncia. X Resistor varivel: Seus valores podem ser ajustados por um movimento mecnico, ou seja, manualmente. O potencimetro um tipo de resistor varivel comumente utilizado para controlar o volume em amplicadores de udio. Geralmente, um resistor de trs terminais onde a conexo central deslizante e manipulvel. Se todos os trs terminais so usados, ele atua como um divisor de tenso

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

91

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

A.11.3

Resistores em srie e em paralelo

Resistores em srie
Em um circuito em srie constatam-se as seguintes propriedades: X A corrente que passa por todos os componentes a mesma; X A soma das tenses sobre todos os componentes deve ser igual tenso total aplicada; X A resistncia total da associao em serie igual soma das resistncias dos componentes individuais.

Figura 38: Associao de resistores em srie

Resistores em paralelo
Em um circuito paralelo constatam-se as seguintes propriedades: X Todos os componentes recebem a mesma tenso eltrica; X A soma de todas correntes nos componentes individuais deve ser igual corrente total; X A resistncia total da associao calculada pelo quociente entre o produto das resistncias individuais e a soma delas (CUIDADO: isso vale s para 2 resistores em paralelo

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

92

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 39: Associao de resistores em paralelo

A.11.4

Cdigo de Cores

Por ter geralmente um tamanho muito reduzido, invivel imprimir nos resistores as suas respectivas resistncias. Optou-se ento pelo cdigo de cores, que consiste em faixas coloridas no corpo do resistor. As primeiras trs faixas servem para indicar o valor nominal de sua resistncia e a ltima faixa, a porcentagem na qual a resistncia pode variar seu valor nominal (tolerncia). Para encontrar a resistncia de um resistor e sua tolerncia, usa-se os dados da tabela da Figura 40 e a seguinte equao:

Resistncia = (10 x faixa 1 + faixa 2) x 10 (f aixa3) % de tolerncia

Obs. 1: Na faixa 3, so permitidos valores somente at 7, o dourado passa a valer -1 e o prateado -2. Obs. 2: A ausncia de uma quarta faixa, indica uma tolerncia de 20 %. Alguns websites disponibilizam uma pgina que pode-se inserir as cores de um resistor (em sua devida ordem) e ele mostra qual a sua resistncia, como na Figura 41

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

93

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 40: Tabela de Cores e Valores das faixas de resistores

Figura 41: Pgina da web <http://www.areaseg.com/sinais/resistores.html>

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

94

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Descrio do funcionamento de uma

protoboard

A protoboard (ou breadboard, ou ainda, matriz de contatos) uma base para construo de prottipos eletrnicos. Ela muito utilizada, pois no requer solda. Isto torna-a mais fcil de usar para criao de prottipos. A utilizao de uma protoboard torna possvel a construo de circuitos mais complexos utilizando o Arduino A ligao de circuitos feita atravs de jumpers [ver apndice C.15] (pequenos os), que so utilizados para ligar temporariamente componentes eletrnicos na protoboard. Normalmente, uma protoboard formada por quatro matrizes, mas este nmero pode variar Figura 42

Figura 42: Exemplo de uma

protoboard

A protoboard composta de dois tipos de matrizes principais: uma com duas colunas, chamada na Figura 50 de matriz 2, e outra com cinco colunas, chamada de matriz 5. Elas diferem no modo de interconexo dos contatos eltricos.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

95

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 43:

protoboard - diviso por matrizes

A matriz 2 geralmente reservada para ligao dos pinos de alimentao +5 V e GND, e a matriz 5 utilizada para conectar componentes do circuito. A matriz 2 tem sua transmisso de coluna em coluna, enquanto a matriz 5 tem a transmisso de corrente de linha em linha.

Figura 44:

protoboard - transmisso nas matrizes

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

96

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

C
C.1

Glossrio
ASCII

(American Standard Code for Information Interchange)

O Cdigo padro Americano para o Intercmbio de Informao (Figura 45 uma codicao numrica de caracteres capaz de representar 256 caracteres, dos quais 128 so padronizados. At a dcada de 60, a maioria dos sistemas computacionais tinha seu prprio cdigo alfanumrico, usado para representar nmeros, letras, smbolos ou at comandos. Por causa disso, foi proposto um cdigo comum, facilitando a comunicao entre os computadores, e assim, permitindo a troca de informaes entre mquinas de diferentes fabricantes. O cdigo ASCII original baseado no alfabeto ingls e utiliza 7 bits representando 128 smbolos. A verso estendida utiliza 8 bits e representa mais 128 caracteres no ingleses. Nota-se que 33 caracteres so chamados caracteres de controle e so capazes de controlar funes ou equipamentos.

C.2

Biblioteca SPI

A Biblioteca SPI permite a comunicao com dispositivos SPI, tendo o Arduino como o dispositivo mestre. Pelo fato da conexo SPI sempre haver um dispositivo mestre (tendo como exemplo o Arduino), existem linhas comuns a todos os dispositivo: X Master In Slave Out (MISO) a linha que envia dados para o mestre; X Master Out Slave In (MOSI) a linha que o mestre usa para enviar dados aos escravos; X Serial Clock (SCK) atravs dessa linha que o mestre fornece pulsos de clock para a sincronizar a transmisso de dados; X Slave Select (SS) pino existente em cada perifrico que pode ser usado pelo mestre para habilit-lo ou desabilita-lo, e evitar transmisses falsas devido ao rudo na linha. Em outras palavras, quando o SS est em LOW, o escravo habilitado, e quando est em HIGH, o escravo desabilitado. Isto permite que vrios dispositivos compartilhem o mesmo MISO, MOSI e SCK.

C.3

Bootloader

Boot (inicializar) e loader (carregador) o termo em ingls para o processo de iniciao que carrega um sistema quando uma mquina ligada

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

97

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 45: Tabela ASCII

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

98

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

C.4

Buer

Regio de memria temporria usada escrita e leitura de dados. Sua nalidade a compatibilizao da comunicao entre dispositivos com velocidades diferentes ou variveis. Os Buers podem ser implementados por software ou hardware e no contexto da cincia da computao pode ser traduzido como retentor

C.5

Case Sensitive

um termo da lngua inglesa que indica que h distino entre letras maisculas e minsculas. Por exemplo, quando usamos palavras case sensitive, Arduino diferente de arduino, pois apesar de terem as mesmas letras, no so iguais no que diz respeito a maisculas e minsculas.

C.6

Circuito Impresso

Os circuitos impressos foram criados em substituio s antigas pontes de terminais onde se xavam os componentes eletrnicos, em montagem conhecida no jargo de eletrnica como montagem "aranha", devido a aparncia nal que o circuito tomava, principalmente onde existiam vlvulas eletrnicas e seus mltiplos pinos terminais do soquete de xao. O circuito impresso consiste de uma placa de fenolite, bra de vidro, bra de polister, lme de polister, lmes especcos base de diversos polmeros, etc, que possuem a superfcie coberta numa ou nas duas faces por uma na pelcula de cobre, prata, ou ligas base de ouro, nquel entre outras, nas quais so desenhadas pistas condutoras que representam o circuito onde sero xados os componentes eletrnicos.

Figura 46: uma placa de circuito impresso para arduino

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

99

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

C.7

Clock

um sinal gerado por um oscilador cristal que sincroniza os dispositivos para realizarem suas operaes, fazendo com que todos os componentes do circuito realizam suas tarefas simultaneamente, ou em ordem temporal. Esse oscilador a cristal um circuito que utiliza a ressonncia de um cristal em vibrao para criar o sinal de clock com uma frequncia exata e estvel. O sinal do clock uma onda quadrada onde os nveis lgicos 1 e 0 ocorrem alternadamente no tempo. A transio do sinal de zero para um (subida) chamada  rising edge , e a transio de um para zero (descida)  falling edge . Alguns dispositivos eletrnicos so acionados na subida e outros na descida. A frequncia (100kHz, 16MHz, e outras) indica a velocidade com que o sinal varia no tempo. Por exemplo, 16MHz so 16000000 rising edge e falling edge em um segundo.

Figura 47: representao do clock

C.8

Complemento de 2

Antes de explicar o complemento de 2, deve-se denir o complemento de 1, que obtido trocando os bits zeros por uns e vice-versa de um nmero binrio. O complemento de 2 de um nmero binrio formado tomando-se o complemento de 1 do nmero e adicionando-se 1 na posio do bit menos signicativo (mais a direita). Por exemplo, a representao em complemento de 2 de 101011 010101, pois trocando os bits de 101011, tem-se 010100. Adicionado 1 tem-se 010101

C.9

Entrada/Sada digital

So interfaces de hardware que conseguem interpretar e/ou gerar sinais digitais (no analgicos). Sinais digitais so sinais que podem assumir um nmero nito de valores (dois no caso dos sistemas binrios). Sinais analgicos so sinais que podem assumir innitos valores entre dois limites.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 100 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 48: representao de sinal digital e sinal analgico


C.10 FTDI

um chip que converte sinais RS-232 TTL para sinais USB. So usados em circuitos com microcontroladores, como o Arduino, permitindo a comunicao com computadores. FTDI a sigla de Future Technology Devices International, que uma empresa da Esccia que fabrica esses dispositivos semicondutores.

C.11

Fusvel

Fusveis so dispositivos protetores que so utilizados para evitar que, em caso de curtocircuito ou sobrecargas, um circuito venha sofrer danos. Basicamente um fusvel funciona como o elo mais fraco de uma corrente, fundindo e abrindo quando a corrente eltrica no circuito ultrapassa certo limite. Os fusveis comuns usados em eletricidade e eletrnica constam de um pedao de o mais no ou de menor ponto de fuso que o restante do circuito, sendo ligados em srie com o mesmo.

Figura 49: representao de um Fusvel Quando a corrente no circuito ultrapassa certo valor, determinado pelas caractersticas do fusvel, o o rompe-se interrompendo sua circulao e evitando assim que danos possam ocorrer.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 101 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

C.12

Impedncia

Impedncia eltrica a medida da capacidade de um circuito de resistir ao uxo de uma determinada corrente eltrica alternada quando se aplica uma tenso alternada atravs dos seus terminais.

C.13

ICSP

In-Circuit Serial Programming um mtodo de gravao de dispositivos programveis, muito eciente. ICSP signica que o dispositivo programvel pode ser programado "no circuito", ou seja, montado o circuito na placa e em seguida programa o dispositivo atravs de interface serial.
C.14 Jack

Jack a parte de um conector onde se insere conector macho.

plug. O jack o conector fmea e o plug o

C.15

Jumpers

um o condutor que tem a funo de interligar dois pontos no circuito. A corrente eltrica passa pelo o, que nada mais do que uma continuao do circuito.

Figura 50: Dois

Jumpers

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 102 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

C.16

Memria

So dispositivos eletrnicos que armazenam dados. As memrias se dividem se classicam se so volteis ou no.

C.16.1

Memrias volteis

Memrias Volteis so as que necessitam de energia para manter a informao armazenada. So fabricadas com base em duas tecnologias: dinmica e esttica. X A memria dinmica (DRAM), tambm conhecida como memria RAM (Randomic Acess Memory - memria de acesso aleatrio), a mais barata e, portanto, a mais utilizada em computadores. Sua tecnologia se baseia em acessos aos registros (local dos dados armazenados) de qualquer endereo, diferente das de acesso sequencial, que exigem que qualquer acesso seja feito a iniciar pelo primeiro endereo e, sequencialmente, vai pulando de um em um at atingir o objetivo. O nome dinmica referente tecnologia utilizada para armazenar dados e no forma de acess-los. Toda vez que for acessar a memria, para escrita ou para leitura, cada clula dessa memria atualizada. Se ela tem 1 ou 0 armazenado, sua valor ser recarregado. Este procedimento chamado de refresco de memria, em ingls, refresh. X A memria esttica (SRAM) no necessita ser analisada ou recarregada a cada momento. Fabricada com circuitos eletrnicos conhecidos como latch, guardam a informao por todo o tempo em que estiver a receber alimentao.

C.16.2

Memrias no volteis

Memrias no volteis so aquelas que guardam todas as informaes mesmo sem energia. Como exemplos, citam-se as memrias conhecidas por ROM, FeRAM e FLASH, bem como os dispositivos de armazenamento em massa, disco rgido, CDs e disquetes. As memrias somente para leitura, do tipo ROM, permitem o acesso aleatrio e so conhecidas pelo fato de o usurio no poder alterar o seu contedo. Para gravar uma memria deste tipo so necessrios equipamentos especcos. Dentre as memrias do tipo ROM destacam-se a ROM (Read Only Memory - memria somente de leitura), gravada na fbrica uma nica vez, PROM (Programable Read Only Memory - memria programvel somente de leitura), gravada pelo usurio uma nica vez, EPROM (Erasable Programable Read Only Memory - memria programvel e apagvel somente de leitura), pode ser gravada ou regravada por meio de um equipamento que fornece as voltagens adequadas em cada pino (Para

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 103 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

apagar os dados nela contidos, basta iluminar o chip com raios ultravioleta. Isto pode ser feito atravs de uma pequena janela de cristal presente no circuito integrado) e EEPROM (Electri-

- memria programvel e apagvel eletronicamente somente de leitura) que pode ser gravada, apagada ou regravada utilizando
cally Erasable Programable Read Only Memory

um equipamento que fornece as voltagens adequadas em cada pino.

A Memria Flash anterior a FeRAM, mas uma variao do tipo Eprom. A principal diferena entre elas que na Eprom as escritas so feitas byte a byte, enquanto na ash so feitas em blocos. Estas se tornaram muito populares por dois motivos: a utilizao de dispositivos de armazenamento removveis como os chamados pen drives, a aplicao em equipamentos de som que reproduzem msica no formato MP3 e os cartes de memria das cmeras digitais. Os dados armazenados neste tipo de memria permanecem ali sem a necessidade de alimentao. Sua gravao feita em geral atravs da porta USB que fornece 5 Volts para alimentao. As memrias de massa podem armazenar grande quantidade de informao e tm tido seu tamanho reduzido a cada dia. O disco rgido o meio mais comum neste tipo de memria, mas os disquetes ainda ocupam uma pequena parcela do mercado. No to rpida como a memria ash mas j possvel utiliz-la em equipamentos de reproduo de msica e lmes como os portteis que reproduzem videoclipes de msica em vrios formatos, como MPEG.

C.17

MSB/LSB

O MSB (Most Signicant Bit) e LSB (Least Signicant Bit) so uma forma de se referir aos bits mais e menos signicativo de um nmero binrio, aqueles cuja potncia decimal so o maior e o menor valor. O MSB o bit mais a esquerda e o LSB o bit mais a direita. Como por exemplo, na Figura 51 tem-se o nmero binrio sem sinal 10101110 que tem como MSB o 1 (quando transformado em decimal multiplicado por 2 elevado a stima potncia) e como LSB o 0, que multiplicado por 2 elevado a zero.

Figura 51: Exemplo de MSB/LSB

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 104 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

C.18

Open-Source

A denio do Open-Source foi criada pela Open-Source Iniciative (OSI) a partir do texto original da Debian Free Software Guidelines (DFSG) e determina que um programa de cdigo aberto deve garantir: distribuio livre, o cdigo fonte, criao de trabalhos derivados livremente, a integridade do autor do cdigo fonte, a no discriminao contra pessoas ou grupos, a no discriminao contra reas de atuao, a distribuio da licena, que a licena no restrinja outros programas e neutra em relao a tecnologia.

Open Source Hardware

Esse termo usado pelo arduino divide muitos dos princpios e abordagens dos softwares open source. Em particular, os criadores do arduino acreditam que as pessoas podem estudar seu hardware para saber como funciona, fazer mudanas e divulgar essas mudanas. Para facilitar isso, eles liberam todos os arquivos de projeto originais (Eagle CAD ) do hardware do arduino. Estes arquivos esto sobre a licena que permite a distribuio pessoal e comercial de trabalhos derivados, desde que creditando o Arduino e liberando seus projetos sobre a mesma licena. O programa do Arduino tambm Open Source.

C.19

Processing

integrado (IDE), construdo para as artes eletrnicas e comunidades de design visual com o objetivo de ensinar noes bsicas de programao de computador em um contexto visual e para servir como base para cadernos eletrnicos. O projeto foi iniciado em 2001 por Casey Reas e Ben Fry, ambos ex-membros do Grupo de Computao do MIT Media Lab. Um dos objetivos declarados do Processing atuar como uma ferramenta para no-programadores iniciarem com a programao, atravs da satisfao imediata de um feedback visual. A linguagem tem por base as capacidades grcas da linguagem de programao Java, simplicando algumas caractersticas e criando outras

Processing uma linguagem de programao de cdigo aberto e ambiente de desenvolvimento

C.20

PWM

A Modulao por largura de pulso (MLP) - mais conhecida pela sigla em ingls "PWM" (Pulse-Width Modulation) - uma forma de transmitir dados analgicos por um meio digital. O controle digital usado para criar uma onda quadrada, que ca alternando entre nvel lgico um e nvel lgico zero. Este padro "um-zero"pode representar tenses entre permanente em um

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 105 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

(5V) e em zero (0V), trocando a poro de tempo que o sinal ca em um contra o tempo que o sinal ca em zero. A durao em que o sinal ca em um chamada de largura de pulso. Para conseguir valores analgicos variados, deve- se variar essa largura de pulso.

C.21

Shields

Shields so placas que podem ser conectados em cima do Arduino estendendo as suas capacidades. Os shields seguem a mesma losoa que o Arduino: so fceis de montar e baratos para
construir

C.22

SPI

(Serial Peripheral Interface)

Serial Peripheral Interface ou SPI um protocolo que permite a comunicao do microcontrolador com diversos outros componentes, formando uma rede. Em modo escravo, o microcontrolador comporta-se como um componente da rede, recebendo pulsos de clock. Em modo mestre, o microcontrolador gera pulsos de clock e deve ter um pino de entrada/sada para habilitao de cada perifrico.
C.23 TWI

(Two-Wire Interface)

Conhecida tambm por I2C (Inter-Integrated Circuit ), chamado de TWI por questo de direitos autorais. O TWI uma forma de comunicao serial entre dispositivos de baixa velocidade. Essa comunicao utiliza duas linhas abertas: X SDA X SCL

Serial Data Line Serial Clock

C.24

UART

um CI (circuito integrado) que converte dados paralelos para a forma serial e vice-versa. UART um acrnimo (sigla) de Universal Asynchrounous Receiver/Transmiter que signica Receptor/Transmissor Universal Assncrono. Sinais em paralelo so vrios sinais chegando ao mesmo tempo nas portas de entradas dos dispositivos (pinos), porm no possvel transmitilos todos juntos em um barramento, por isso so convertidos na forma serial que nada mais dos que esses sinais em paralelo, ordenados em uma sequncia padronizada. Uma UART pode realizar o inverso, ou seja, converte esses sinais sequenciados em sinais paralelos.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 106 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33

Servio Pblico Federal Ministrio da Educao Fundao Universidade Federal de Mato Grosso do Sul
PR-REITORIA DE EXTENSO, CULTURA E ASSUNTOS ESTUDANTIS

COORDENADORIA DE EXTENSO, CULTURA E DESPORTO

Figura 52: Funcionamento do UART Existem vrios tipos de UART e a diferena entre elas est na velocidade em que realizam a operao de converso.

C.25

Wiring

linguagem de programao, um ambiente de desenvolvimento integrado (IDE) e uma placa com microcontrolador. O sistema foi criado junto a designers e artistas de forma que usurios avanados, intermedirios e iniciantes ao redor do mundo pudessem compartilhar suas ideias, conhecimentos e experincias coletivamente. todo o tipo de objetos interativos, correspondendo a experincia do usurio atravs do mundo fsico. Com poucas linhas de cdigo, por exemplo, possvel conectar- se a alguns componentes eletrnicos e observar a intensidade de uma luz variando conforme a distncia que algum chega a ela.

Wiring uma plataforma de prototipagem eletrnica de hardware livre composta por uma

Wiring permite escrever programas para controlar aparelhos conectados a ele e assim criar

O projeto foi iniciado em 2003 por Hernando Barragn atravs do Interaction Design Institute Ivrea, Itlia. Atualmente se desenvolve na Escola de Arquitetura e Design da Universidade de Los Andes, em Bogot, Colmbia. Construdo sobre o Processing, um projeto aberto de Casey Reas e Benjamin Fry, sua linguagem foi deselvolvida com a ajuda do Grupo de Computao e Esttica da MIT Media Lab.

Pr-Reitoria de Extenso, Cultura e Assuntos Estudantis

Cidade Universitria, s/n * Caixa Postal 549 * Campo Grande  MS * CEP 79070-900 107 Fone:3345-7232/7233 * Home page: http://www.preae.ufms.br* E-mail:preae@nin.ufms.br CNPJ 15.461.510/0001-33