AULA 21 - Programação 1 - Graduação
Requisitos para formação das Equipes
- Três integrantes por grupo;
- Ter um integrante que já fez eletrônica digital ou analógica na Engenharia ou qualquer outro curso técnico;
- Se responsabilizar pela placa de aquisição;
- Adquirir sensor de temperatura LM35;
Equipes do Projeto Final
- MARIA FERNANDA SILVA TUTUI
- RICARDO AMORIM
- VITOR MANOEL DA SILVEIRA
- ADONIS ANDREAS MARINOS
- ANDERSON GASPAR DE MEDEIROS
- DANIEL TREVISAN TATSCH
- DANIEL CABRAL CORREA
- PABLO FIDELIS DIAS
- PAULO HENRIQUE HORST BIANCHIN
- ADILSON GOEDERT SIQUEIRA
- GUSTAVO VIEIRA ZACCHI
- RAPHAEL WASHINGTON BAPTISTA GIASSI
- LUISA MACHADO
- NATALIA ADRIANA MIRANDA
- AUGUSTO DA SILVEIRA WILLEMANN
- GABRIEL FARIAS TURNES
- JEFERSON RICARDO TICHZ ESPINDOLA
Placa de aquisição de dados
- Saídas digitais
Existem 3 saídas digitais na placa, e essas são chamadas de OUT1, OUT2 e OUT3.
Essas saídas são energizadas, e quando estão ligadas enviam 5V a saída escolhida.
- Entradas digitais
Existem, também, 3 entradas digitais, que são nomeadas INP1, INP2 e INP3.
Essas entradas são do tipo seco, o que significa que elas ficam ativas quando aterradas(GND).
- Saídas analógicas
Existem 2 saídas analógicas, e essas nomeadas DA1 e DA2.
Essas saídas podem ser ajustadas para mandar tensões entre 0V e 5V.
- Entradas analógicas
As 8 entradas analógicas existentes na placa são nomeadas como AD1, AD2, AD3...AD8
Estas entradas suportam tensões de até 10V
Instalação
Fazer o dowload do arquivo bibprg neste link: Download
Intruções para instalação:
Na pasta make:
-Dentro do arquivo shell.sh, no campo "SENHA". Botar senha de root do PC em uso;
-Dentro do arquivo Perm-Cerne.rules, na segunda linha, no campo OWNER="Aluno". Mudar "Aluno" para o nome do usuário do computador.
feito isso, basta que, a partir do terminal, seja feito o comando make dentro da pasta make.
Criando programas em C utilizando a biblioteca prg
As seguintes funções estão disponíveis nesta biblioteca:
- função conectar:
esta função conecta a plaquinha ao host PC
Parâmetros: não possui
como utilizar:
conectar ();
- Função "info"
esta função retorna informações da placa. Pode retornar o nome do fabricante e o string do produto.
Parâmetros: não possui
como utilizar:
info ();
- Função "enviar_digital"
Envia um sinal para uma das 3 saídas digitais da placa de aquisição
como utilizar:
Parâmetros: 2 parâmetros do tipo char, onde o primeiro representa uma saída digital (1, 2 ou 3) e o segundo representa o estado da saída, podendo ser 1(nível alto) ou 0(nível baixo).
enviar_digital (saída, estado);
/*IMPORTANTE: as varíaveis saída e estado, sao do tipo CHAR*/ ou
enviar_digital (‘1’, ‘1’)
/*saída 1 é colocada em nivel alto(5V)*/
- Função "enviar_analogica"
função utilizada para enviar um sinal para uma das 2 saídas analógicas da placa de aquisição
como utilizar: Parâmetros: 2 parâmetros do tipo char, onde o primeiro representa uma saída analógica (1 ou 2) e o segundo é uma string que representa o estado da saída, podendo esta variar de “000” a “255”. Onde “000” é 0V e 255 é 5V. Outras tensões podem ser encontradas através de calculos simples, como 2,5V “127”
enviar_analogica (saida, estado);
/*Onde a variavel saida e estado sao do tipo CHAR*/
ou
enviar_analogica (‘1’, “127”);
/*onde a saída analógica 1 está sendo energizada com aproximadamente 2.5V*/
- Função "receber_digital"
Função utilizada para receber informações das entradas digitais;
A entrada digital desta placa é do tipo seco. Ela retornará 0 caso a entrada NÃO estiver aterrada, e 1 se estiver.
como utilizar:
Parâmetros: receber(nº da saída); Retorno: o retorno desta função é um inteiro (int)
receber_digital (char saida) ;
ou
receber_digital (‘1’) ;
/*onde a função retornará 0 ou 1 da entrada 1 */ /*Existem 3 entradas digitais, portanto a variavel saída pode ser 1, 2 ou 3*/
- Função "receber_analogica"
Função utilizada para receber informações das entradas analógicas;
As entradas analógicas retornam valores de 0,00V a 9,99V;
como utilizar:
Parâmetros: receber(nº da saída); Retorno: o retorno desta função é um número real (float)
receber_analogica (char saida) ;
ou
receber_analogica (‘1’) ;
/*onde a função retornará retornará um valor entre 0,00 e 9,99 */ /*Existem 8 entradas analogicas, portanto a variavel saída pode ser 1, 2, 3, 4, 5, 6, 7 ou 8*/
- Função "print_display"
/*Função utilizada para imprimir um mensagem no display lcd*/
como utilizar:
//Parâmetros: print_display(linha,"mensagem");
print_display (int linha, char mensagem[]);
- Função "limpar_display" limpa o display
/*Função utilizada para limpar o display*/
como utilizar:
//Parâmetros: não possui
limpar_display();
Exemplos
Sempre lembrando do arquivo de cabeçalho "bibprg.h" que está dentro da pasta que foi baixada
Saída digital
#include <stdio.h>
#include "bibprg.h"
main (){
char saida='1', estado='0';
conectar ();
enviar_digital ('1','1');
sleep (1);
enviar_digital (saida,estado);
}
Lembrando que o dois parâmetros são do tipo CHAR
Saída analógica
#include <stdio.h>
#include "bibprg.h"
main (){
char saida='1', estado[3]="000";
conectar ();
enviar_analogica('1', "130");
sleep(2);
enviar_analogica(saida, estado);
}
Os dois parâmetros são do tipo CHAR, sendo o segundo uma cadeia de caracteres que varia de 000 á 255
Entrada digital
#include <stdio.h>
#include "bibprg.h"
main (){
char saida='1';
conectar ();
printf ("%d\n", receber_digital ('1'));
sleep (3);
printf ("%d\n", receber_digital (saida));
}
Parâmetro do tipo CHAR
Entrada analógica
#include <stdio.h>
#include "bibprg.h"
main (){
conectar ();
printf("%f\n",receber_analogica('1'));
sleep (2);
printf("%f\n",receber_analogica('1'));
}
Parâmetro do tipo CHAR
Display
#include <stdio.h>
#include "bibprg.h"
main(){
int i=12;
char mensagem[50]="Fim";
conectar();
for(;;){
print_display (1,"Linha 1 display LCD");
sleep(1);
print_display (2,"Linha 2 display LCD");
sleep(1);
print_display (12,"Linhas 1 e 2 display LCD");
sleep(1);
print_display (i, mensagem);
sleep(1);
}
}
Onde a variável "i" é do tipo inteiro e a "mensagem" é uma cadeia de caracteres
Ao fim, basta compilar da seguinte forma:
gcc arquivo.c -lprg -lusb-1.0 -o arquivo
Sensor de Temperatura LM35
O LM35 é um sensor de temperatura linear que fornece 10mV para cada grau Celcius que medir. Ou seja, se está fornecendo 100mV, significa que ele está medindo 10°C. http://blog.webtronico.com
- Principais características
- Pode ser alimentado com uma tensão entre 4 e 20VDC;
- Não necessita de calibração;
- Sua precisão típica é de 0.5°C;
- Pode medir temperaturas entre –55°C à 150°C.
- Veja o teste com LM35
[SIC] graus Celsius, não centígrados.
Como sua saída é em tensão e pode ser ligado em 5V, serve como opção para trabalhar com nossas placas de I/O ou Arduíno para medidas de temperaturas.
- A figura abaixo mostra a ordem dos pinos
- A figura abaixo mostra o encapsulamento mais comum
Como ligar um LED
- O que é um LED?
É um Díodo Emissor de Luz, em inglês diz-se Light Emitter Diode. Pode ser usado para a emissão de luz em locais e equipamentos onde se torna conveniente a sua utilização em substituição a uma lâmpada. Diodo Emissor de luz
- Como projetar um circuito com LED?
Deve-se observar a característica físca do LED,e forma correta de polariza-lo.
A tabela abaixo mostra algumas características típicas entre os LEDs fabricados por diferentes empresas:
Cor | Queda de tensão | Corrente |
---|---|---|
Vermelho | 1.8V | 20mA |
Verde | 2.1V | 20mA |
Amarelo | 2.0V | 15mA |
Laranja | 2.0V | 20mA |
Azul | 3.1V | 20mA |
Branco | 3.1-4V | 20mA |
Vamos supor que pretende-se acender um LED vermelho, em uma fonte de 5V (USB, Arduído, Carregador de Celelular, placas I/O). Olhando na tabela ve-se que LED vermelho tem uma queda de 1.8V e uma corrente típica de 20mA. Falta portanto definir o resistor a ser utilizado.
Lei de ohm:
Portanto:
- Falhou ao verificar gramática (erro de sintaxe): {\displaystyle R = 160 Ω\, }
<< | Aula 21 | >> |
---|