Você está na página 1de 16

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO

TOCANTINS - IFTO
CAMPUS PALMAS

FERNANDA FRAGA
ISABELLA FERNANDES
JOYCE HELLEN
MATHEUS MACIEL
MATHEUS PEREIRA
MURILO LEOBAS
SILAS BISPO

Relatório do PAINEL

Palmas - TO
2018
FERNANDA FRAGA
ISABELLA FERNANDES
JOYCE HELLEN
MATHEUS MACIEL
MATHEUS PEREIRA
MURILO LEOBAS
SILAS BISPO

Relatório do PAINEL

Relatório apresentado como requisito


parcial para obtenção de aprovação na
disciplina de Sistemas
Microcontrolados, no Curso de
Engenharia Elétrica, no Instituto
Federal de Educação, Ciência e
Tecnologia do Tocantins.
Prof. Mateus Lima Peduzzi

Palmas-TO
2018
SUMÁRIO

1.INTRODUÇÃO ................................................................................................................... 3

2. COMPONENTES .............................................................................................................. 3

2.1 Arduino UNO ................................................................................................................... 3

2.3 CI 74HC595 ...................................................................................................................... 5

2.4 Display de 7 segmentos .................................................................................................... 5

2.6 Jumpers (macho macho) ................................................................................................. 7

2.7 Resistores .......................................................................................................................... 7

3.DIAGRAMA EM BLOCOS............................................................................................... 7

4. CÓDIGO-FONTE.............................................................................................................. 9

5. ESQUEMA ELETRÔNICO ........................................................................................... 14

6.REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................ 15

2
1.INTRODUÇÃO

O projeto do Semestre dado ao nosso grupo consistiu em criar um painel que, a partir
da base nos dados da “fechadura” conseguisse estimar a quantidade de presentes no laboratório
G1 e mostrasse esses dados no display. Para isso, esse dispositivo deveria ter as funções reset,
aumento e redução da quantidade estimada de pessoas na sala. Deveria também ser utilizado
um sistema de comunicação sem fio com o painel, podendo ele ser Wi-Fi, Bluetooth, etc.
Para a elaboração e montagem desse protótipo, foi necessária a utilização do
conhecimento aprendido durante as aulas de sistemas microcontrolados, pesquisa em outros
meios, assim como discussão entre o grupo que foi estabelecido para a confecção da fechadura,
para que ambos os processos estivessem em sintonia.
No decorrer do relatório serão abordados os componentes utilizados na confecção do
material, diagrama de blocos e o esquema eletrônico.

2. COMPONENTES

2.1 Arduino UNO

Figura 1 - Arduíno UNO


O Arduino Uno é uma placa de microcontrolador baseado no ATmega328 (datasheet).
Tem 14 pinos digitais de entrada / saída (dos quais 6 podem ser usados como saídas PWM), 6
entradas analógicas, um de 16 MHz ressonador cerâmico, uma conexão USB, um conector de
alimentação, um cabeçalho ICSP, e um botão de reset. Ele contém tudo o necessário para

3
suportar o microcontrolador; basta conectá-lo a um computador com um cabo USB ou ligá-lo
com um adaptador AC para DC ou bateria para começar.

2.2 Módulo bluetooth HC 06

Figura 2: Bluetooth HC-06

O módulo Bluetooth HC-06 é usado para comunicação wireless entre o Arduino e outro
dispositivo com bluetooth (telefone celular, computador ou tablet). As informações recebidas
pelo módulo são repassadas ao microcontrolador, neste caso o Arduino, via serial.
O alcance do módulo segue o padrão da comunicação bluetooth, que é de
aproximadamente 10 metros. Esse módulo funciona apenas em modo slave(escravo), ou seja,
ele permite que outros dispositivos se conectem à ele, mas não permite que ele próprio se
conecte à outros dispositivos bluetooth.
O módulo possui 4 pinos : Vcc (alimentação de 3,6 à 6v), GND, RX e TX, os dois
últimos utilizados para comunicação com o Arduino via serial.
O nível lógico dos pinos RX e TX é de 3.3v, o que significa que, para o Arduino Uno é
preciso um divisor de tensão no pino RX para evitar que o módulo seja danificado. Isso é
necessário pois o Arduino Uno trabalha com nível de sinal de 5v.

