Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar...

56
Arduino Descomplicado Como Elaborar Projetos de Eletrônica Cláudio Luís Vieira Oliveira Humberto Augusto Piovesana Zanetti São Paulo 2015 – Editora Érica Ltda. Respostas dos Exercícios

Transcript of Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar...

Page 1: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

Arduino DescomplicadoComo Elaborar Projetos de Eletrônica

Cláudio Luís Vieira Oliveira Humberto Augusto Piovesana Zanetti

São Paulo

2015 – Editora Érica Ltda.

Respostas dos Exercícios

Page 2: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

Capítulo 1

1.

Especificações Uno Mega Leonardo

Microcontrolador ATmega328 ATmega2560 ATmega32U4

Tensão de operação 5 V 5 V 5 V

Pinos de I/O digitais 14 (6 com saída PWM) 54 (14 com saída PWM) 20 (7 com saída PWM)

Pinos analógicos 6 16 12

Memória Flash 32 KB 256 KB 32 KB

SRAM 2 KB 8 KB 2,5 KB

EEPROM 1 KB 4 KB 1 KB

Velocidade do clock 16 MHz 16 MHz 16 MHz

2.

Wiring é uma linguagem de programação open-source para microcontroladores, baseada na linguagem Processing. Essa linguagem permite escrever códigos-fonte para controlar dispositivos conectados a uma série de placas com microcontroladores (como o Arduino). Foi toda escrita em linguagem C++, e o projeto iniciou-se em 2003, no mesmo instituto em que foi criado o Arduino. Tornou-se a linguagem padrão desde o início do projeto Arduino.

3.

Ao pressionar o botão “Reset” localizado na placa, você faz com que o sketch se reinicie, como no momento em que acaba de dar upload desse sketch na placa. É possível notar também que há um pino “Reset” próximo ao de 5 V, para que você possa colocar um botão “Reset” externo à placa, por exemplo, colocando um botão na protoboard para reiniciar o sketch.

Capítulo 2

1.

a) LEDs: displays em outdoors animados, indicadores em painéis (LED que indica ligado) em um rádio.

b) Diodos: som automotivo, para isolar a bateria do carro da bateria do módulo de som.

c) Capacitores: funcionam como uma pequena bateria, muito utilizados em antenas de rádio, no circuito ressonante utilizado para captar diferentes estações.

d) Resistores: um dos componentes mais utilizados em circuitos eletrônicos para limitar a corrente elétrica. Em alguns casos, pode transformar energia elétrica em térmica, como em um chuveiro elétrico.

Page 3: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

3 Respostas dos Exercícios

e) Transistores: em um microfone, para transformar um sinal fraco em um mais forte (amplificando).

2.

a) 220 Ω: vermelho, vermelho, marrom.

b) 330 Ω: laranja, laranja, marrom.

c) 1 kΩ: preto, marrom, vermelho.

d) 10 kΩ: preto, marrom, laranja.

3.

V = R x I.

V = 10 k x 100 m.

V = 10.000 x 0,1.

V = 1.000 volts.

4.

R = V / I.

R = 50 / 1.

R = 50 Ω.

5.

I = V / R.

I = 100 / 200.

I = 0,5 A ou 500 mA.

Capítulo 3

1. int LED = 13;

void setup() {

pinMode(LED, OUTPUT);

}

void loop() {

digitalWrite(LED, HIGH);

delay(4000);

digitalWrite(LED, LOW);

delay(1000);

}

Page 4: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

4 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

2.

Esquema:

Sketch:

int LED1 = 12;

int LED2 = 13;

void setup() {

pinMode(LED1, OUTPUT);

pinMode(LED2, OUTPUT);

}

void loop() {

digitalWrite(LED1, HIGH);

digitalWrite(LED2, LOW);

delay(1000);

digitalWrite(LED1, LOW);

digitalWrite(LED2, HIGH);

delay(1000);

}

3. int LED1 = 12;

int LED2 = 13;

void setup() {

pinMode(LED1, OUTPUT);

pinMode(LED2, OUTPUT);

}

Page 5: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

5 Respostas dos Exercícios

void loop() {

digitalWrite(LED1, LOW);

digitalWrite(LED2, LOW);

delay(1000);

digitalWrite(LED1, LOW);

digitalWrite(LED2, HIGH);

delay(1000);

digitalWrite(LED1, HIGH);

digitalWrite(LED2, LOW);

delay(1000);

digitalWrite(LED1, HIGH);

digitalWrite(LED2, HIGH);

delay(1000);

}

Capítulo 4

1.

Figura 4.12 – Circuito proposto para o Exercício 1.

int VERMELHO = 13;

int VERDE = 12;

int AZUL = 11;

int BOTAO = 2;

int valor = LOW;

int valorAnterior = LOW;

int cor = 0;

Page 6: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

6 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void setup() {

pinMode (VERMELHO, OUTPUT);

pinMode (VERDE, OUTPUT);

pinMode (AZUL, OUTPUT);

pinMode (BOTAO, INPUT);

}

void loop() {

valor = digitalRead(BOTAO);

if ((valor == HIGH) && (valorAnterior == LOW)) {

delay (10);

cor++;

if (cor > 3)

cor = 0;

}

switch (cor) {

case 0:

digitalWrite(VERMELHO, LOW);

digitalWrite(VERDE, LOW);

digitalWrite(AZUL, LOW);

break;

case 1:

digitalWrite(VERMELHO, HIGH);

digitalWrite(VERDE, LOW);

digitalWrite(AZUL, LOW);

break;

case 2:

digitalWrite(VERMELHO, LOW);

digitalWrite(VERDE, HIGH);

digitalWrite(AZUL, LOW);

break;

case 3:

digitalWrite(VERMELHO, LOW);

digitalWrite(VERDE, LOW);

digitalWrite(AZUL, HIGH);

break;

}

valorAnterior = valor;

delay(500);

}

Page 7: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

7 Respostas dos Exercícios

2.

Esquema:

Sketch:

int VERMELHO = 11;

int VERDE = 10;

int AZUL = 9;

int BOTAO = 2;

int POTENCIÔMETRO = A0;

int valor = LOW;

int valorAnterior = LOW;

int cor = 0;

int intensidade;

void setup() {

pinMode (VERMELHO, OUTPUT);

pinMode (VERDE, OUTPUT);

pinMode (AZUL, OUTPUT);

pinMode (BOTAO, INPUT);

pinMode (POTENCIÔMETRO, INPUT);

}

Page 8: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

8 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void loop() {

valor = digitalRead(BOTAO);

if ((valor == HIGH) && (valorAnterior == LOW)) {

delay (10);

cor++;

if (cor > 3)

cor = 0;

}

intensidade = analogRead(POTENCIôMETRO);

switch (cor) {

case 0:

analogWrite(VERMELHO, LOW);

analogWrite(VERDE, LOW);

analogWrite(AZUL, LOW);

break;

case 1:

analogWrite(VERMELHO, intensidade / 4);

analogWrite(VERDE, LOW);

analogWrite(AZUL, LOW);

break;

case 2:

analogWrite(VERMELHO, LOW);

analogWrite(VERDE, intensidade / 4);

analogWrite(AZUL, LOW);

break;

case 3:

analogWrite(VERMELHO, LOW);

analogWrite(VERDE, LOW);

analogWrite(AZUL, intensidade / 4);

break;

}

valorAnterior = valor;

delay(500);

}

