Beruflich Dokumente
Kultur Dokumente
Arduino
Helmut Kemper
http://www.kemper.com.br
1
Agradecimentos
Prof. Anderson Luiz
Prof. Lelino Pontes
Ednarde Bezerra
Gabriel Liberal
http://www.kemper.com.br
2
Agradecimentos
http://www.kemper.com.br
3
Lei de Ohm
http://www.kemper.com.br
4
Lei de Ohm
http://www.kemper.com.br
5
Lei de Ohm
Corrente
Bateria
Resistor
http://www.kemper.com.br
6
Lei de Ohm
Ampere ( A )
Volts ( V )
Ohm ( )
http://www.kemper.com.br
7
Lei de Ohm
I
U
R
U = R x I
http://www.kemper.com.br
8
Lei de Ohm
U
R
U = R x I
http://www.kemper.com.br
9
Associao de
Resistores
http://www.kemper.com.br
10
Associao de
Resistores
Paralelo
http://www.kemper.com.br
11
Associao de
Resistores
Paralelo
http://www.kemper.com.br
12
Associao de
Resistores
Paralelo
1
1 +_
1 + _
1 + _
1+ _
_
1 = _
Re R1 R2 R3 R4 Rn
http://www.kemper.com.br
13
Associao de
Resistores
Paralelo
Se: R1=R2=R3=R4=Rn
http://www.kemper.com.br
14
Associao de
Resistores
Paralelo
R
_
Re = n
http://www.kemper.com.br
15
Associao de
Resistores
Paralelo
R1
x
R2
_______
Re =
R1 + R2
http://www.kemper.com.br
16
Associao de
Resistores
Paralelo
http://www.kemper.com.br
17
Associao de
Resistores
Srie
http://www.kemper.com.br
18
Associao de
Resistores
Srie
http://www.kemper.com.br
19
Associao de
Resistores
Srie
Re = R1 + R2 + R3
http://www.kemper.com.br
20
Associao de
Resistores
Srie
http://www.kemper.com.br
21
Associao de
Resistores
Divisor de tenso
http://www.kemper.com.br
22
Associao de
Resistores
Divisor de tenso
http://www.kemper.com.br
23
Associao de
Resistores
Divisor de tenso
U1
U2
http://www.kemper.com.br
24
Associao de
Resistores
Divisor de tenso
R1
R2
http://www.kemper.com.br
25
Associao de
Resistores
Divisor de tenso
R1
U1
R2
U2
U1
x
R2
_______
=
R1 + R2
http://www.kemper.com.br
26
Lei de Potncia
http://www.kemper.com.br
27
Lei de Potncia
I
U
R
http://www.kemper.com.br
28
Lei de Potncia
I
U
R
P = U * I
http://www.kemper.com.br
29
Lei de Potncia
Desperdcio na
forma de calor
P ((
))
P = U * I
Potncia em Watts
http://www.kemper.com.br
30
Lei de Potncia
Calor igual a desperdcio;
Excesso de temperatura pode
http://www.kemper.com.br
31
Lei de Ohm e
Potncia
http://www.kemper.com.br
32
Diodo
http://www.kemper.com.br
33
Diodo
Semicondutor
um componente ativo
Tem poder sobre a corrente
http://www.kemper.com.br
34
Diodo
Corrente
Polarizao Direta
http://www.kemper.com.br
35
Diodo
Corrente
Polarizao Reversa
http://www.kemper.com.br
36
Diodo
Serve para controlar o sentido
da corrente;
Diodo
http://www.kemper.com.br
38
Diodo
caracterstica de todo
semicondutor e reduz a tenso
entregue ao resto do circuito
http://www.kemper.com.br
39
Diodo
A tenso de manuteno do
http://www.kemper.com.br
40
Diodo
U
U-0,7
http://www.kemper.com.br
41
Diodo
o diodo polarizado
inversamente e proporcional a
temperatura.
http://www.kemper.com.br
42
LED
http://www.kemper.com.br
43
LED
Diodo Emissor de Luz
S acende se for ligado no
sentido correto
http://www.kemper.com.br
44
LED
R
LED
http://www.kemper.com.br
45
LED
Lei de Ohm:
U = R x I
R
LED
http://www.kemper.com.br
46
LED
Lei de Ohm:
U - U = R x 0,020
LED
R
LED
http://www.kemper.com.br
47
LED
U = 5V
U = 1.8V
I = 20mA
LED
LED
LED
http://www.kemper.com.br
48
LED
U = 5V
U = 1.8V
I = 20mA
LED
LED
U - U = R x 0.02
5 - 1.8 = R x 0.02
3.2 = R x 0.02
R = 3.2 / 0.02
R = 160
LED
http://www.kemper.com.br
49
Arduino
http://www.kemper.com.br
50
Arduino
http://www.kemper.com.br
51
Arduino
Projeto Italiano de baixo custo
Arquitetura de 8-bits
Portas analgicas e digitais
Serial emulada por USB
http://www.kemper.com.br
52
Arduino
Compilador gratuito
Framework Wiring
Programao C / C++
http://www.kemper.com.br
53
Arduino
Digital
http://www.kemper.com.br
54
Arduino
Alimentao
http://www.kemper.com.br
55
Arduino
Analgico
http://www.kemper.com.br
56
Arduino
USB
http://www.kemper.com.br
57
Arduino
Alimentao
http://www.kemper.com.br
58
Programao
http://www.kemper.com.br
59
Programao
Estrutura bsica baseada no
framework Wiring
setup ()
loop ()
http://www.kemper.com.br
60
setup ()
a primeira funo a ser
chamada
loop ()
http://www.kemper.com.br
62
Exemplo
void setup ()
{
//Recebe as configuraes iniciais
}
void loop ()
{
//Recebe o cdigo fonte
}
http://www.kemper.com.br
63
Pinos Digitais
Podem ser configurados como
entrada ou sada
http://www.kemper.com.br
64
Pinos Digitais
Funes digitais:
pinMode ( n, INPUT / OUTPUT);
digitalWrite ( n, HIGH / LOW );
digitalRead ( n );
http://www.kemper.com.br
65
Exemplo
void setup ()
{
pinMode ( 3, INPUT );
}
( Continua )
http://www.kemper.com.br
66
Exemplo
void loop ()
{
digitalWrite ( 3, HIGH );
delay ( 300 );
digitalWrite ( 3, LOW);
delay ( 300 );
}
http://www.kemper.com.br
67
http://www.kemper.com.br
68
http://www.kemper.com.br
69
http://www.kemper.com.br
70
http://www.kemper.com.br
71
http://www.kemper.com.br
72
http://www.kemper.com.br
73
http://www.kemper.com.br
74
Resistor de pull-up
http://www.kemper.com.br
75
Resistor de pull-up
Chave
simples
pino Arduino
Resistor de pull-up
Resistor de
pull-up
Chave
simples
pino Arduino
Correto!
http://www.kemper.com.br
77
Resistor de pull-up
Entradas digitais ligadas a
Resistor de pull-up
http://www.kemper.com.br
79
Resistor de pull-up
http://www.kemper.com.br
80
Resistor de pull-up
O valor do resistor de pull-up
gira em torno de 20k;
http://www.kemper.com.br
81
Resistor de pull-up
void setup ()
{
pinMode ( 3, INPUT );
//Ligar pull-up
digitalWrite ( 3, HIGH );
}
http://www.kemper.com.br
82
Resistor de pull-up
void setup ()
{
pinMode ( 3, INPUT );
//Desligar pull-up
digitalWrite ( 3, LOW );
}
http://www.kemper.com.br
83
http://www.kemper.com.br
85
http://www.kemper.com.br
87
Memria
http://www.kemper.com.br
88
Memria
Cdigo
Dados
________
________
________
________
________
________
________
________
________
________
________
________
________
________
________
http://www.kemper.com.br
89
Memria
Dividida em blocos de 8-bits
chamados de bytes;
http://www.kemper.com.br
90
Memria
http://www.kemper.com.br
91
Memria de Dados
Pouco espao, 128 ou 256 bytes
dependendo do modelo do
Arduino;
Memria de Cdigo
Arquiva o programa;
Grande quantidade de espao
http://www.kemper.com.br
93
Memria de Cdigo
Os dados no podem ser
constantes do programa.
http://www.kemper.com.br
94
Tipos de Dados e
Memria
http://www.kemper.com.br
95
Tipos de Dados e
Memria
A escolha correta do tipo de
http://www.kemper.com.br
96
http://www.kemper.com.br
97
http://www.kemper.com.br
98
http://www.kemper.com.br
99
S. Sinal
C. Sinal
-7
1001
-5
1011
-1
1111
0000
0000
0001
0001
0101
0101
0111
0111
http://www.kemper.com.br
101
http://www.kemper.com.br
102
http://www.kemper.com.br
103
Exemplo
int pino_led = 13;
void setup ()
{
pinMode ( pino_led, OUTPUT );
}
http://www.kemper.com.br
104
Exemplo
http://www.kemper.com.br
105
Exemplo
int pino_led = 13;
void setup ()
{
pinMode ( pino_led, OUTPUT );
}
http://www.kemper.com.br
106
Exemplo
int pino_led = 13;
http://www.kemper.com.br
107
Exemplo
int pino_led = 13;
Exemplo
O correto seria:
const byte pino_led = 13;
_____
http://www.kemper.com.br
109
Exemplo
const byte pino_led = 13;
_____
http://www.kemper.com.br
110
Exemplo
const byte pino_led = 13;
_____
http://www.kemper.com.br
111
Exemplo
const byte pino_led = 13;
_____
void setup ()
{
pinMode ( pino_led, OUTPUT );
}
http://www.kemper.com.br
112
S/ S.
C/ S.
Espao
byte
byte
1 byte
bollean
bollean
1 byte
char
1 byte
int
2 bytes
char
int
unsigned
char
unsigned
int
http://www.kemper.com.br
113
S/ S.
C/ S.
Espao
word
word
2 bytes
long
4 bytes
long
unsigned
long
float
float
4 bytes
double
double
4 bytes
http://www.kemper.com.br
114
http://www.kemper.com.br
115
http://www.kemper.com.br
116
http://www.kemper.com.br
117
Exemplos
unsigned char letra = a;
Reserva um espao de 1 byte para
arquivar uma varivel tipo letra e
atribui o valor equivalente a letra
a.
http://www.kemper.com.br
118
Exemplos
unsigned int contador = 0;
Reserva 2 bytes na memria de
dados para receber valores entre
0 e 65,535 e atribui o valor 0.
http://www.kemper.com.br
119
Exemplos
http://www.kemper.com.br
120
http://www.kemper.com.br
121
http://www.kemper.com.br
122
http://www.kemper.com.br
123
Variveis Locais e
Globais
http://www.kemper.com.br
124
Variveis Locais e
Globais
Todas as variveis criadas antes
de setup() e loop() so globais,
ou seja, elas existem em todo o
programa;
http://www.kemper.com.br
125
Variveis Locais e
Globais
Variveis criadas dentro de uma
funo s existe dentro da
funo e no podem ser vistas
do lado de fora;
Elas so locais.
http://www.kemper.com.br
126
Exemplos
unsigned int contador;
void setup ()
{
//contador uma varivel
//global e existe em todo o cdigo
contador = 0;
}
http://www.kemper.com.br
127
Exemplos
void setup ()
{
unsigned int contador;
}
void loop ()
{
//contador s existe dentro de setup()
contador = 0;
}
( Erro! )
http://www.kemper.com.br
128
Exemplos
void setup ()
{
//contador destrudo quando setup() acabar
unsigned int contador;
}
void loop ()
{
//contador ser destrudo e criado a cada interao de loop()
unsigned int contador;
}
( Correto! )
http://www.kemper.com.br
129
Operaes de
Comparao
http://www.kemper.com.br
130
Operaes de
Comparao
Compara dois valores e retorna
http://www.kemper.com.br
131
Operaes de
Comparao
Os valores comparados no so
alterados;
http://www.kemper.com.br
132
Operaes de
Comparao
Operao
igualdade
Smbolo
==
Descrio
compara se E
igual a D
Exemplo
( E == D )
compara se E
maior que
>
maior do
( E > D )
que D
compara se E
menor que
<
menor que
( E < D )
D
http://www.kemper.com.br
133
Operaes de
Comparao
Operao
maior igual
que
menor igual
que
Smbolo
Descrio
Exemplo
compara se E
>=
maior
( E >= D )
igual a D
compara se E
<=
menor
( E <= D )
igual a D
compara se E
diferena
!=
diferente
( E != D )
de D
http://www.kemper.com.br
134
Operaes Lgicas
http://www.kemper.com.br
135
Operaes Lgicas
http://www.kemper.com.br
136
Operaes Lgicas
Elas servem de complemento
para as operaes de
comparao;
http://www.kemper.com.br
137
Operaes Lgicas
Operao
Smbolo
Exemplo
AND
&&
( A >= B ) && ( C == B )
OR
||
( A >= B ) || ( C == B )
NOT
! (( A == B ) || ( C == D ))
http://www.kemper.com.br
138
Lgica AND
Direita
Esquerda
Sada
false
false
false
false
true
false
true
false
false
true
true
true
http://www.kemper.com.br
139
Lgica OR
Direita
Esquerda
Sada
false
false
false
false
true
true
true
false
true
true
true
true
http://www.kemper.com.br
140
Lgica NOT
Entrada
Sada
false
true
true
true
http://www.kemper.com.br
141
Operaes
Aritmticas
Nome
Smbolo
Exemplo
Atribuio
A = 9;
Soma
A = A + 1;
Subtrao
B = A - 1;
Multiplicao
A = 3 * 2;
Diviso
A = A / 2;
Mdulo
A = 9 % 2;
http://www.kemper.com.br
142
Operaes
Aritmticas
Nome
Smbolo
Exemplo
Soma
+=
A += 1;
Soma
++
A ++;
Subtrao
-=
B -= 5;
Subtrao
--
B --;
Multiplicao
*=
A *= 3;
Diviso
/=
A /= 2;
http://www.kemper.com.br
143
Controle de Fluxo
http://www.kemper.com.br
144
Controle de Fluxo
Permite dividir o cdigo em
blocos de execuo;
http://www.kemper.com.br
145
Controle de Fluxo
http://www.kemper.com.br
146
Controle de Fluxo
Condicional
Operao
Smbolo
Exemplo
Se
if
if ( A >= B ) { ... }
Se ... Ento
if ... else
switch
if ( A >= B ) { ... }
else { ... }
Controle de Fluxo
if ( condio )
if ( A == B )
{
digitalWrite ( pino_led, HIGH );
}
http://www.kemper.com.br
148
Controle de Fluxo
if ( condio )
if ( A == B )
{
digitalWrite ( pino_led, HIGH );
}
else [ Opcional ]
{
digitalWrite ( pino_led, LOW );
}
http://www.kemper.com.br
149
Controle de Fluxo
if ( condio )
if ( A == B )
{
digitalWrite ( pino_led, HIGH );
}
else if ( A < B )
{
digitalWrite ( pino_led, LOW );
}
http://www.kemper.com.br
150
Controle de Fluxo
if ( condio )
if ( A == B )
{
digitalWrite ( pino_led, HIGH );
}
else if ( A < B )
{
digitalWrite ( pino_led, LOW );
}
else
{
...
}
http://www.kemper.com.br
151
Controle de Fluxo
switch ( condio )
switch ( variavel_qualquer )
{
case 0:
...
break;
case 1:
...
break;
case 100
...
break;
}
http://www.kemper.com.br
152
Controle de Fluxo
switch ( condio )
Todas as comparaes so do
tipo igualdade;
break opcional;
http://www.kemper.com.br
153
Controle de Fluxo
switch ( condio )
Veja a estrutura abaixo:
switch ( A )
{
case 1:
case 2:
case 33:
...
break;
}
http://www.kemper.com.br
154
Controle de Fluxo
switch ( condio )
Ela equivalente a:
if ( (A == 1) || (A == 2) || (A == 33) )
{
...
}
http://www.kemper.com.br
155
Controle de Fluxo
switch ( condio )
Veja a estrutura abaixo:
switch ( A )
{
case 1:
case 2:
...
break;
default:
...
}
http://www.kemper.com.br
156
Controle de Fluxo
switch ( condio )
Ela equivalente a:
if ( (A == 1) || (A == 2) )
{
...
}
else
{
...
}
http://www.kemper.com.br
157
Controle de Fluxo
switch ( condio )
default - executado se o
http://www.kemper.com.br
158
Controle de Fluxo
Lao
Operao
Smbolo
Exemplo
contagem
for ()
while ()
while ( A != 10 )
do { ... }
posterior
while ()
do { ... } while ( A != 10 )
http://www.kemper.com.br
159
Lao - for ()
Recebe trs parmetros
1 p. Valor inicial;
2 p. Condio ( enquanto
true );
Lao - for ()
Os parmetros so opcionais e se
no forem usados devem haver
obrigatoriamente ponto e
vrgula;
http://www.kemper.com.br
161
Exemplo
for ( a = 0; a != 10; a ++ )
{
. . .
}
http://www.kemper.com.br
162
Exemplo
for ( a=1, b=2; a==10||b==5; )
{
. . .
}
http://www.kemper.com.br
163
Exemplo
for ( ; true ; )
{
. . .
}
http://www.kemper.com.br
164
Lao - while ()
Aceita apenas um parmetro ou
condio;
http://www.kemper.com.br
165
Exemplo
while ( a != 10 )
{
. . .
}
http://www.kemper.com.br
166
Lao - do {}while()
Aceita apenas um parmetro ou
condio;
http://www.kemper.com.br
167
Exemplo
do
{
. . .
} while ( a != 10 );
http://www.kemper.com.br
168
Sensores
http://www.kemper.com.br
169
Sensores
Ultrasom
http://www.kemper.com.br
170
Sensores
http://www.kemper.com.br
171
Sensores
HC-SR04:
Tem quatro pinos, Vcc, Trigger,
Echo e Gnd;
Alimentao de 5V;
http://www.kemper.com.br
172
Sensores
HC-SR04:
A documentao e bibliotecas
podem ser encontradas no site da
loja;
http://www.kemper.com.br
173
Exemplo
Ultrasonic nome_construtor ( n pino ping, n pino echo );
void setup ()
{
pinMode ( n pino ping, OUTPUT );
pinMode ( n pino echo, OUTPUT );
}
void loop ()
{
distancia = nome_Construtor.Ranging ( CM );
}
http://www.kemper.com.br
174
Sensores
http://www.kemper.com.br
175
Sensores
Alimentao de 5V;
http://www.kemper.com.br
176
Sensores
http://www.kemper.com.br
177
http://www.kemper.com.br
178
http://www.kemper.com.br
179
http://www.kemper.com.br
180
Exemplo
http://www.kemper.com.br
181
Exemplo
Exemplo
20% 80%
http://www.kemper.com.br
183
50% 50%
http://www.kemper.com.br
184
20% 80%
50% 50%
http://www.kemper.com.br
185
http://www.kemper.com.br
186
Exemplo
http://www.kemper.com.br
187
Exemplo
http://www.kemper.com.br
188
Exemplo
http://www.kemper.com.br
189
Exemplo
A lei de potncia diz que:
P = U * I
P = 24V * 2A
P = 48W
http://www.kemper.com.br
190
Exemplo
A lei de Ohm diz que:
U = R * I
24V = R * 2A
R = 12
http://www.kemper.com.br
191
Exemplo
http://www.kemper.com.br
192
Exemplo
http://www.kemper.com.br
193
Exemplo
A lei de Ohm diz que:
U = R * I
U = (R + R ) * I
24V = ( 12 + 6 ) * I
I = 1,33A
motor
srie
http://www.kemper.com.br
194
Exemplo
http://www.kemper.com.br
195
Exemplo
U = R * I
U = 6 * 1,33A
= 8V
U
Resistor
http://www.kemper.com.br
196
Exemplo
http://www.kemper.com.br
197
Exemplo
P = U * I
P = 8V * 1,33
P = 10,66W
http://www.kemper.com.br
198
Exemplo
O circuito consome ~32W de
potncia total;
Concluso
http://www.kemper.com.br
200
Concluso
http://www.kemper.com.br
201
http://www.kemper.com.br
202
http://www.kemper.com.br
203
Os pinos D5 e D6 tm os timers
http://www.kemper.com.br
204
http://www.kemper.com.br
205
http://www.kemper.com.br
206
L293D
http://www.kemper.com.br
207
L293D
http://www.kemper.com.br
208
L293D
http://www.kemper.com.br
209
L293D
http://www.kemper.com.br
210
L293D
Vcc1 - Alimentao do
integrado
Vcc2 - Alimentao do motor
VOH - Tenso de manuteno
por driver do motor
Dissipao de calor
Temperatura mxima
4,5V a 7V
Vcc1 a 36V
Vcc2 - 1,4V
2075mW - 71.4mW por C
acima de 25C
150C
http://www.kemper.com.br
211
L293D
http://www.kemper.com.br
212
L293D
Pinos 1,2EN e 3,4EN -
0 - Desliga o motor
http://www.kemper.com.br
213
L293D
Ligue o grupo 1Y, 2Y e o grupo
3Y, 4Y aos terminais dos
motores A e B respectivamente;
http://www.kemper.com.br
214
L293D
funcionamento do motor:
http://www.kemper.com.br
215
L293D
1A
2A
1,2EN
Motor A
3A
4A
3,4EN
Motor B
Parado
Parado
Frente
Frente
Parado
Parado
Parado
Parado
Parado
Parado
Parado
Parado
Parado
Parado
http://www.kemper.com.br
216
L293D
Exemplo de clculo para
http://www.kemper.com.br
217
L293D
O fabricante afirma que V
http://www.kemper.com.br
218
L293D
http://www.kemper.com.br
219
L293D
http://www.kemper.com.br
220
L293D
Aplicando-se a lei de potncia
temos:
P = U * I
P = 2,8V * ( 500mA * 2 motores )
P = 2,8W dissipados no circuito
integrado.
http://www.kemper.com.br
221
L293D
Perceba que 2,8W a potncia
http://www.kemper.com.br
222
L293D
Sempre ligue um capacitor de
L293D
http://www.kemper.com.br
224
Sevo de
Aeromodelo
http://www.kemper.com.br
225
Sevo de
Aeromodelo
Servo de aeromodelo um
http://www.kemper.com.br
226
Sevo de
Aeromodelo
http://www.kemper.com.br
227
Sevo de
Aeromodelo
Eles geralmente no so feitos
http://www.kemper.com.br
228
Sevo de
Aeromodelo
As suas principais caractersticas
so a fora e a preciso no
ngulo do eixo central,
permanecendo no ngulo
correto enquanto houver sinal
de controle e alimentao;
http://www.kemper.com.br
229
Sevo de
Aeromodelo
Eles costumam ter trs pinos,
http://www.kemper.com.br
230
Sevo de
Aeromodelo
O controle do ngulo feito
http://www.kemper.com.br
231
Sevo de
Aeromodelo
http://www.kemper.com.br
232
Sevo de
Aeromodelo
O servo no tem um circuito de
http://www.kemper.com.br
233
Sevo de
Aeromodelo
Quando um servo impedido de
Sevo de
Aeromodelo
O Arduino s consegue controlar
servo pelos pinos digitais 9 e 10
da placa;
http://www.kemper.com.br
235
Exemplo
http://www.kemper.com.br
236
Exemplo
#include <Servo.h>
Servo nome_servo;
void setup ()
{
// Liga o pulso de controle do servo
nome_servo.attach( 9 );
}
( continua )
http://www.kemper.com.br
237
Exemplo
( continuao )
void loop ()
{
nome_servo.write( 90 );
delay ( 2000 );
nome_servo.write( 80 );
delay ( 2000 );
nome_servo.write( 70 );
//Desliga o pulso de controle do servo
nome_servo.detach ();
}
http://www.kemper.com.br
238
Sevo de
Aeromodelo
#include <Servo.h>
Servo.h chama uma classe
http://www.kemper.com.br
239
Sevo de
Aeromodelo
Servo nome_servo;
a chamada do construtor da
classe e deve ficar fora das
funes setup () e loop ();
http://www.kemper.com.br
240
Sevo de
Aeromodelo
nome_servo.attach( 9|10, min, max );
Ativa o pulso de controle do servo;
Recebe os pinos 9 ou 10;
min - o tempo em S mnimo da
parte alta pulso de controle;
http://www.kemper.com.br
241
Sevo de
Aeromodelo
nome_servo.write( ngulo );
Determina o ngulo para o qual
o eixo do servo deve girar;
http://www.kemper.com.br
242
Sevo de
Aeromodelo
nome_servo.writeMicroseconds(
S );
http://www.kemper.com.br
243
Sevo de
Aeromodelo
nome_servo.detach();
Desliga o pulso de controle do
servo;
http://www.kemper.com.br
244
Obrigado!
Caso voc tenha alguma dvida,
no deixe de entrar em contato
pelo site http://www.kemper.com.br
ou pelo e-mail
Helmut.kemper@gmail.com
http://www.kemper.com.br
245