4
2.3 CI 74HC595

Figura 3: CI 74HC595
O circuito integrado 74HC595 é um CI do tipo registrador de deslocamento (shift
register), geralmente usado para controle de display 7 segmentos, como é o nosso caso. São 8
saídas que atuam de forma paralela, com o controle sendo feito por apenas 3 pinos de entrada.
Por esse motivo, o 74HC595 também é conhecido por ser um expansor de portas para placas
como Arduino, onde podem ser encadeados vários CI´s e continuar controlando o conjunto com
apenas 3 pinos de entrada.
Numa visão geral este projeto funcionará da seguinte forma, o arduino avisa ao CI
74HC595 que vai enviar dados, o CI se prepara para receber os bits, então o arduino envia 8
bits, um de cada vez, ou seja sequencialmente, o CI apenas armazena cada um dos 8 bits
enviados, o arduino envia um sinal ao CI para que ele libere os 8 bits armazenados, e o CI libera
os 8 bits de uma vez, ou seja paralelamente. E esses passos se repetem para a formação de cada
um dos número.

2.4 Display de 7 segmentos

Figura 4: Display de 7 segmentos

5
O display de sete segmentos, muitas vezes chamado de “led de 7 segmentos” é um
display constituído por 7 leds retangulares dispostos de forma a que, com uma combinação de
leds acesos e apagados, possa ser mostrada informação alfanumérica não só em decimal como
também em binário, hexadecimal ou octadecimal.
A vantagem de se utilizar esse tipo de componente é que a disposição dos segmentos
de LEDs, os tamanhos dos displays e a disposição e numeração dos pinos é na sua maioria
padronizada, permitindo assim que se utilize displays de múltiplos fabricantes, sem prejuízos.
São intercambiáveis

2.5 Protoboard

Figura 5: Protoboard

Uma protoboard, também conhecida como matriz de contatos, é utilizada para fazer
montagens provisórias, teste de projetos, além de inúmeras outras aplicações. É constituída por
uma base plástica, contendo inúmeros orifícios destinados à inserção de terminais de
componentes eletrônicos. Internamente existem ligações determinadas que interconectam os
orifícios, permitindo a montagem de circuitos eletrônicos sem a utilização de solda. A grande
vantagem é que os componentes podem ser facilmente retirados para serem utilizados
posteriormente em novas montagens.

6
2.6 Jumpers (macho macho)

Figura 6: Jumpers (macho, macho)

Jumpers são pequenas peças plásticas, internamente metalizadas para permitir a passagem de
corrente elétrica, que são encaixadas em contatos metálicos encontrados na placa mãe ou em vários
outros tipos de placas. Eles permitem a passagem de corrente elétrica entre dois pinos, funcionando
como um interruptor. Alternativas na posição de encaixe dos jumpers, permitem programar vários
recursos da placa mãe, como a voltagem, tipo e velocidade do processador e memória usados, além de
outros recursos.
2.7 Resistores
Figura 7: Resistores

São peças utilizadas em circuitos elétricos que tem como principal função converter
energia elétrica em energia térmica, ou seja, são usados como aquecedores ou como
dissipadores de eletricidade.

3.DIAGRAMA EM BLOCOS

7
INÍCIO

Zerar
contadores

Sinal de
Exibir dígito zero
Reset
nos dois Displays

Fazer leitura do
Sinal de
Sinal Recebido
Incremento Sinal de
Decremento

Fazer incremento no
Fazer decremento no
contador menos
contador menos
significativo
significativo

Valor do contador
menos significativo Valor do contador
Não
maior do que 9? menos significativo
menor do que 0? Exibir valor do contador
Sim Não menos significativo no
Sim
Exibir valor do Display menos
Zerar contador
Valor do contador significativo
contador menos
menos significativo
mais significativo
significativo no
igual a 0?
Exibir valor do contador Display menos
menos significativo no significativo Sim Não

