AULA 21 - Programação 1 - Graduação

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

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

Equipe-1

Equipe-2

Equipe-3

Equipe-4

Equipe-5

Equipe-6

Equipe-7

Equipe-8

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.

Saida digital.jpg

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.

Entrada digital.jpg

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.

Saida analogica.jpg

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

Entrada analogica.jpg

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
EmbedVideo received the bad id "l9n-8wzex7I#!" for the service "youtube".

[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

LM35-pin.png

A figura abaixo mostra o encapsulamento mais comum

Temperature-sensor-lm-35-dz.jpg


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 mais conveniente a sua utilização em substituição a uma lâmpada. Diodo Emissor de luz


<< Aula 21 >>