Page 9: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

9 Respostas dos Exercícios

3.

Esquema:

Sketch:

int VERMELHO = 13;

int VERDE = 12;

int AZUL = 11;

int BOTAOR = 4;

int BOTAOG= 3;

int BOTAOB = 2;

int valorR = LOW;

int valorAnteriorR = LOW;

int estadoR = LOW;

int valorG = LOW;

int valorAnteriorG = LOW;

int estadoG = LOW;

int valorB = LOW;

int valorAnteriorB = LOW;

int estadoB = LOW;

void setup() {

pinMode (VERMELHO, OUTPUT);

pinMode (VERDE, OUTPUT);

pinMode (AZUL, OUTPUT);

pinMode (BOTAOR, INPUT);

pinMode (BOTAOG, INPUT);

pinMode (BOTAOB, INPUT);

}

Page 10: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

10 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void loop() {

valorR = digitalRead(BOTAOR);

if ((valorR == HIGH) && (valorAnteriorR == LOW)) {

estadoR = 1 - estadoR;

delay (10);

}

valorG = digitalRead(BOTAOG);

if ((valorG == HIGH) && (valorAnteriorG == LOW)) {

estadoG = 1 - estadoG;

delay (10);

}

valorB = digitalRead(BOTAOB);

if ((valorB == HIGH) && (valorAnteriorB == LOW)) {

estadoB = 1 - estadoB;

delay (10);

}

digitalWrite(VERMELHO, estadoR);

digitalWrite(VERDE, estadoG);

digitalWrite(AZUL, estadoB);

valorAnteriorR = valorR;

valorAnteriorG = valorG;

valorAnteriorB = valorB;

delay(500);

}

4.

Sketch:

int LEDvermelhocarro = 4;

int LEDamarelocarro = 7;

int LEDverdecarro = 8;

int LEDvermelhoped = 12;

int LEDverdeped = 13;

void setup() {

pinMode(LEDvermelhocarro, OUTPUT);

pinMode(LEDamarelocarro, OUTPUT);

pinMode(LEDverdecarro, OUTPUT);

pinMode(LEDvermelhoped, OUTPUT);

pinMode(LEDverdeped, OUTPUT);

}

Page 11: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

11 Respostas dos Exercícios

void loop() {

digitalWrite(LEDvermelhocarro, HIGH);

digitalWrite(LEDverdeped, HIGH);

delay(10000);

digitalWrite(LEDverdeped, LOW);

delay(500);

digitalWrite(LEDverdeped, HIGH);

delay(500);

digitalWrite(LEDverdeped, LOW);

delay(500);

digitalWrite(LEDverdeped, HIGH);

digitalWrite(LEDverdeped, LOW);

digitalWrite(LEDvermelhocarro, LOW);

digitalWrite(LEDverdecarro, HIGH);

digitalWrite(LEDvermelhoped, HIGH);

delay(10000);

digitalWrite(LEDverdecarro, LOW);

digitalWrite(LEDamarelocarro, HIGH);

delay(2000);

digitalWrite(LEDamarelocarro, LOW);

digitalWrite(LEDvermelhoped, LOW);

}

Capítulo 5

1.

int LED = 9;

int entrada;

int intensidade = 0;

void setup() {

Serial.begin(9600);

pinMode(LED, OUTPUT);

Serial.println(“Digite ‘A’ para aumentar a intensidade luminosa do LED,

‘D’ para reduzir ou ‘R’ para apagar:”);

}

void loop() {

if (Serial.available() > 0) {

entrada = Serial.read();

if (entrada == ‘A’ || entrada == ‘a’) {

intensidade += 10;

if (intensidade > 255)

intensidade = 255;

}

Page 12: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

12 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

else if (entrada == ‘D’ || entrada == ‘d’) {

intensidade -= 10;

if (intensidade < 0)

intensidade = 0;

}

else if (entrada == ‘R’ || entrada == ‘r’) {

intensidade = 0;

}

else {

Serial.println(“Por favor, digite apenas ‘A’, ‘D’ ou ‘R’!”);

}

analogWrite(LED, intensidade);

delay (100);

}

}

2.

int LED = 9;

int entrada;

int intensidade = 0;

void setup() {

Serial.begin(9600);

pinMode(LED, OUTPUT);

Serial.println(“Digite ‘A’ para aumentar a intensidade luminosa do LED,

‘D’ para reduzir ou ‘R’ para apagar:”);

}

void loop() {

if (Serial.available() > 0) {

entrada = Serial.read();

// Exibir (na saída serial) o valor da intensidade do LED

Serial.print(“Intensidade: “);

Serial.println(intensidade, DEC);

if (entrada == ‘A’ || entrada == ‘a’) {

intensidade += 10;

if (intensidade > 255)

intensidade = 255;

}

Page 13: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

13 Respostas dos Exercícios

else if (entrada == ‘D’ || entrada == ‘d’) {

intensidade -= 10;

if (intensidade < 0)

intensidade = 0;

}

else if (entrada == ‘R’ || entrada == ‘r’) {

intensidade = 0;

}

else {

Serial.println(“Por favor, digite apenas ‘A’, ‘D’ ou ‘R’!”);

}

analogWrite(LED, intensidade);

delay (100);

}

}

Capítulo 6

1.

Esquema:

Sketch:

int BUZZER = 8;

int POT = A0;

int duracao;

Page 14: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

14 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void setup(){

pinMode(BUZZER, OUTPUT);

pinMode(POT, INPUT);

}

void loop() {

duracao = analogRead(POT);

tone(BUZZER, 1200);

delay (duracao);

tone(BUZZER, 3600);

delay (duracao);

}

2.

Esquema:

Sketch:

int LED = 8;

int PIEZO = A0;

int limiar = 50;

int valor_piezo;

void setup() {

pinMode(LED, OUTPUT);

pinMode(PIEZO, INPUT);

}

Page 15: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

15 Respostas dos Exercícios

void loop() {

valor_piezo = analogRead(PIEZO);

if (valor_piezo >= limiar)

digitalWrite(LED, HIGH);

else

digitalWrite(LED, LOW);

delay(500);

}

3.

Esquema:

Figura 6.4 – Teclado musical.

Sketch:

int BotaoC = 13;

int BotaoD = 12;

int BotaoE = 11;

int BotaoF = 10;

int BotaoG = 9;

int BotaoA = 8;

int BotaoB = 7;

int BUZZER = 4;

void setup() {

pinMode(BUZZER, OUTPUT);

}

Page 16: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

16 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void loop() {

if (BotaoC == HIGH){

tone(BUZZER, 261); // 261 é a nota Dó

delay(500);

} else if (BotaoD == HIGH){

tone(BUZZER, 294); // 294 é a nota Ré

delay(500);

} else if (BotaoE == HIGH){

tone(BUZZER, 330); // 330 é a nota Mi

delay(500);

} else if (BotaoF == HIGH){

tone(BUZZER, 349); // 349 é a nota Fá

delay(500);

} else if (BotaoG == HIGH){

tone(BUZZER, 392); // 392 é a nota Sol

delay(500);

} else if (BotaoA == HIGH){

tone(BUZZER, 440); // 440 é a nota Lá

delay(500);

} else if (BotaoB == HIGH){

tone(BUZZER, 494); // 494 é a nota Si

delay(500);

}

noTone(BUZZER);

}

