Desafio 2 Revisitado parte 1 e 2
Desafio 2 revisitado
DESCRIÇÃO DO PROCEDIMENTO E ESQUEMA UTILIZADO
O esquema a seguir foi feito no simulador Tinkercad (Links no final da postagem):
Parte 1 ^
Parte 2 ^
O circuito foi refeito e dividido em 2 partes para atender melhor aos requisitos do problema proposto, na primeira parte foram utilizados:
4 interruptores, 5 resistores, 1 potenciômetro, 1 monitor LCD,1 breadboard , e uma placa arduino UNO R3.
Na segunda parte foram utilizados:
1 monitor LCD, 2 potenciômetros, 1 resistor, 1 breadboard, e uma placa arduino UNO R3.
Código (comentado para facilitar o aprendizado) de ambas as partes abaixo:
========================================================================
// Incluindo a biblioteca do lcd.
#include <LiquidCrystal.h>
// Definindo as portas dos interruptores.
#define switchA 11
#define switchB 10
#define switchC 9
#define switchD 8
// Inicializando as portas do lcd.
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
int y;
void setup()
{
// Inicializando o monitor serial.
Serial.begin(9600);
//Inicializando o lcd.
lcd.begin(16, 2);
}
// Variável que vai armazenar o valor do caractere inserido.
char rx_byte = 0;
void loop()
{
//Leitura dos valores dos interruptores.
int A = digitalRead(switchA);
int B = digitalRead(switchB);
int C = digitalRead(switchC);
int D = digitalRead(switchD);
//"y" é a variável que inicia o loop(soma das variáveis acima).
y = A + B + C + D;
/* Primeiro loop
responsável por imprimir as instruções quando nenhum
interruptor está ligado */
if(y == 0){
do{
lcd.print("Use the serial");
lcd.setCursor(1,1);
lcd.print("as input");
lcd.setCursor(2,2);
delay(2000);
lcd.clear();
lcd.print("Switch Order");
lcd.setCursor(1,1);
delay(2000);
lcd.clear();
//Modo DECIMAL/VOLTS
lcd.print("Switch A:");
lcd.setCursor(1,1);
lcd.print("DECIMAL");
lcd.setCursor(2,2);
delay(2000);
lcd.clear();
//Modo BINARIO
lcd.print("Switch B:");
lcd.setCursor(1,1);
lcd.print("BINARY");
lcd.setCursor(2,2);
delay(2000);
lcd.clear();
// Modo HEXADECIMAL
lcd.print("Switch C:");
lcd.setCursor(1,1);
lcd.print("HEXADECIMAL");
lcd.setCursor(2,2);
delay(2000);
lcd.clear();
// Modo OCTADECIMAL
lcd.print("Switch D:");
lcd.setCursor(1,1);
lcd.print("OCTADECIMAL");
lcd.setCursor(2,2);
delay(2000);
lcd.clear();
break;
}while(y == 0);
/* Segundo loop
responsável por imprimir os dados quando um ou mais interruptores
estão ligados. */
}else if(y >= 1){
while(y >= 1){
int A = digitalRead(switchA);
int B = digitalRead(switchB);
int C = digitalRead(switchC);
int D = digitalRead(switchD);
y = A + B + C + D;
/*Retorna o número de bytes (caracteres) disponíveis para
leitura da porta serial, se existir informação a ser lida,
inicia a variável que armazena o valor do caractere inserido*/
if (Serial.available() > 0) {
rx_byte = Serial.read();
Serial.print(rx_byte);
/* Condição que impede a utilização da tabela ASCII
estendida. */
if(rx_byte < 0){
lcd.print("Please don't use");
lcd.setCursor(1,1);
lcd.print("extended ASCII");
lcd.setCursor(2,2);
delay(1500);
lcd.clear();
lcd.print("characters");
lcd.setCursor(1,1);
delay(1000);
lcd.clear();
}else if(rx_byte < 127){
/* Interruptor A */
if(A == 1){
lcd.print("Decimal is");
lcd.setCursor(1,1);
lcd.print(rx_byte, DEC);
lcd.setCursor(2,2);
delay(1500);
lcd.clear();
/* Interruptor B */
}if(B == 1){
lcd.print("Binary is");
lcd.setCursor(1,1);
lcd.print(rx_byte, BIN);
lcd.setCursor(2,2);
delay(1500);
lcd.clear();
/* Interruptor C */
}if(C == 1){
lcd.print("Hexadecimal is");
lcd.setCursor(1,1);
lcd.print(rx_byte, HEX);
lcd.setCursor(2,2);
delay(1500);
lcd.clear();
/* Interruptor D */
}if(D == 1){
lcd.print("Octadecimal is");
lcd.setCursor(1,1);
lcd.print(rx_byte, OCT);
lcd.setCursor(2,2);
delay(1500);
lcd.clear();
}
}
}
}
}
}
========================================================================
========================================================================
// Biblioteca do LCD
#include <LiquidCrystal.h>
// Definindo pino 7 como constante
#define pinBotao 7
//Definindo portas do LCD
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
// Variável que armazena a leitura do potenciometro
int x;
void setup()
{
//Inicializa o monitor serial.
Serial.begin(9600);
//Incializa o lcd.
lcd.begin(16, 2);
}
void loop()
{
// Leitura da voltagem em decimal.
x = analogRead(A5);
//Conversão de decimal para volts.
float xv = (5.0*x)/1023;
//Impressão dos dados.
lcd.print("Decimal is");
lcd.setCursor(1,1);
//Conversão do "x" para decimal usando uma função da linguagem.
lcd.print(x, DEC);
lcd.setCursor(2,2);
delay(1500);
lcd.clear();
lcd.print("Volts is");
lcd.setCursor(1,1);
lcd.print(xv);
lcd.setCursor(2,2);
delay(1500);
lcd.clear();
lcd.print("Binary is");
lcd.setCursor(1,1);
//Conversão do "x" para binário usando uma função da linguagem.
lcd.print(x, BIN);
lcd.setCursor(2,2);
delay(1500);
lcd.clear();
}
Nícolas Aguiar :
Parte 1 :https://www.tinkercad.com/things/86bECGVU5vG-desafio-2-revisitado-parte1/editel
Parte 2 :https://www.tinkercad.com/things/52QQ8kkabJU-desafio-2-revisitado-parte2
João Pedro Assis :
Parte 1: https://www.tinkercad.com/things/bXYSb8kLpuv-sizzling-crift-blad/editel
Parte 2: https://www.tinkercad.com/things/3Ntb0Rj8s9p-bodacious-vihelmo/editel?tenant=circuits
Isabella Moreira Ide:
Parte 1 : https://www.tinkercad.com/things/kAQXm48G7a5
Os links devem estar habilitados. Como nao temos relatorio para este desafio é importante que voce explique cada uma daspostagens realizadas.. Na sua postagem consta a seguinte informação:
ResponderExcluir" O desafio 2 foi refeito com o intuito de melhorar a eficiência do programa, o circuito foi separado em duas partes, uma que a tabela ASCII e converte uma entrada de caracteres pelo monitor serial nas seguintes saídas: Binário, Hexadecimal, Octadecimal e Decimal e uma segunda parte que converte o ddp lido no potenciômetro para Binário e Decimal. "
isto é um diaruo de bordo e vc deve explicar exatamente o que se propoe com este aplicativo.
Qual é o objetivo deste aplicativo, para que serve? em relação a teoria que vc desenvolveu para será a contribuição deste aplicativo?
Aqui é o espaço para que vc conte tudo sobre a proposta e o desenvolvimento do aplicativo.
Digite Ç e veja o que ocorre...
ResponderExcluirCorrigido
ExcluirDeve existir sempre um texto que antecede a programação fazendo um link com as demais postagens existentes na teoria.
ResponderExcluirA teoria ainda está bem deficitária e precisa de mais dedicação por parte da equipe.
Precisa maior dedicação na introdução teórica e nas postagens de natureza "pratica" deve haver correlação e citações do que foi reportado na teoria.
isso ai é a introdução professora
Excluireu vou postar o resumo teórico ainda
Quais sao os objetivos deste desafio? Todas as orientaçoes acerca tanto da abordagem teorica quanto experimental deste desafio foram enviadas por meio de video detalhado e na correção estes itens aparecem na planilha de tal modo que devem aparecer no blog do projeto. Alem destes aspectos videos tanto do desafio 1 quanto 2 deveriam estar postados no blog. Trata-se de um projeto para a disciplina
ResponderExcluir