Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmos e Programao em
Linguagem C para Engenharia
Eduardo Ono
12/11/2014
Sumrio
1
Introduo ............................................................................................................................................................... 1
Algoritmos ............................................................................................................................................................... 4
4.1
Compilador ................................................................................................................................................... 5
4.2
IDE ..................................................................................................................................................................... 5
Introduo ..................................................................................................................................................... 6
5.1.1
5.2
5.3
5.4
Comentrios ................................................................................................................................................. 7
Tipos de Dados............................................................................................................................................ 8
6.2
Variveis ......................................................................................................................................................... 8
6.2.1
6.2.2
6.2.3
6.2.4
6.3
6.4
Exerccios .................................................................................................................................................... 10
Operadores .......................................................................................................................................................... 12
7.1
Operador de Atribuio....................................................................................................................... 12
7.2
7.3
7.4
7.5
7.6
8.1.1
Funes de Entrada..................................................................................................................... 15
i
8.1.2
8.2
9
Funes Trigonomtricas................................................................................................................... 16
Exerccios .................................................................................................................................................... 21
Comando if ................................................................................................................................................. 22
10.2
10.3
11.2
11.2.1
11.2.2
11.3
11.4
Exerccios .................................................................................................................................................... 36
12 Vetores e Matrizes............................................................................................................................................ 38
12.1
Vetores ......................................................................................................................................................... 38
12.1.1
12.1
Matrizes ....................................................................................................................................................... 41
12.2
Exerccios .................................................................................................................................................... 42
13 Strings..................................................................................................................................................................... 43
14 Funes Definidas pelo Usurio................................................................................................................ 44
15 Microcontroladores ......................................................................................................................................... 45
16 Lab_Uino ................................................................................................................................................................ 46
16.1
16.2
Entradas e Sadas.................................................................................................................................... 46
16.2.1
16.2.2
16.2.3
Introduo .................................................................................................................................................. 48
17.1.1
17.2
Pisca LED..................................................................................................................................................... 48
17.2.1
17.2.2
17.3
Ferramentas .................................................................................................................................... 48
Fundamentos .................................................................................................................................. 48
Controle da luminosidade do LED no Lab_Uino ........................................................... 50
17.4
17.5
17.6
17.7
18 Apndice................................................................................................................................................................ 57
18.1
Orwell Dev-C++........................................................................................................................................ 57
18.1.1
iii
ndice de Listagens
Listagem 5.1. Primeiro programa em C: Ol Mundo!. ............................................................................. 6
Listagem 8.1................................................................................................................................................................... 15
Listagem 9.1. Clculo da media aritmtica das notas de duas provas............................................. 17
Listagem 9.2. Clculo da rea de um tringulo pela frmula de Heron. ......................................... 18
Listagem 9.3. Clculo do resistor equivalente para dois resistores em srie e em paralelo.
.............................................................................................................................................................................................. 19
Listagem 9.4. Caixa eletrnico. ......................................................................................................................... 20
Listagem 9.5. Troca de valores entre duas variveis. .............................................................................. 20
Listagem 9.6. Ordenao crescente de trs nmeros. ............................................................................. 21
Listagem 10.1. Verifica se uma pessoa maior de idade. ...................................................................... 22
Listagem 10.2. Programa que verifica se um aluno foi aprovado...................................................... 23
Listagem 10.3. Programa que verifica se um aluno foi aprovado ou reprovado (apenas
utilizando o comando if). ........................................................................................................................................ 24
Listagem 10.4. Programa que verifica se um nmero par ou mpar. ........................................... 25
Listagem 10.5. Programa que verifica se um aluno foi aprovado ou reprovado. ...................... 25
Listagem 10.6. Programa que exibe o maior entre dois nmeros. .................................................... 26
Listagem 10.7. Programa que exibe o maior e o menor entre dois nmeros. ............................. 26
Listagem 10.8. Programa que verifica se um ano bissexto ou no. ............................................... 27
Listagem 10.9. Programa que classifica um tringulo quanto aos lados. ...................................... 29
Listagem 10.10. Equao da reta que passa por dois pontos. ............................................................. 30
Listagem 10.11. Imprime o ms do ano por extenso. .............................................................................. 31
Listagem 11.1. Lao infinito que pode ser interrompido ao se pressionar uma tecla. ........... 33
iv
Listagem 11.2. Obteno das razes de uma equao do segundo grau pela frmula de
Bhaskara. ......................................................................................................................................................................... 33
Listagem 11.3. Programa que soma nmeros fornecidos pelo usurio em tempo de
execuo. ......................................................................................................................................................................... 34
Listagem 11.4. Programa que verifica se um nmero primo ou no. .......................................... 35
Listagem 11.5. Soma de nmeros inteiros consecutivos. ...................................................................... 36
Listagem 12.1. Programa que verifica se um nmero elemento de um vetor. ........................ 40
Listagem 17.1. Leitura de potencimetro. ..................................................................................................... 52
Listagem 17.2. Controle da luminosidade de LED com potencimetro. ........................................ 53
1 Introduo
A presente apostila foi concebida a partir de notas de aulas da disciplina
Algoritmos e Linguagem de Programao, ministrada no Unisal Campus Campinas / So
Jos. O objetivo principal desse material consiste em fornecer ao aluno de um curso
introdutrio de programao em linguagem C um texto conciso que aborde os trs
principais aspectos necessrios para a programao de computadores: (i) Algoritmos e
lgica de programao, (ii) Linguagem de programao e (iii) Tcnicas de programao.
2 Lgica de Programao
Definio. Lgica a parte da filosofia que trata das formas do pensamento em
geral (deduo, induo, hiptese, inferncia, etc.) e das operaes intelectuais que visam
determinao do que verdadeiro ou no.
Definio. Uma proposio uma sentena declarativa que admite apenas um dos
dois valores lgicos: verdadeiro (true) ou falso (false).
Definio. Uma proposio composta uma proposio construda a partir de
outras proposies existentes.
Exemplo. Seja p uma proposio dada por:
p: Joozinho tropeou e caiu.
Essa proposio, embora vlida, s entendida por um computador quando escrita
da forma:
p: Joozinho tropeou e Joozinho caiu.
( )
( )
( )
( )
Exemplo. Seja x um nmero real tal que 1 2. Essa expresso deve ser escrita
como
1 e 2.
Desse modo, a negao :
< 1 ou > 2.
3 Algoritmos
Definio. Uma instruo um conjunto de regras ou normas definidas para a
realizao ou emprego de algo. Em computao, instruo a informao que indica a um
computador uma ao elementar a ser executada.
Definio. Um algoritmo uma sequncia finita de instrues que quando
executada dever atingir o seu objetivo, ou seja, a resoluo de um problema ou execuo
de uma tarefa.
4 Programao de Computador
Definio. Um programa de computador um conjunto de instrues lgicas e
algoritmos escritos numa linguagem de programao e que so interpretados e
executados por uma mquina.
4.1 Compilador
Definio. Um compilador um programa que converte (traduz) um cdigo escrito
em linguagem compreensvel para o ser humano para uma linguagem de mquina.
Um compilador geralmente no possui ferramentas para a edio de um programa.
4.2 IDE
Definio. Um ambiente de desenvolvimento integrado, mais conhecido como IDE
(do ingls Integrated Development Environment), um software que proporciona
ferramentas que facilitam a edio, compilao e gerenciamento de projetos de programas
de computador.
Nessa apostila foi utilizado o IDE Dev-C++ para a implementao dos programas,
tambm conhecido como Dev-Cpp (do ingls C plus-plus).
5 A Linguagem de Programao C
5.1 Introduo
A linguagem de programao C foi criada na dcada de 70 por Dennis Ritchie
(9/Set/1941 12/Out/2011). Tornou-se em pouco tempo uma das linguagens mais
utilizadas na programao de computadores, bem como uma referncia para muitas das
linguagens de programao atuais.
5.1.1
Estrutura de um Programa em C
Veremos adiante que acentos e outros smbolos devem ser tratados como
caracteres especiais.
auto
do
break
for
short
union
goto
signed
unsigned
case
double
if
sizeof
void
char
else
int
static
volatile
const
enum
long
struct
while
continue
extern
register
switch
default
float
return
typedef
5.4 Comentrios
Definio. Um comentrio uma informao que no considerada pelo
compilador.
H dois tipos de comentrios na linguagem C: (i) bloco de comentrios e (ii)
comentrio de final de linha.
Bloco de comentrios: /* ... */
Comentrio de final de linha: // ...
Tamanho (Bytes)
Intervalo
char
-128 127
unsigned char
0 255
int
-32768 32767
unsigned int
0 65536
float
7 dgitos significativos
double
15 dgitos significativos
6.2 Variveis
Definio. Uma varivel uma entidade destinada a armazenar
6.2.1
Nomes de variveis
O nome de uma varivel deve ser composto por letras ({A, ..., Z, a, ..., z}) e algarismos
arbicos ({0, ..., 9}). O caractere sublinhado _ (underline em ingls) considerado uma
letra. O primeiro caractere deve ser uma letra. Porm, no recomendado iniciar o nome
de uma varivel com o caractere sublinhado, pois muitas rotinas de bibliotecas iniciam
nomes de variveis dessa forma.
A linguagem C Case Sensitive, ou seja, diferencia maisculas de minsculas.
Nomes de variveis tambm obedecem a esse comportamento. Convm salientar que nem
todas as linguagens de programao, por exemplo, Pascal, so Case Sensitive.
Pelo menos os 31 primeiros caracteres de um nome so significativos.
6.2.2
Declarao de variveis
6.2.3
6.2.4
Exemplo:
int idade = 18;
Mais de uma varivel de um mesmo tipo podem ser inicializadas em uma nica
instruo, separadas por vrgula.
int idade = 18;
float altura = 1.79, peso = 84.1;
// altura em m e peso em kg
-128
-128
127
127
-129
127
128
-129
255
-1
6.4 Exerccios
1. Qual a diferena entre declarar uma varivel e definir (ou inicializar) uma
varivel?
10
11
7 Operadores
7.1 Operador de Atribuio
O operador de atribuio = utilizado para atribuir um valor a uma varivel.
Operador
Operao
Expresso
Descrio
Adio (Soma)
x+y
Soma x com y.
Subtrao
xy
Subtrai y de x.
Multiplicao
x*y
Multiplica x por y.
Diviso
x/y
Divide x por y.
Mdulo
x%y
++
Incremento
x++, ++x
--
Decremento
y--, --y
Inverso de
sinal
-x
Soma 1 a x.
Subtrai 1 de x.
Inverte o sinal de x.
Dividendo
Divisor
Resto
Quociente
12
Operador
Operao
Expresso Descrio
&&
E (AND)
x && y
xEy
||
OU (OR)
x || y
x OU y
Negao (NOT)
!x
No x.
// resulta em 1
// resulta em 0
// resulta em 0
1 || 1
1 || 0
0 || 0
// resulta em 1
// resulta em 1
// resulta em 0
Operador
Operao
Expresso
Descrio
>
Maior que
x>y
<
Menor que
x<y
>=
Maior ou igual
x >= y
<=
Menor ou igual
x <= y
==
Igual
x == y
Verifica se x igual a y.
!=
Diferente
x != y
Verifica se x diferente de y.
=
=
=
=
1 <
2 <
A
A
2; // x recebe 1
1; // x recebe 0
< B; // x recebe 1, conforme a tabela ASCII
< a; // x recebe 1, conforme a tabela ASCII
13
Operador
Operao
Expresso
&
E bit-a-bit
x>y
OU inclusivo bit-a-bit
x<y
OU exclusivo bit-a-bit
x >= y
<<
Deslocamento a esquerda
x <= y
>>
Deslocamento a direita
x == y
Verifica se x igual a y.
Complemento de um (unrio)
x != y
Verifica se x diferente de y.
14
Descrio
8 Funes da Linguagem C
Definio. Em programao, uma funo uma sub-rotina, ou seja, um bloco de
instrues que pode ser utilizado diversas vezes na execuo de um programa.
Definio. Um argumento de uma funo um parmetro de entrada da funo.
Uma funo pode conter vrios argumentos.
Exemplo. No programa a seguir realizado o clculo da mdia m de dois valores
atravs da funo media, que recebe como argumentos duas variveis do tipo ponto
flutuante.
float media(float a, float b)
Listagem 8.1
{
return (a + b)/2;
}
Outra forma:
float media(float a, float b)
{
float m; // No podemos utilizar media pois o nome da funo.
m = (a + b)/2;
return m;
}
8.1.1
Funes de Entrada
15
(passagem por referncia), a varivel deve ser precedida pelo operador &, denominado
operador de endereo .
8.1.2
Funes de Sada
Instruo de sada
Sada
printf("Ol mundo!");
Ol mundo!
Ol mundo!
A funo getch comumente utilizada para promover uma pausa na tela de sada
(console) ao trmino de um programa. Como a funo getch no requer nenhum
argumento, a instruo escrita simplesmente como:
getch();
16
9 Estruturas Sequenciais
Na linguagem C as instrues de um programa seguem uma sequncia de execuo.
Exemplo. Mdia das notas de duas provas P1 e P2.
#include <stdio.h>
int main()
{
float p1, p2;
// declarao das variveis
p1 = 8.0;
// definio (ou inicializao) da varivel
p2 = 7.0;
// definio (ou inicializao) da varivel
printf("Media = %f", (p1 + p2)/2);
return 0;
}
++
17
int main()
{
float a, b, c, s, area;
printf("Digite as medidas dos lados de um triangulo: ");
scanf("%f %f %f", &a, &b, &c);
s = (a + b + c)/2;
// clculo do semi-permetro
area = sqrt(s*(s a)*(s b)*(s c));
// clculo da rea
printf("Area = %f", area);
return 0;
}
Nesse exemplo fica bem estabelecido que a sequncia correta das instrues
fundamental para a obteno do resultado desejado.
18
Listagem 9.3. Clculo do resistor equivalente para dois resistores em srie e em paralelo.
#include <stdio.h>
int main()
{
float r1, r2, req, tmp;
printf("Digite o valor do resistor
scanf("%f", &r1);
printf("Digite o valor do resistor
scanf("%f", &r2);
req = r1 + r2;
printf("Resistencia equivalente em
tmp = 1.0/r1 + 1.0/r2;
req = 1/tmp;
printf("Resistencia equivalente em
return 0;
R1: ");
R2: ");
Exemplo. Caixa eletrnico. Um caixa eletrnico opera com notas de 50, 20, 10, 5,
2 e 1 Real (suponha que ainda existam notas de R$ 1,00). Determine a quantidade mnima
de notas mediante um valor de saque fornecido por um cliente.
19
20
9.1 Exerccios
1. Escreva um programa que pea ao usurio as medidas dos catetos de um tringulo
retngulo e calcula a medida da hipotenusa desse tringulo.
2. Um caixa eletrnico opera com notas de 100, 50, 20, 10, 5 e 2 Reais. Escreva um
programa que calcula a quantidade mnima de cada nota mediante um valor de
saque fornecido por um cliente.
21
10 Estruturas Condicionais
10.1 Comando if
A expresso lgica contida na condio entre parnteses ser avaliada e a
instruo seguinte, ou bloco de instrues seguintes, sero executados.
Exemplo. Verificao se uma pessoa maior de idade.
Listagem 10.1. Verifica se uma pessoa maior de idade.
#include <stdio.h>
int main()
{
int idade;
printf("Digite a idade: ");
scanf("%d", &idade);
if (idade >= 18) printf("Maior de idade.");
return 0;
}
A expresso condicional pode ser composta, uma vez que uma proposio
composta tambm uma proposio.
Exemplo. Verificao da aprovao ou reprovao de um aluno.
22
Um programa para verificar se um aluno foi reprovado iria diferir apenas pela
instruo:
if (mediaFinal < 5.0 || frequencia < 0.75) printf("REPROVADO!");
23
Listagem 10.3. Programa que verifica se um aluno foi aprovado ou reprovado (apenas
utilizando o comando if).
#include <stdio.h>
int main()
{
float mediaFinal, frequencia;
printf("Entre com a media final: ");
scanf("%f", mediaFinal);
printf("Entre com a frequencia: ");
scanf("%f", frequencia);
if (mediaFinal >= 5.0 && frequencia >= 0.75) printf("APROVADO");
if (!(mediaFinal >= 5.0 && frequncia >= 0.75)) printf("REPROVADO!");
return 0;
}
#include <stdio.h>
int main()
{
printf("Entre com tres numeros: ");
scanf("%f %f %f", &a, &b, &c);
if (a>b) { aux = a; a = b; b = aux; }
if (b>c) { aux = b; b = c; c = aux; }
if (a>b) { aux = a; a = b; b = aux; }
printf("%f %f %f", a, b, c);
return 0;
}
24
25
Exemplo. Um ano um ano bissexto se for divisvel por 4 mas no por 100, exceto
pelos divisveis por 400, que so bissextos.
26
2 4
2
27
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, delta, x1, x2;
printf("Digite o valor de a: ");
scanf("%f", &a);
printf("Digite o valor de b: ");
scanf("%f", &b);
printf("Digite o valor de c: ");
scanf("%f", &c);
if (a != 0)
{
delta = b*b - 4*a*c;
if (delta >= 0)
{
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
printf("x1 = %f e x2 = %f", x1, x2);
}
else printf("A equacao nao possui raizes reais.");
}
else printf("O valor de a nao pode ser igual a zero.");
return 0;
}
28
// lados de um triangulo
29
30
31
Nesse exemplo, a mensagem I love you! ser exibida infinitas vezes, uma vez
que a expresso condicional sempre verdadeira. Na linguagem C, qualquer nmero
diferente de zero considerado true (verdadeiro).
O comando while equivalente ao for, porm, sem a inicializao e sem o
incremento de uma varivel. Enquanto a condio entre parnteses for verdadeira, ou seja,
diferente de zero, as instrues sero executadas.
32
Listagem 11.1. Lao infinito que pode ser interrompido ao se pressionar uma tecla.
#include <stdio.h>
#include <conio.h>
int main()
{
while (!kbhit())
{
// instrues
}
}
Listagem 11.2. Obteno das razes de uma equao do segundo grau pela frmula de
Bhaskara.
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
float a=0, b, c, delta, x1, x2;
while (a == 0)
{
printf("Digite o valor de a: ");
scanf("%f", &a);
}
printf("Digite o valor de b: ");
scanf("%f", &b);
printf("Digite o valor de c: ");
scanf("%f", &c);
delta = b*b 4*a*c;
if (delta >= 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b sqrt(delta)) / (2*a);
printf("x1 = %f e x2 = %f", x1, x2);
}
else printf("A equacao nao possui raizes reais!");
return 0;
}
33
Listagem 11.3. Programa que soma nmeros fornecidos pelo usurio em tempo de execuo.
#include <stdio.h>
int main()
{
float num=0, soma=0, cont=0, media;
while (num != -1) {
printf("Entre com um numero: ");
scanf("%f", &n);
if (n != -1)
{
soma = soma + num;
cont++;
}
media = soma/cont;
printf("Soma = %f\n", soma);
printf("Media = %f\n", media);
return 0;
}
Exemplo.
34
#include <stdio.h>
int main()
{
int i;
for (i=0; i<1000; i++) printf("I love you.\n");
}
35
Nesse exemplo, h vrias condies que devem ser testadas para uma situao
binria, ou seja, um nmero inteiro primo ou no. A tcnica utilizada foi pressupor que o
nmero primo (primo=1) e verificar se essa suposio falha para algum nmero entre 1
e n.
= 1 + 2 + 3 + + 100 = 5050.
=1
11.4 Exerccios
1. Escreva um programa que imprime todos os divisores positivos de um nmero
inteiro fornecido pelo usurio.
36
0
20
() = 2 2 +
37
12 Vetores e Matrizes
12.1 Vetores
Definio. Um vetor uma sequncia finita e indexada de dados de um mesmo
tipo.
Na linguagem C, o primeiro ndice de um vetor o zero, ou seja, o ndice (ou
posio) do primeiro elemento de um vetor 0 (zero). v[i] o i-simo elemento de um
vetor v, ou seja, o elemento localizado na posio i (Tabela 12.1).
Tabela 12.1. Estrutura de um vetor de n elementos.
ndice
Elemento
...
...
n-1
v[0]
v[1]
v[2]
v[3]
...
v[i]
...
v[n-1]
38
#include <stdio.h>
int main()
{
int idade[] = {25, 16, 18, 27};
printf("%d %d %d %d", idade[0], idade[1], idade[2], idade[3]);
return 0;
}
#include <stdio.h>
int main()
{
int idade[] = {25, 16, 18, 69, 32, 27, 58, 37, 9, 44};
int i;
for (i=0; i<10; i++) printf("%d ", v[i]);
return 0;
}
#include <stdio.h>
int main()
{
int n=10, i;
float v[n];
// L 10 nmeros reais
for (i=0; i<n; i++)
{
printf("\nv[%d]: ", i);
scanf("%f", &v[i]);
}
// Imprime os 10 nmeros reais
for (i=0; i<n; i++) printf("%f ", v[i]);
return 0;
}
39
#include <stdio.h>
int main()
{
int v[] = {5, 3, 1, 7, 4, 2, 6}, num, i, elementos = 0;
printf("Digite o numero procurado: ");
scanf("%d", &num);
for (i=0; i<7; i++)
if (v[i]==num) elementos++;
if (elementos==0) printf("Nao encontrado!");
else printf("Encontrado(s): %d", elementos);
return 0;
}
40
#include <stdio.h>
int main()
{
int n=MAX;
// Substituir MAX pelo nmero mximo de elementos de v
int v[]={ }, num, i, posicao=-1;
printf("Entre com o numero procurado: ");
scanf("%d", &num);
for (i=0; i<n && posicao==-1; i++)
if (v[i]==num) posio = i;
// Armazena a posio do nmero encontrado
if (posicao==-1) printf("Numero no encontrado!");
else printf("Encontrado na posicao %d.", posicao);
return 0;
}
#include <stdio.h>
int main()
{
int n=7; int v[] = {1, 3, 5, 7, 9, 11, 13}; int num, inicio=0, fim=n-1,
meio; int posicao=-1;
printf("Entre o numero a ser procurado: ");
scanf("%d", &num);
while (inicio<=fim && posicao==-1)
{
meio = (inicio + fim)/2;
if (num == v[meio]) posicao=meio;
else if (num < v[meio]) fim = meio-1;
else inicio = meio+1;
}
if (posicao==-1) printf("Elemento nao encontrado!");
else printf("Encontrado na posicao %d.", posicao);
return 0;
}
12.1 Matrizes
41
12.2 Exerccios
1. Escreva um programa que pea a usurio entrar 10 nmeros inteiros e, aps a
entrada dos valores, o programa deve exibir os valores pares em uma linha e os
valores mpares em outra linha.
2. Um nibus urbano parte de um terminal e faz paradas em alguns pontos do seu
percurso antes do ponto final. Na tabela a seguir esto indicados para cada ponto a
distncia percorrida e o tempo estimado, a partir do terminal (ponto de partida):
Terminal
5 (Ponto final)
Distncia (km)
0,2
1,7
3,4
4,3
5,7
Tempo (seg)
29
149
437
618
754
42
13 Strings
Definio. Uma string uma sequncia finita e indexada de caracteres, ou seja, um
vetor cujos elementos so do tipo char.
A principal diferena entre uma string e um vetor de caracteres que uma string
termina sempre com o caractere nulo (\0). Esse caractere possibilita a existncia de
funes especficas para manipulao de strings, que utilizam esse caractere especial em
suas rotinas.
char nome[51];
printf("Entre com um nome: ");
scanf("%s", &nome);
printf("%s", nome);
#include <stdio.h>
int main()
{
char nome[65];
printf("Entre com um nome: ");
gets(nome);
puts(nome);
// printf("%s", nome);
return 0;
}
43
44
15 Microcontroladores
Um microcontrolador (MCU) um computador integrado em um nico chip.
45
16 Lab_Uino
O Lab_Uino uma placa baseada no microcontrolador ATmega32U4 e
desenvolvida pela empresa Proxsys. O Lab_Uino compartilha muitas das caractersticas do
Arduino Leonardo, porm, voltada para as atividades de ensino.
46
47
Lab_Uino.dll
AtHid.dll
Lab_Uino_inc.c
17.1.1 Ferramentas
Lupa
Multmetro
48
Cor
Infravermelho
Faixa de Tenso
(V)
Faixa de
corrente (mA)
= 3 mm
Faixa de
corrente (mA)
= 5 mm
Faixa de
corrente (mA)
= 10 mm
47
5 10
10 15
1,5 1,8
Amarelo
1,90 1,92
Verde
1,92 1,94
Vermelho
1,96 1,98
Azul
2,76 2,78
Branco
2,76 2,78
Rosa
2,84 2,90
Ultravioleta
3,10 3,16
Como visto acima, o LED opera com tenses inferiores a 5 V. A tenso excedente
pode ser eliminada utilizando-se um resistor.
Como exemplo, o clculo do resistor R adequado para um LED difuso amarelo de
= 5 mm para uma corrente mdia de 7,5 mA dado por:
=
5,0 1,91
=
= 412 .
7,5 103
49
Material necessrio:
Resistor de 470
Protoboard
50
(a)
(b)
51
// portas analgicas
int main()
{
int valorPot;
load_kit();
printf("\n\nLeitura de potenciometro\n\n");
printf("Pressione qualquer tecla para sair...\n\n");
while (1)
{
valorPot = read_adc(ACD1);
printf("Valor = %4d\r", valorPot);
if (kbhit()) break;
}
printf("\n");
stop_kit();
return 0;
}
32u4
STROBE
LED
CN2
CN1
LCD1
Leonardo
LD9
11
DP9
LD10
12
DP10
LD1
DP11
52
// 0, 1 (8-bit); 4, 5 (10-bit)
load_kit();
printf("\n\nPrograma: LED PWM\n\n");
printf("Pressione qualquer tecla para sair...\n\n");
while (!kbhit())
{
valor = read_adc(porta_adc);
if (porta_adc == 0 || porta_adc == 1) // [0..255]
valor = valor * 2;
if (porta_adc == 4 || porta_adc == 5) // [0..1023]
valor = valor / 2;
if (valor < 0) valor = 0;
if (valor > 511) valor = 511;
pwm_a(valor);
printf("Valor = %4d\r", valor);
} // while
pwm_a(0);
stop_kit();
return 0;
}
53
Figura 17.1. (a) Sensor LM35 com os terminais Vcc e GRD dobrado s; (b) sensor inserido na
porta ADC1 do Lab_Uino.
(a)
(b)
54
TowerPro SG90
Tenso de operao (V)
TowerPro MG90S
4,8 7,2
2,2 (4,8 V)
2,5 (6,0 V)
Torque (kg/cm)
Velocidada de operao
(sem carga)
Temperatura de
operao
-30 a 60 C
Largura de banda
Dimenses (mm)
23 x 12,2 x 29
Peso (g)
16
Comprimento do cabo
25 cm
Fonte: link
O servo motor possui trs terminais. As cores dos cabos variam de modelo para
modelo, porm, o vermelho sempre o positivo e o preto (ou marrom) sempre o terra
(GRD). A cor do cabo do sinal usualmente alaranjada ou amarela.
Ateno! Todos os componentes devem ser ligados com o Lab_Uino desconectado
da alimentao.
Placa Lab_Uino
55
56
18 Apndice
18.1 Orwell Dev-C++
O Orwell Dev-C++ uma fork do Dev-C++, desenvolvido pela empresa Blodsheed.
H duas verses disponveis. Uma que utiliza o GCC e outra o TDM-GCC para a arquitetura
x64.
57
58
59
ndice Remissivo
&
Lgica ............................................................. 2
Algoritmo ....................................................... 4
Algoritmos
ano bissexto ............................................. 26
ambiente de desenvolvimento integrado
................................................. Consulte IDE
argumento de uma funo............................ 15
N
Nmero primo............................................... 35
O
Operador de endereo & ............................... 16
Operadores Aritmticos
% 12
mdulo(%) ................................................ 12
B
busca sequencial .......................................... 40
C
Case sensitive ................................................. 7
Comentrio .................................................... 7
compilador ..................................................... 5
P
Palavras reservadas ........................................ 7
programa de computador ............................... 5
Proposio ...................................................... 2
Proposio composta ...................................... 2
Pulse Width Modulation ............. Consulte PWM
PWM ............................................................ 46
D
diodo emissor de luz ..................... Consulte LED
F
funo .......................................................... 15
Funes
scanf ........................................................ 15
Funes de Entrada
printf........................................................ 16
Funes trigonomtricas............................... 16
S
string ............................................................ 43
T
Tipo de dado ................................................... 8
U
Ultrassom ..................................................... 54
V
Variveis
Declarao.................................................. 9
Declarao e definio ................................ 9
Definio (ou inicializao) .......................... 9
Nome.......................................................... 9
Varivel .......................................................... 8
vetor ............................................................. 38
I
IDE ................................................................. 5
Instruo ........................................................ 4
L
LED............................................................... 48
Light Emitting Diode ..................... Consulte LED
Linguagem de programao C ........................ 6
W
while ............................................................. 32
60
61