Capítulo 7

1.

Figura 7.10 – Circuito básico para uso do LCD.

Page 17: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

17 Respostas dos Exercícios

#include <LiquidCrystal.h>

#define TEMPO_ATUALIZACAO 500

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

void setup() {

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

lcd.begin (16, 2);

}

void loop() {

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“Claudio Luis”);

lcd.setCursor(0, 1);

lcd.print(“Vieira Oliveira”);

delay(TEMPO_ATUALIZACAO);

}

2.

#include <LiquidCrystal.h>

#define TEMPO_ATUALIZACAO 1500

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

void setup() {

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

lcd.begin (16, 2);

}

void loop() {

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“ABCDEFGHIJKLMNOP”);

lcd.setCursor(0, 1);

lcd.print(“QRSTUVWXYZ”);

delay(TEMPO_ATUALIZACAO);

Page 18: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

18 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“abcdefghijklmnop”);

lcd.setCursor(0, 1);

lcd.print(“qrstuvwxyz”);

delay(TEMPO_ATUALIZACAO);

}

3.

Figura 7.11 – Utilização de matriz de LEDs.

#include <avr/pgmspace.h>

#include “LEDControl.h”

#include “FonteMatriz.h”

const int NUM_MATRIZ = 1;

const int ATRASO = 1000;

LEDControl lc=LEDControl(6, 5, 4, NUM_MATRIZ);

void setup() {

Serial.begin(9600);

for (int i = 0; i < NUM_MATRIZ; i++) {

lc.shutdown(i, false);

lc.setIntensity(i, 2);

lc.clearDisplay(i);

}

}

void loop() {

String texto = “CLAUDIO”;

exibirMensagem(texto);

}

Page 19: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

19 Respostas dos Exercícios

void exibirMensagem(String mensagem) {

int contador = 0;

int caractere = 0;

do {

caractere = mensagem.charAt(contador);

if (caractere != 0) {

exibirCaractere(caractere);

delay(ATRASO);

}

contador++;

}

while (caractere != 0);

}

void exibirCaractere(int ascii) {

if (ascii >= 0x20 && ascii <= 0x7f) {

for (int i = 0; i < 7; i++) {

intlinha =

pgm_read_byte_near(fonte5x7 + ((ascii - 0x20) * 8) + i);

lc.setColumn(0, 7 - i, linha);

}

}

}

Capítulo 8

1.

Esquema:

Page 20: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

20 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

Sketch:

int LED1 = 11;

int LED2 = 12;

int LED3 = 13;

const int LM35 = A0;

const int ATRASO = 5000;

const float BASE_CELSIUS = 0.4887585532746823069403714565;

float temperatura;

void setup() {

pinMode (LED1, OUTPUT);

pinMode (LED2, OUTPUT);

pinMode (LED3, OUTPUT);

}

void loop() {

temperatura = lerTemperatura();

if (temperatura <= 20) {

digitalWrite(LED1, HIGH);

digitalWrite(LED2, LOW);

digitalWrite(LED3, LOW);

}

else if (temperatura <= 30) {

digitalWrite(LED1, HIGH);

digitalWrite(LED2, HIGH);

digitalWrite(LED3, LOW);

}

else {

digitalWrite(LED1, HIGH);

digitalWrite(LED2, HIGH);

digitalWrite(LED3, HIGH);

}

delay(ATRASO);

}

float lerTemperatura() {

return (analogRead(LM35) * BASE_CELSIUS);

}

Page 21: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

21 Respostas dos Exercícios

2.

Esquema:

Sketch:

#include <LiquidCrystal.h>

#define TEMPO_ATUALIZACAO 500

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

int buzzer = 9;

int echoPino = 10;

int trigPino = 13;

int ledvermelho = 7;

int ledverde = 6;

int ledamarelo = 8;

long duracao = 0;

long distancia = 0;

int atraso;

void setup(){

Serial.begin(9600);

lcd.begin (16, 2); // inicia o LCD com dimensões 16x2(Colunas x Linhas)

pinMode(echoPino, INPUT); // define o pino 12 como entrada (recebe)

pinMode(trigPino, OUTPUT); // define o pino 13 como saida (envia)

pinMode(buzzer,OUTPUT);

pinMode(ledvermelho, OUTPUT);

pinMode(ledverde, OUTPUT);

pinMode(ledamarelo, OUTPUT);

}

Page 22: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

22 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void loop(){

digitalWrite(trigPino, LOW); // delay de 10 microssegundos

delayMicroseconds(10); //pino trigger com pulso HIGH (ligado)

digitalWrite(trigPino, HIGH); //delay de 10 microssegundos

delayMicroseconds(10); //pino trigger com um pulso baixo LOW (desligado)novamente

digitalWrite(trigPino, LOW);

duracao = pulseIn(echoPino,HIGH); //cálculo baseado em: distância = duração/58.

//a função pulseIn verifica o tempo que o pino ECHO ficou HIGH

//calculando assim a duração do tráfego do sinal

distancia = duracao/58;

if (distancia < 5){

lcd.clear();

lcd.print(“CUIDADO:”);

lcd.print(distancia);

lcd.print(“ cm”);

digitalWrite(LEDvermelho,HIGH);

digitalWrite(LEDverde,LOW);

digitalWrite(LEDamarelo,LOW);

} else if (distancia >= 5 && distancia <= 10){

lcd.clear();

lcd.print(“ATENCAO:”);

lcd.print(distancia);

lcd.print(“ cm”);

digitalWrite(LEDvermelho,LOW);

digitalWrite(LEDverde,LOW);

digitalWrite(LEDamarelo,HIGH);

} else if (distancia > 10){

lcd.clear();

lcd.print(“SEGURO:”);

lcd.print(distancia);

lcd.print(“ cm”);

digitalWrite(LEDvermelho,LOW);

digitalWrite(LEDverde,HIGH);

digitalWrite(LEDamarelo,LOW);

}

if (distancia < 10){

atraso = 100*distancia;

tone (buzzer, 1200, atraso);

delay (2*atraso);

} else {

delay(10);

}

}

Page 23: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

23 Respostas dos Exercícios

3.

Esquema:

Sketch:

int LEDVermelho = 13;

int LEDVerde = 12;

int LEDAmarelo = 11;

int LDR = A0;

int BUZZER = 8;

int botao = 7;

int entrada = 0;

int max = 0;

int teste = 0;

int estadobotao = LOW;

void setup(){

Serial.begin(9600);

pinMode(LEDVermelho,OUTPUT);

pinMode(LDR,INPUT);

pinMode(LEDVerde,OUTPUT);

pinMode(LEDAmarelo,OUTPUT);

pinMode(botao, INPUT);

}

Page 24: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