Display menos Atribuir valor 9 ao


significativo Zerar
contador menos
contadores
significativo

Fazer incremento no
Exibir dígito zero Exibir valor do contador
contador mais
nos dois Displays menos significativo no
significativo
Display menos
Valor do contador significativo
mais significativo
maior do que 9?
Não Fazer decremento
Sim
Exibir valor do no contador mais
Zerar contador significativo
contador mais
mais significativo
significativo no Exibir valor do
Display mais contador menos
Exibir valor do contador mais significativo significativo no Display
significativo no Display mais menos significativo 8
significativo
4. CÓDIGO-FONTE

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // pino RX, pino TX no arduino

int latchPin = 5; // (latch = ST_CP) / pino 5 do arduino no


pino 12 no 595
int dataPin = 6; // (data = DS) / pino 6 do arduino no
pino 14 no 595
int clockPin = 4; // (clock = SH_CP) / pino 4 do arduino no
pino 11 no 595

char receivedChar;

boolean pontodecimal;
int tempoant = 0;
int numPessoas = 0;
int unidade = 0, dezena = 0;

boolean reg[16]; // vetor que segura os valores (HIGH ou LOW)


dos seguimentos

boolean newData = false;

void setup() {

Serial.begin(9600);
Serial.println("Serial Started");
mySerial.begin(9600);

pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
writereg();
}

void loop() {

int tempo = millis() % 1000;

recvOneChar();
showNewData();

if (receivedChar == 'D' && numPessoas < 999){ // TIME 1


INCREMENTAR
numPessoas++;

9
}

else if (receivedChar == 'E' && numPessoas > 0){ // TIME 1


DECREMENTAR
numPessoas--;
}

else if (receivedChar == 'F'){ // TIME 1 ZERAR


numPessoas = 0;
}

unidade = numPessoas % 10;


dezena = (numPessoas % 100) / 10;

modreg(0,unidade);
modreg(1,dezena);

receivedChar = NULL;

writereg();

tempoant = tempo;
}

void recvOneChar() {
if (mySerial.available() > 0) {
receivedChar = mySerial.read();
newData = true;
}
}

void showNewData() {
if (newData == true) {
Serial.print("bluetooth data: ");
Serial.println(receivedChar);
newData = false;
}
}

void writereg(){ // Função que escreve nos pinos de saída o


valor do vetor reg

digitalWrite(latchPin, LOW);
for (int i = 15; i>=0; i--){
digitalWrite(clockPin, LOW);
digitalWrite(dataPin, reg[i]);
digitalWrite(clockPin, HIGH);
}
10
digitalWrite(latchPin, HIGH);
}