24 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void loop(){

if (estadobotao == LOW){

while (estadobotao == LOW) estadobotao = digitalRead(btn);

delay (500);

tone (BUZZER, 1200, 300);

} else if (estadobotao == HIGH){

while (teste != 5){

entrada = analogRead(LDR);

Serial.println(entrada);

if (entrada > max) {

max = entrada;

}

teste++;

Serial.println(max);

delay(1000);

}

delay (2000);

entrada = analogRead(LDR);

Serial.println(entrada);

delay(500);

if (entrada > (0.8*max)){

digitalWrite(LEDVermelho,HIGH);

digitalWrite(LEDAmarelo,LOW);

digitalWrite(LEDVerde,LOW);

delay(500);

tone (BUZZER, 1200, 300);

delay(500);

tone (BUZZER, 1200, 300);

delay(500);

tone (BUZZER, 1200, 300);

} else if (entrada < (0.8*max) && entrada > (0.5*max)){

digitalWrite(LEDVermelho,LOW);

digitalWrite(LEDAmarelo,HIGH);

digitalWrite(LEDVerde,LOW);

delay(500);

tone (BUZZER, 1200, 300);

delay(500);

tone (BUZZER, 1200, 300);

} else if (entrada < (0.5*max)){

digitalWrite(LEDVermelho,LOW);

digitalWrite(LEDAmarelo,LOW);

digitalWrite(LEDVerde,HIGH);

delay(500);

tone (buzzer, 1200, 300);

}

Page 25: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

25 Respostas dos Exercícios

if (estadobotao == HIGH && digitalRead(btn) == HIGH){

estadobotao = LOW;

digitalWrite(LEDVermelho,LOW);

digitalWrite(LEDAmarelo,LOW);

digitalWrite(LEDVerde,LOW);

tone (BUZZER, 1200, 1000);

}

}

delay(2000);

}

Capítulo 9

1.

Esquema:

Sketch:

#include “IRremote.h”

int RECEPTOR = 9;

int VERMELHO = 13;

int VERDE = 12;

int AZUL = 11;

IRrecv controle(RECEPTOR);

Page 26: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

26 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

decode_results resultado;

int estadoVerm = LOW;

int estadoVerd = LOW;

int estadoAzul = LOW;

void setup() {

Serial.begin(9600);

controle.enableIRIn();

controle.blink13(false);

pinMode (VERMELHO, OUTPUT);

pinMode (VERDE, OUTPUT);

pinMode (AZUL, OUTPUT);

}

void loop() {

if (controle.decode(&resultado)) {

Serial.println(resultado.value, HEX);

if (resultado.value == 0xFF6897) // Tecla 1

if (estadoVerm == LOW)

estadoVerm = HIGH;

else

estadoVerm = LOW;

else if (resultado.value == 0xFF30CF) // Tecla 2

if (estadoVerd == LOW)

estadoVerd = HIGH;

else

estadoVerd = LOW;

else if (resultado.value == 0xFF30CF) // Tecla 3

if (estadoAzul == LOW)

estadoAzul = HIGH;

else

estadoAzul = LOW;

digitalWrite(VERMELHO, estadoVerm);

digitalWrite(VERDE, estadoVerd);

digitalWrite(AZUL, estadoAzul);

controle.resume();

}

}

Page 27: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

27 Respostas dos Exercícios

2.

Esquema:

Sketch:

#include <Wire.h>

#include <RTClib.h>

#include <LiquidCrystal.h>

#include “IRremote.h”

#define TEMPO_ATUALIZACAO 1000

int RECEPTOR = 9;

IRrecv controle(RECEPTOR);

decode_results resultado;

RTC_DS1307 RTC;

LiquidCrystal LCD (12, 11, 5, 4, 3, 2);

const int LM35 = A0;

Page 28: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

28 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

// Base de conversão para Graus Celsius ((5/1023) * 100)

const float BASE_CELSIUS = 0.4887585532746823069403714565;

int dia, mês, ano, hora, minuto, segundo, dia_semana;

char semana[][4] = {“DOM”, “SEG”, “TER”, “QUA”, “QUI”, “SEX”, “SAB”};

float temperatura;

// Opções que serão selecionadas pelo botão: 0-Celsius,

// 1-Fahrenheit, 2-Kelvin,

int opção = 0;

void setup () {

Serial.begin(9600);

Wire.begin();

RTC.begin();

if (! RTC.isrunning()) {

Serial.println(“O RTC não está executando!”);

}

// RTC.adjust(DateTime(__DATE__, __TIME__));

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

lcd.begin (16, 2);

controle.enableIRIn();

controle.blink13(false);

}

void loop () {

DateTime now = RTC.now();

dia = now.day();

mes = now.month();

ano = now.year();

hora = now.hour();

minuto = now.minute();

segundo = now.second();

dia_semana = now.dayOfWeek();

lcd.clear();

if (dia < 10)

lcd.print(“0”);

lcd.print(dia, DEC);

lcd.print(“/”);

Page 29: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

29 Respostas dos Exercícios

if (mes < 10)

lcd.print(“0”);

lcd.print(mes, DEC);

lcd.print(“/”);

lcd.print(now.year(), DEC);

lcd.setCursor(13, 0); // Coluna, Linha

lcd.print(semana[dia_semana]);

lcd.setCursor(0, 1); // Coluna, Linha

if (hora < 10)

lcd.print(“0”);

lcd.print(hora, DEC);

lcd.print(“:”);

if (minuto < 10)

lcd.print(“0”);

lcd.print(minuto, DEC);

lcd.print(“:”);

if (segundo < 10)

lcd.print(“0”);

lcd.print(segundo, DEC);

temperatura = lerTemperatura();

if (controle.decode(&resultado)) {

Serial.println(resultado.value, HEX);

if (resultado.value == 0xFF6897) // Tecla +

opção++;

if (opção > 2)

opção = 0;

else if (resultado.value == 0xFF18E7) // Tecla -

opção--;

if (opção < 0)

opção = 2;

controle.resume();

}

// Exibir a temperatura

if (opção == 0) {

lcd.print(“Temperatura: “);

lcd.setCursor(0, 1);

lcd.print(temperatura);

lcd.write(B11011111);

lcd.print(“Celsius”);

}

else if (opção == 1) {

temperatura = (temperatura * 9)/ 5 + 32;

lcd.print(“Temperatura: “);

lcd.setCursor(0, 1);

Page 30: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

30 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

lcd.print(temperatura);

lcd.write(B11011111);

lcd.print(“Fahrenheit”);

}

else if (opção == 2) {

temperatura = temperatura + 273.15;

lcd.print(“Temperatura: “);

lcd.setCursor(0, 1);

lcd.print(temperatura);

lcd.print(“Kelvin”);

}

delay(TEMPO_ATUALIZACAO);

}

float lerTemperatura() {

return (analogRead(LM35) * BASE_CELSIUS);

}

Capítulo 10

1.

Esquema:

Sketch:

#include “Servo.h”

Servo servo;

Page 31: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

31 Respostas dos Exercícios

int LM 35 = A0;

int SERVO = 6;

float temperatura;

const float BASE_CELSIUS = 0.4887585532746823069403714565;

int angulo = 0;

void setup(){

servo.attach(SERVO);

}

void loop(){

temperatura = lerTemperatura();

angulo = map(angulo, 0, 50, 0, 180);

servo.write (angulo);

delay(100);

}

float lerTemperatura() {

return (analogRead(LM35) * BASE_CELSIUS);

}

2.

Esquema:

Page 32: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

32 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

Sketch:

int MOTOR = 9;

int POT = A0;

int BotaoMais = 13;

int BotaoMenos = 12;

int BotaoParada = 11;

int velocidade = 0;

void setup() {

pinMode(MOTOR, OUTPUT);

pinMode(BotaoMais, INPUT);

pinMode(BotaoMenos, INPUT);

pinMode(BotaoParada, INPUT);

}

void loop() {

if (BotaoMais == HIGH && velocidade <= 250){ // limita o valor até 255

velocidade += 5;

delay(50);

} else if(BotaoMenos == HIGH && velocidade >=5){// limita o valor até 0

velocidade -= 5;

delay(50);

} else if(BotaoParada == HIGH){

velocidade = 0;

delay(50);

}

analogWrite(MOTOR, velocidade);

delay(50);

}

Capítulo 11

1.

fill(0, 0, 255);

rect(10, 10, 50, 80);

2.

fill(255, 0, 0);

stroke(255, 0, 0);

rect(35, 0, 30, 100);

rect(0, 35, 100, 30);

Page 33: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

33 Respostas dos Exercícios

3.

triangle(0, 0, 50, 100, 100, 0);

triangle(10, 10, 50, 90, 90, 10);

triangle(20, 20, 50, 80, 80, 20);

4.

Esquema:

Sketch (Arduino):

int VERMELHO = 11;

int VERDE = 10;

int AZUL = 9;

int vermelho = 0;

int verde = 0;

int azul = 0;

String dado;

void setup() {

Serial.begin(9600);

pinMode (VERMELHO, OUTPUT);

pinMode (VERDE, OUTPUT);

pinMode (AZUL, OUTPUT);

}

Page 34: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

34 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void loop() {

if (Serial.available() > 0) {

// Ler o byte que está na entrada serial

dado = Serial.readStringUntil(‘;’);

if (dado != “”)

vermelho = dado.toInt();

dado = Serial.readStringUntil(‘;’);

if (dado != “”)

verde = dado.toInt();

dado = Serial.readStringUntil(‘\n’);

if (dado != “”)

azul = dado.toInt();

}

analogWrite(VERMELHO, vermelho);

analogWrite(VERDE, verde);

analogWrite(AZUL, azul);

delay(500);

}

Sketch (Processing):

import processing.serial.*;

import g4p_controls.*;

Serial porta;

GKnob knobR;

GKnob knobG;

GKnob knobB;

GImageButton botao;

String[] imagens;

int valorR = 0;

int valorG = 0;

int valorB = 0;

void setup() {

frame.setTitle (“Controle do LED”);

size (600, 480);

knobR = new GKnob(this, 20, 150, 180, 180, 0.8);

knobR.setTurnRange(110.0, 70.0);

knobR.setTurnMode(GKnob.CTRL_ANGULAR);

knobR.setValue(0.0);

Page 35: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

35 Respostas dos Exercícios

knobG = new GKnob(this, 210, 150, 180, 180, 0.8);

knobG.setTurnRange(110.0, 70.0);

knobG.setTurnMode(GKnob.CTRL_ANGULAR);

knobG.setValue(0.0);

knobB = new GKnob(this, 400, 150, 180, 180, 0.8);

knobB.setTurnRange(110.0, 70.0);

knobB.setTurnMode(GKnob.CTRL_ANGULAR);

knobB.setValue(0.0);

imagens = new String[] {“botao.png”, “botao.png”, “botao-press.png” };

botao = new GImageButton(this, 243, 400, imagens);

println(“Portas seriais disponíveis:”);

println(Serial.list());

// Alterar para a porta disponível no computador: 1, 2, etc.

String nomePorta = Serial.list()[0];

porta = new Serial(this, nomePorta, 9600);

}

void draw(){

background(200);

fill(0);

textFont(createFont(“SansSerif”, 36));

text(“Controle da Luminosidade do LED”, 10, 40);

textFont(createFont(“SansSerif”, 18));

text(“Valores: R=” + valorR + “, G=” + valorG + “, B=” + valorB, 10, 80);

}

public void handleKnobEvents(GValueControl controle, GEvent evento) {

valorR = int(knobR.getValueF() * 255);

valorG = int(knobG.getValueF() * 255);

valorB = int(knobB.getValueF() * 255);

}

public void handleButtonEvents(GImageButton controle, GEvent evento) {

if (controle == botao) {

println(“Enviando: “ + valorR + “; “ + valorG + “; “ + valorB);

porta.write(valorR +”;” + valorG + “;” valorB + “\n”);

}

}

Page 36: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

36 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

5.

Esquema:

Sketch (Arduino):

#include <avr/pgmspace.h>

#include “LEDControl.h”

#include “FonteMatriz.h”

const int NUM_MATRIZ = 2;

LEDControl lc=LEDControl(6, 5, 4, NUM_MATRIZ);

String linha = “”;

char comando = ‘R’;

String mensagem = “Envie um texto.”;

int atraso = 500;

void setup() {

Serial.begin(9600);

for (int i = 0; i < NUM_MATRIZ; i++) {

lc.shutdown(i, false);

lc.setIntensity(i, 2);

lc.clearDisplay(i);

}

}

boolean obterComando() {

linha = “”;

while (Serial.available() > 0) {

// Ler o byte que está na entrada serial

linha += (char) Serial.read();

}

Page 37: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

37 Respostas dos Exercícios

if (!linha.equals(“”)) {

comando = linha.charAt(0);

if (comando == ‘R’) {

if (linha.substring(1, linha.length()).toInt() > 0)

atraso = linha.substring(1, linha.length()).toInt();

}

else if (comando == ‘T’) {

if (!linha.substring(1, linha.length()).equals(“”))

mensagem = linha.substring(1, linha.length());

}

return (true);

}

else

return (false);

}

void loop() {

int contador = 0;

int caractere = 0;

int caractereAnterior = 0;

do {

// Verificar a porta serial

if (obterComando() && comando == ‘T’)

break;

if (comando != ‘P’) {

// Obtém cada caractere que compõe a mensagem

caractere = mensagem.charAt(contador);

if (caractere != 0) {

exibirCaractere(1, caractere);

exibirCaractere(0, caractereAnterior);

caractereAnterior = caractere;

delay(atraso);

}

contador++;

}

}

while (caractere != 0);

lc.clearDisplay(0);

}

Page 38: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

38 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

void exibirCaractere(int matriz, int ascii) {

if (ascii >= 0x20 && ascii <= 0x7f) {

// Exibe as sete linhas que compõem o caractere

for (int i = 0; i < 7; i++) {

// Busca na tabela de caracteres uma linha

int linha =

pgm_read_byte_near(fonte5x7 + ((ascii - 0x20) * 8) + i);

lc.setColumn(matriz, 7 - i, linha);

}

}

}

Sketch (Processing):

import processing.serial.*;

import g4p_controls.*;

import java.awt.Font;

Serial porta;

GLabel título;

GLabel txtTexto;

GLabel txtVelocidade;

GTextField texto;

GSlider velocidade;

GImageButton enviar;

GImageButton rolar;

GImageButton pausar;

GImageButton resetar;

String[] imagens;

int valorAnalogico = 0;