void modreg(int disp, int num){ // Função que determina os


números ou letras que aparecem nos displays
// O primeiro dispay é o
dispay zero

int posA = 0+(8*disp);


int posB = 1+(8*disp);
int posC = 2+(8*disp);
int posD = 3+(8*disp);
int posE = 4+(8*disp);
int posF = 5+(8*disp);
int posG = 6+(8*disp);

switch(num){
case 0: // 1111110
reg[posA] = HIGH; // A
reg[posB] = HIGH; // B
reg[posC] = HIGH; // C
reg[posD] = HIGH; // D
reg[posE] = HIGH; // E
reg[posF] = HIGH; // F
reg[posG] = LOW; // G
break;

case 1: // 0110000
reg[posA] = LOW; // A
reg[posB] = HIGH; // B
reg[posC] = HIGH; // C
reg[posD] = LOW; // D
reg[posE] = LOW; // E
reg[posF] = LOW; // F
reg[posG] = LOW; // G
break;

case 2: // 1101101
reg[posA] = HIGH; // A
reg[posB] = HIGH; // B
reg[posC] = LOW; // C
reg[posD] = HIGH; // D
reg[posE] = HIGH; // E
reg[posF] = LOW; // F
reg[posG] = HIGH; // G
break;

case 3: // 1111001
11
reg[posA] = HIGH; // A
reg[posB] = HIGH; // B
reg[posC] = HIGH; // C
reg[posD] = HIGH; // D
reg[posE] = LOW; // E
reg[posF] = LOW; // F
reg[posG] = HIGH; // G
break;

case 4: // 0110011
reg[posA] = LOW; // A
reg[posB] = HIGH; // B
reg[posC] = HIGH; // C
reg[posD] = LOW; // D
reg[posE] = LOW; // E
reg[posF] = HIGH; // F
reg[posG] = HIGH; // G
break;

case 5: // 1011011
reg[posA] = HIGH; // A
reg[posB] = LOW; // B
reg[posC] = HIGH; // C
reg[posD] = HIGH; // D
reg[posE] = LOW; // E
reg[posF] = HIGH; // F
reg[posG] = HIGH; // G
break;

case 6: // 1011111
reg[posA] = HIGH; // A
reg[posB] = LOW; // B
reg[posC] = HIGH; // C
reg[posD] = HIGH; // D
reg[posE] = HIGH; // E
reg[posF] = HIGH; // F
reg[posG] = HIGH; // G
break;

case 7: // 1110000
reg[posA] = HIGH; // A
reg[posB] = HIGH; // B
reg[posC] = HIGH; // C
reg[posD] = LOW; // D
reg[posE] = LOW; // E
reg[posF] = LOW; // F
reg[posG] = LOW; // G
break;
12
case 8: // 1111111
reg[posA] = HIGH; // A
reg[posB] = HIGH; // B
reg[posC] = HIGH; // C
reg[posD] = HIGH; // D
reg[posE] = HIGH; // E
reg[posF] = HIGH; // F
reg[posG] = HIGH; // G
break;

case 9: // 1111011
reg[posA] = HIGH; // A
reg[posB] = HIGH; // B
reg[posC] = HIGH; // C
reg[posD] = HIGH; // D
reg[posE] = LOW; // E
reg[posF] = HIGH; // F
reg[posG] = HIGH; // G
break;

default: // 0000001
reg[posA] = LOW; // A
reg[posB] = LOW; // B
reg[posC] = LOW; // C
reg[posD] = LOW; // D
reg[posE] = LOW; // E
reg[posF] = LOW; // F
reg[posG] = HIGH; // G
break;
}
}

13
5. ESQUEMA ELETRÔNICO

Figura 8: Esquema eletrônico.

Figura 9 : Projeção do Protótipo


14
No esquema eletrônico mostrado na Figura 8 está ilustrada a utilização dos transistores
que serão necessários quando forem utilizados displays maiores que necessitam de maior
corrente, o esquema foi desenvolvido com apenas um display, já que o outro será ligado de
forma análoga. O arduino manda o sinal serial para o CI 74HC595, e um sinal em paralelo será
mandado para a base dos transistores, que terão uma fonte ligada em seus coletores, e assim o
sinal com uma corrente maior será jogado dos transistores para os leds dos displays.
A figura 9 ilustra o circuito utilizado no protótipo do projeto. Nesse caso não foi
necessária a utilização de transistores, pois somente o arduino consegue alimentá-los.

6.REFERÊNCIAS BIBLIOGRÁFICAS

BLOG BUILDBOT. Configuração do módulo bluetooth HC-06 com arduíno. Disponível


em: <http://buildbot.com.br/blog/configuracao-do-modulo-bluetooth-hc-06-com-arduino/>.
Acesso em: 03 de setembro de 2018.

EMBARCADOS. Displays de LED de 7 segmentos. Disponível em:


<https://www.embarcados.com.br/displays_led_7_segmentos/>. Acesso em: 03 de setembro
de 2018.

ELETRÔNICA DIDÁTICA. Protoboard. Disponível em:


<http://www.eletronicadidatica.com.br/protoboard.html>. Acesso em: 03 de setembro de
2018.

SÓ FÍSICA. Resistores. Disponível em:


<https://www.sofisica.com.br/conteudos/Eletromagnetismo/Eletrodinamica/resistores.php>.
Acesso em: 03 de setembro de 2018

15