void setup() {

frame.setTitle (“Display de LEDs”);

size (600, 400);

titulo = new GLabel(this, (width / 2) - 200, 10, 400, 44);

titulo.setText(“Display de LEDs”);

titulo.setFont (new Font(“SansSerif”, Font.BOLD, 36));

titulo.setTextAlign(GAlign.CENTER, null);

txtTexto = new GLabel(this, 20, 90, 400, 24);

txtTexto.setText(“Digite o texto a ser enviado para o display:”);

txtTexto.setFont (new Font(“SansSerif”, Font.BOLD, 18));

txtTexto.setTextAlign(GAlign.LEFT, null);

Page 39: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

39 Respostas dos Exercícios

texto = new GTextField(this, 20, 120, 560, 32);

texto.setFont (new Font(“SansSerif”, Font.PLAIN, 18));

txtVelocidade = new GLabel(this, 20, 190, 400, 24);

txtVelocidade.setText(“Velocidade da rolagem:”);

txtVelocidade.setFont (new Font(“SansSerif”, Font.BOLD, 18));

txtVelocidade.setTextAlign(GAlign.LEFT, null);

velocidade = new GSlider(this, 20, 220, 560, 20, 15);

velocidade.setLocalColorScheme(6);

velocidade.setValue(0.750);

imagens = new String[] {“enviar-texto.png”, “enviar-texto.png”,

“enviar-texto-press.png”};

enviar = new GImageButton(this, 118, 290, imagens);

enviar.tag = “Enviar o texto”;

imagens = new String[] {“play.png”, “play.png”,

“play-press.png”};

rolar = new GImageButton(this, 218, 290, imagens);

rolar.tag = “Rolar o texto”;

imagens = new String[] {“pause.png”, “pause.png”,

“pause-press.png”};

pausar = new GImageButton(this, 318, 290, imagens);

pausar.tag = “Pausar”;

imagens = new String[] {“reset.png”, “reset.png”,

“reset-press.png”};

resetar = new GImageButton(this, 418, 290, imagens);

resetar.tag = “Resetar”;

println(“Portas seriais disponíveis:”);

println(Serial.list());

// Alterar para a porta disponível no computador: 1, 2, etc.

String nomePorta = Serial.list()[0];

porta = new Serial(this, nomePorta, 9600);

}

void draw() { }

Page 40: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

40 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

public void handleButtonEvents(GImageButton controle, GEvent evento) {

if (controle == enviar && !texto.getText().equals(“”)) {

println(“Enviando: “ + texto.getText());

porta.write(“T” + texto.getText() + “ \n”);

}

else if (controle == rolar) {

int atraso = (int) (2000 - (velocidade.getValueF() * 2000));

println(“Enviando: R” + atraso);

porta.write(“R” + atraso + “\n”);

}

else if (controle == pausar) {

println(“Enviando: P”);

porta.write(“P\n”);

}

else if (controle == resetar) {

println(“Enviando: Envie um texto.”);

porta.write(“TEnvie um texto.\n”);

delay (100);

println(“Enviando: R500”);

porta.write(“R500\n”);

}

}

Capítulo 12

1.

Esquema:

Page 41: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

41 Respostas dos Exercícios

Sketch (Arduino):

int VERMELHO = 9;

int VERDE = 10;

int AZUL = 11;

int vermelho = 0;

int verde = 0;

int azul = 0;

String dado;

void setup() {

Serial.begin(9600);

pinMode (VERMELHO, OUTPUT);

pinMode (VERDE, OUTPUT);

pinMode (AZUL, OUTPUT);

}

void loop() {

if (Serial.available() > 0) {

// Ler o byte que está na entrada serial

dado = Serial.readStringUntil(‘;’);

if (dado != “”)

vermelho = dado.toInt();

dado = Serial.readStringUntil(‘;’);

if (dado != “”)

verde = dado.toInt();

dado = Serial.readStringUntil(‘\n’);

if (dado != “”)

azul = dado.toInt();

}

digitalWrite(VERMELHO, vermelho);

digitalWrite(VERDE, verde);

digitalWrite(AZUL, azul);

delay(500);

}

Aplicativo Android

Arquivo activity_main.xml (Android):

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”

xmlns:tools=”http://schemas.android.com/tools”

Page 42: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

42 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

android:layout_width=”match_parent”

android:layout_height=”match_parent”

android:paddingBottom=”@dimen/activity_vertical_margin”

android:paddingLeft=”@dimen/activity_horizontal_margin”

android:paddingRight=”@dimen/activity_horizontal_margin”

android:paddingTop=”@dimen/activity_vertical_margin”

tools:context=”com.example.controleledrgb.MainActivity” >

<TextView

android:id=”@+id/textView1”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:text=”@string/hello_world”

android:textSize=”28dp” />

<Switch

android:id=”@+id/vermelho”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_alignLeft=”@+id/textView1”

android:layout_below=”@+id/textView1”

android:layout_marginTop=”60dp”

android:onClick=”interruptorClicked”

android:text=”@string/vermelho” />

<Switch

android:id=”@+id/verde”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_alignRight=”@+id/vermelho”

android:layout_below=”@+id/vermelho”

android:layout_marginTop=”35dp”

android:onClick=”interruptorClicked”

android:text=”@string/verde” />

<Switch

android:id=”@+id/azul”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_alignRight=”@+id/verde”

android:layout_below=”@+id/verde”

android:layout_marginTop=”35dp”

android:onClick=”interruptorClicked”

android:text=”@string/azul” />

Page 43: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

43 Respostas dos Exercícios

<Spinner

android:id=”@+id/dispositivo”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_alignParentBottom=”true”

android:layout_centerHorizontal=”true”

android:layout_marginBottom=”36dp” />

<TextView

android:id=”@+id/textView2”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_above=”@+id/dispositivo”

android:layout_alignLeft=”@+id/dispositivo”

android:text=”@string/dispositivos” />

</RelativeLayout>

Arquivo strings.xml (Android):

<?xml version=”1.0” encoding=”utf-8”?>

<resources>

<string name=”app_name”>LED RGB</string>

<string name=”hello_world”>Controle de LED RGB</string>

<string name=”action_settings”>Configurações</string>

<string name=”verde”>Verde (G)</string>

<string name=”vermelho”>Vermelho (R)</string>

<string name=”azul”>Azul (B)</string>

<string name=”dispositivos”>Dispositivos pareados:</string>

</resources>

Arquivo MainActivity.java (Android):

package com.example.controleledrgb;

import java.io.IOException;

import java.io.OutputStream;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.Set;

import com.example.controleledrgb.R;

import android.app.Activity;

import android.bluetooth.BluetoothAdapter;

import android.bluetooth.BluetoothDevice;

Page 44: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

44 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

import android.bluetooth.BluetoothSocket;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Spinner;

import android.widget.Switch;

import android.widget.Toast;

public class MainActivity extends Activity {

private static final String TAG = “MainActivity”;

private Switch vermelho;

private Switch verde;

private Switch azul;

private Spinner dispositivo;

private BluetoothAdapter bt = BluetoothAdapter.getDefaultAdapter();

private BluetoothSocket soquete = null;

private OutputStream saida = null;

private Set<BluetoothDevice> dispositivosPareados;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.v(TAG, “Início do aplicativo...”);

vermelho = (Switch) findViewById(R.id.vermelho);

verde = (Switch) findViewById(R.id.verde);

azul = (Switch) findViewById(R.id.azul);

dispositivo = (Spinner) findViewById(R.id.dispositivo);

ArrayAdapter<String> dados = new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item);

dados.add(“Selecione um dispositivo”);

// Verificar se o aparelho tem suporte a Bluetooth

if (bt != null) {

// Se o Bluetooth não estiver ligado, criar uma intent para ativá-lo

if (!bt.isEnabled()) {

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

int REQUEST_ENABLE_BT = 1;

startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

}

Page 45: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

45 Respostas dos Exercícios

dispositivosPareados = bt.getBondedDevices();

if (dispositivosPareados.size() > 0) {

for (BluetoothDevice item : dispositivosPareados) {

dados.add(item.getName());

}

}

}

dados.setDropDownViewResource(

android.R.layout.simple_spinner_dropdown_item);

dispositivo.setAdapter(dados);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

public void interruptorClicked(View v) {

String dados = “0;”;

if (vermelho.isChecked()) {

dados = “1;”;

}

if (verde.isChecked()) {

dados += “1”;

}

else {

dados += “0;”;

}

if (azul.isChecked()) {

dados += “1\n”;

}

Page 46: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

46 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

else {

dados += “0\n”;

}

Log.v(TAG, “Enviando para “ + dispositivo.getSelectedItem().toString() + “: “

+ dados);

Toast mensagem = Toast.makeText(this.getApplicationContext(),

“Enviando para “ +

dispositivo.getSelectedItem().toString() + “: “ + dados,

Toast.LENGTH_LONG);

mensagem.show();

if (dispositivosPareados.size() > 0) {

for (BluetoothDevice item : dispositivosPareados) {

if (dispositivo.getSelectedItem().toString().equalsIgnoreCase(item.getName())) {

try {

BluetoothDevice dispositivoRemoto = bt.getRemoteDevice(item.getAddress());

soquete = criarSoqueteBluetooth(dispositivoRemoto);

soquete.connect();

// Cancelar a descoberta, pois torna a conexão mais lenta

bt.cancelDiscovery();

saída = soquete.getOutputStream();

byte[] buffer = dados.getBytes();

saída.write(buffer);

saída.close();

soquete.close();

}

catch (IOException erro) {

Log.v(TAG, “Erro: “ + erro.toString());

}

}

}

}

}

private BluetoothSocket criarSoqueteBluetooth(BluetoothDevice dispositivo)

throws IOException {

Method método;

BluetoothSocket tmpSoquete = null;

try {

método = dispositivo.getClass().getMethod(“createRfcommSocket”, new Class[]

{int.class});

tmpSoquete = (BluetoothSocket) método.invoke(dispositivo, 1);

}

Page 47: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

47 Respostas dos Exercícios

catch (SecurityException e) {

Log.v(TAG, “Erro: “, e);

}

catch (NoSuchMethodException e) {

Log.v(TAG, “Erro: “, e);

}

catch (IllegalArgumentException e) {

Log.v(TAG, “Erro: “, e);

}

catch (IllegalAccessException e) {

Log.v(TAG, “Erro: “, e);

}

catch (InvocationTargetException e) {

Log.v(TAG, “Erro: “, e);

}

return tmpSoquete;

}

}

2.

Esquema:

Sketch (Arduino):

#include <avr/pgmspace.h>

#include “LEDControl.h”

#include “FonteMatriz.h”

Page 48: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

48 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

const int NUM_MATRIZ = 2;

LEDControl lc=LEDControl(6, 5, 4, NUM_MATRIZ);

String linha = “”;

char comando = ‘R’;

String mensagem = “Envie um texto.”;

int atraso = 500;

void setup() {

Serial.begin(9600);

for (int i = 0; i < NUM_MATRIZ; i++) {

lc.shutdown(i, false);

lc.setIntensity(i, 2);

lc.clearDisplay(i);

}

}

boolean obterComando() {

linha = “”;

while (Serial.available() > 0) {

// Ler o byte que está na entrada serial

linha += (char) Serial.read();

}

if (!linha.equals(“”)) {

comando = linha.charAt(0);

if (comando == ‘R’) {

if (linha.substring(1, linha.length()).toInt() > 0)

atraso = linha.substring(1, linha.length()).toInt();

}

else if (comando == ‘T’) {

if (!linha.substring(1, linha.length()).equals(“”))

mensagem = linha.substring(1, linha.length());

}

return (true);

}

else

return (false);

}

void loop() {

int contador = 0;

int caractere = 0;

int caractereAnterior = 0;

Page 49: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

49 Respostas dos Exercícios

do {

// Verificar a porta serial

if (obterComando() && comando == ‘T’)

break;

if (comando != ‘P’) {

// Obtém cada caractere que compõe a mensagem

caractere = mensagem.charAt(contador);

if (caractere != 0) {

exibirCaractere(1, caractere);

exibirCaractere(0, caractereAnterior);

caractereAnterior = caractere;

delay(atraso);

}

contador++;

}

}

while (caractere != 0);

lc.clearDisplay(0);

}

void exibirCaractere(int matriz, int ascii) {

if (ascii >= 0x20 && ascii <= 0x7f) {

// Exibe as sete linhas que compõem o caractere

for (int i = 0; i < 7; i++) {

// Busca na tabela de caracteres uma linha

int linha =

pgm_read_byte_near(fonte5x7 + ((ascii - 0x20) * 8) + i);

lc.setColumn(matriz, 7 - i, linha);

}

}

}

Aplicativo Android

Arquivo activity_main.xml (Android):

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”

xmlns:tools=”http://schemas.android.com/tools”

android:layout_width=”match_parent”

android:layout_height=”match_parent”

android:paddingBottom=”@dimen/activity_vertical_margin”

android:paddingLeft=”@dimen/activity_horizontal_margin”

Page 50: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

50 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

android:paddingRight=”@dimen/activity_horizontal_margin”

android:paddingTop=”@dimen/activity_vertical_margin”

tools:context=”com.example.matrizledreset.MainActivity” >

<TextView

android:id=”@+id/textView1”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_centerHorizontal=”true”

android:text=”@string/msg_enviar”

android:textSize=”18sp” />

<EditText

android:id=”@+id/texto”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_alignLeft=”@+id/textView1”

android:layout_alignRight=”@+id/textView1”

android:layout_below=”@+id/textView1”

android:layout_centerHorizontal=”true”

android:ems=”10”

android:inputType=”textMultiLine”

android:minLines=”3” />

<TextView

android:id=”@+id/textView3”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_alignLeft=”@+id/texto”

android:layout_below=”@+id/texto”

android:layout_marginTop=”28dp”

android:text=”@string/msg_velocidade”

android:textSize=”18sp” />

<SeekBar

android:id=”@+id/velocidade”

android:layout_width=”match_parent”

android:layout_height=”wrap_content”

android:layout_alignLeft=”@+id/textView3”

android:layout_below=”@+id/textView3”

android:max=”2000”

android:progress=”1500” />

Page 51: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

51 Respostas dos Exercícios

<TextView

android:id=”@+id/textView2”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_below=”@+id/velocidade”

android:layout_alignLeft=”@+id/velocidade”

android:layout_marginTop=”28dp”

android:text=”@string/msg_dispositivo”

android:textSize=”18sp” />

<Spinner

android:id=”@+id/dispositivo”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_below=”@+id/textView2”

android:layout_alignLeft=”@+id/textView2” />

<ImageButton

android:id=”@+id/enviar”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_alignLeft=”@+id/dispositivo”

android:layout_alignTop=”@+id/rolar”

android:background=”@android:color/background_light”

android:contentDescription=”@string/msg_enviar”

android:onClick=”enviarClicked”

android:src=”@drawable/botao_texto” />

<ImageButton

android:id=”@+id/rolar”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_below=”@+id/dispositivo”

android:layout_marginLeft=”8dp”

android:layout_marginTop=”28dp”

android:layout_toRightOf=”@+id/enviar”

android:background=”@android:color/background_light”

android:contentDescription=”@string/msg_rolar”

android:onClick=”rolarClicked”

android:src=”@drawable/botao_rolar” />

<ImageButton

android:id=”@+id/pausar”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

Page 52: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

52 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

android:layout_alignTop=”@+id/rolar”

android:layout_marginLeft=”8dp”

android:layout_toRightOf=”@+id/rolar”

android:background=”@android:color/background_light”

android:contentDescription=”@string/msg_pausar”

android:onClick=”pausarClicked”

android:src=”@drawable/botao_pausar” />

<ImageButton

android:id=”@+id/resetar”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_alignParentRight=”true”

android:layout_marginLeft=”8dp”

android:layout_alignTop=”@+id/pausar”

android:background=”@android:color/background_light”

android:contentDescription=”@string/msg_resetar”

android:onClick=”resetarClicked”

android:src=”@drawable/botao_reset” />

</RelativeLayout>

Arquivo strings.xml (Android):

<?xml version=”1.0” encoding=”utf-8”?>

<resources>

<string name=”app_name”>Matriz de LEDs</string>

<string name=”msg_enviar”>Por favor, digite o texto que deseja exibir na matriz

de LEDs:</string>

<string name=”action_settings”>Configurações</string>

<string name=”msg_dispositivo”>Dispositivos pareados:</string>

<string name=”msg_velocidade”>Velocidade:</string>

<string name=”msg_texto”>Enviar o texto</string>

<string name=”msg_rolar”>Rolar</string>

<string name=”msg_pausar”>Pausar</string>

<string name=”msg_resetar”>Resetar</string>

</resources>

Arquivo MainActivity.java (Android):

package com.example.matrizledreset;

import java.io.IOException;

import java.io.OutputStream;

Page 53: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

53 Respostas dos Exercícios

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.Set;

import com.example.matrizledreset.R;

import android.app.Activity;

import android.bluetooth.BluetoothAdapter;

import android.bluetooth.BluetoothDevice;

import android.bluetooth.BluetoothSocket;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.EditText;

import android.widget.SeekBar;

import android.widget.Spinner;

import android.widget.Toast;

public class MainActivity extends Activity {

private static final String TAG = “MatrizLEDs”;

private EditText texto;

private SeekBar velocidade;

private Spinner dispositivo;

private BluetoothAdapter bt = BluetoothAdapter.getDefaultAdapter();

private BluetoothSocket soquete = null;

private OutputStream saída = null;

private Set<BluetoothDevice> dispositivosPareados;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.v(TAG, “Início do aplicativo...”);

texto = (EditText) findViewById(R.id.texto);

dispositivo = (Spinner) findViewById(R.id.dispositivo);

velocidade = (SeekBar) findViewById(R.id.velocidade);

Page 54: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

54 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

ArrayAdapter<String> dados =

new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);

dados.add(“Selecione um dispositivo”);

// Verificar se o aparelho tem suporte a Bluetooth

if (bt != null) {

// Se o Bluetooth não estiver ligado, criar uma intent para ativá-lo

if (!bt.isEnabled()) {

Intent enableBtIntent =

new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

int REQUEST_ENABLE_BT = 1;

startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

}

dispositivosPareados = bt.getBondedDevices();

if (dispositivosPareados.size() > 0) {

for (BluetoothDevice item : dispositivosPareados) {

dados.add(item.getName());

}

}

}

dados.setDropDownViewResource(

android.R.layout.simple_spinner_dropdown_item);

dispositivo.setAdapter(dados);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

Page 55: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

55 Respostas dos Exercícios

public void enviarClicked(View v) {

enviarDadosBluetooth (“T” + texto.getText().toString());

}

public void rolarClicked(View v) {

enviarDadosBluetooth (“R” + (velocidade.getMax() - velocidade.getProgress()));

}

public void pausarClicked(View v) {

enviarDadosBluetooth (“P”);

}

public void resetarClicked(View v) {

enviarDadosBluetooth (“TEnvie um texto.”);

enviarDadosBluetooth (“R500”);

}

private void enviarDadosBluetooth(String dados) {

Log.v(TAG, “Enviando para “ + dispositivo.getSelectedItem().toString() + “:” +

dados);

Toast mensagem = Toast.makeText(this.getApplicationContext(), “Enviando para “ +

dispositivo.getSelectedItem().toString(), Toast.LENGTH_LONG);

mensagem.show();

if (dispositivosPareados.size() > 0) {

for (BluetoothDevice item : dispositivosPareados) {

if (dispositivo.getSelectedItem().toString()

.equalsIgnoreCase(item.getName())) {

try {

BluetoothDevice dispositivoRemoto = bt.getRemoteDevice(item.getAddress());

soquete = criarSoqueteBluetooth(dispositivoRemoto);

soquete.connect();

// Cancelar a descoberta, pois torna a conexão mais lenta

bt.cancelDiscovery();

saída = soquete.getOutputStream();

byte[] buffer = dados.getBytes();

saída.write(buffer);

saída.close();

soquete.close();

}

catch (IOException erro) {

Log.v(TAG, “Erro: “ + erro.toString());

}

}

}

}

}

Page 56: Respostas dos Exercícios€¦ · Respostas dos Exercícios. 2 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica Capítulo 1 1. Especificações Uno Mega Leonardo Microcontrolador

56 Arduino Descomplicado: Como Elaborar Projetos de Eletrônica

private BluetoothSocket criarSoqueteBluetooth(BluetoothDevice dispositivo)

throws IOException {

Method método;

BluetoothSocket tmpSoquete = null;

try {

método = dispositivo.getClass().getMethod(“createRfcommSocket”, new Class[]

{int.class});

tmpSoquete = (BluetoothSocket) metodo.invoke(dispositivo, 1);

}

catch (SecurityException e) {

Log.v(TAG, “Erro: “, e);

}

catch (NoSuchMethodException e) {

Log.v(TAG, “Erro: “, e);

}

catch (IllegalArgumentException e) {

Log.v(TAG, “Erro: “, e);

}

catch (IllegalAccessException e) {

Log.v(TAG, “Erro: “, e);

}

catch (InvocationTargetException e) {

Log.v(TAG, “Erro: “, e);

}

return tmpSoquete;

}

}

Capítulo 13

1.

Abrir o arquivo Capítulo 13 – Exercício 1.fzz no Fritzing.

2.

Abrir o arquivo Capítulo 13 – Exercício 2.fzz no Fritzing.