segunda-feira, 11 de novembro de 2013

Circuito Impresso

Vamos fazer o circuito impresso para nosso projeto ficar bem apresentável para o grande dia...

1° Passo criar a Placa

Podemos fazer de varias formas, tanto a mão quanto através de software específicos para isso, nos iremos usar o Fritzing já citado anteriormente, hoje vamos aprender a função para criar a PCB(placa de circuito impresso).

PCB


Criando a placa

por padrão o software vai fazer 100 rotas alternativas antes de chegar a rota final.

Gerando o PDF


Final

Agora já criado a placa podemos passar para o próximo passo.


2° Imprimir a placa

Nosso processo vai ser em gravar a placa para corroer através de processo térmico, onde iremos utilizar uma impressora laser e uma folha de impressão de foto.
podemos melhor entender através desse vídeo:





 retocando alguns pontos

 cuidado para não esquentar demais a placa e o cobre descolar do fonolite 


3° Corroendo a placa

Agora vamos utilizar de percloreto de ferro para fazer a corrosão da placa onde o produto ira atacar o material q não tiver a película de tinta em cima.


percloreto de ferro

 Placa de molho mais ou menos 20 minutos

Com uma palha de aço tiramos a marca da tinta  



4° Furando a placa

Nesse processo podemos utilizar de uma furadeira ou um furador de PCB proprio para o serviço.




  5° Soldar os componentes

Agora só soldar os componentes e pronto.

Sensores adicionais


Como o intuito inicial do projeto era trabalhar com sensores vamos adicionar mais dois sensores um de temperatura e um para comandar o circuito através de controle remoto, então nosso projeto conta com um sensor LDR já explicado em postagem anteriores e agora vamos adicionar o LM35( sensor de temperatura) e um Receptor decodificador de sinal infra vermelho a uma faixa de frequência de 38KHz.

LM35

Entre os sensores de temperatura o LM35 é o mais simples, usamos os sensores de temperatura em grande escala para processos industriais ou comerciais onde existe a necessidade de controlar ou monitorar a temperatura. O LM35 é fabricado pela National Semicondutores, fabricado na forma de um transistor tem como finalidade fornecer uma saida de tensão proporcional a  temperatura absoluta que age sobre ele, este tipo de sensor de temperatura pode trabalhar e fornecer temperaturas entre -55 a 150°C.

  • Fornece tensões de 10mV/ °C
  • Precisão de 0,5°C
  • Opera entre 4 a 30 volts
  • Baixa impedancia de saida 0,1ohm para cargas de 1mA


Receiver IR TSOP4838

O receiver IR trabalha em uma fequencia especifica de varredura de 38KHz uma varredura padrão para televisores e rádios o que nos possibilita usar diversos controles de fácil acesso. Muito fácil de utilizar o receptor pode ser implementado no arduino sem muitos problemas, e o o que torna mais fácil é descobrir qual o código de cada tecla do nosso controle remoto, para isso o Arduíno ira nos ajudar muito.


Para descobrir o código de cada teclado controle remoto através do arduino, veja:


Projeto Final

Programação

Toda a programação esta comentada.
Nossa programação teve algumas mudanças para melhor atender a parte física como por exemplo mudança dos pinos de sinal do LCD e outros sensores, e uma mudança no software para melhorar o processamento.

//*******************************************************************************
//
//    Software V1.7(Final)    Hardware V1.4(Final)
//
//      - Sensor de temperatura LM35
//      - Sensor de iluminação LDR       
//      - Sensor de receptor Infra vermelho para controle remoto   
//
//*******************************************************************************
#include <LiquidCrystal.h>
#include <IRremote.h> 

LiquidCrystal lcd(12, 11, 10, 9, 8, 7);// Define os pinos do LCD

const int SensorLDR = A0; // Entrada do sensor LDR em porta analogica      
const int LedLCD = 6; // Pino de saida Led do LCD com saida PWM
const int LM35= A5; // Pino de entrada LM35
float temperatura; //Variavel para armazenar 
float temperaturafinal; //Variavel para armazenar valor final
int SensorValorLDR = 0; // Variavel que armazena o valor do LDR
int SaidaValorLDR = 0; //Variavel  que armazena o valor para colocar na saida  
int SaidaLedLCD = 0; //Variavel  que armazena o valor para colocar na saida 
int AC_LOAD = 3;    // Pino de saida para o Optoacoplador >> TRIAC
int dimming = 120;  // valor inicial de Dimming
int countsala = 1; // Valor para contragem da nossa chave 
const int AtivaOptoZero = 5; // Declara q no pino 13 sera para o Opto 
int SensorIR = A4; //Entrada sensor infra vermelho
float armazenavalor; // Armazena valor IR
IRrecv irrecv(RECV_PIN);// Analise do IR
decode_results results; //decodificador do sinal do IR

void setup()
{
  lcd.begin(16, 2); // Inicia o LCD 16x2
  pinMode(13, OUTPUT); // Defino o pino 13 como saida
  Serial.begin(9600); // Inicia comunicação com a serial
  irrecv.enableIRIn(); // Inicializa o receptor IR   
  pinMode(AC_LOAD, OUTPUT);// Declara AC_LOAD como saida
  attachInterrupt(0, zero_crosss_int,RISING);// Ativa interrupção para passagem por zero da senoide
  pinMode(AtivaOptoZero, OUTPUT); // declara AtivaOptoZero como saida
  pinMode(LedLCD, OUTPUT);// declara LedLCD como saida
  digitalWrite(LedLCD, HIGH);// declara LedLCD como "1"
  lcd.setCursor(0, 0);// seta cursor do LCD linha e coluna zero
  lcd.print("LumenClass "); // Escreve "LumenClass "
  lcd.setCursor(0, 1);// seta coluna zero linha um
  lcd.print("Eng.Eletrica ");// Escreve "Eng.Eletrica "
//== Efeito para correr o letreiro==================================================   
            for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
              lcd.scrollDisplayLeft(); 
              delay(180);
            }
            for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
              lcd.scrollDisplayRight(); 
              delay(180);
            }
            for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
              lcd.scrollDisplayLeft(); 
              delay(180);
            }
            delay(5000);
//==================================================================================
}

void zero_crosss_int(){  // Função da passagem por zero
  // Calculo do angulo da senoide :: 60Hz-> 8.33ms (1/2 Ciclo)
  // (8333us - 8.33us) / 128 = 65 (aproximado)
  int dimtime = (65*dimming);      
  delayMicroseconds(dimtime); 
  digitalWrite(AC_LOAD, HIGH);// Disparo TRIAC
  delayMicroseconds(8.33);// Triac ligado em 8.33us, atraves da nossa base de calculo
  digitalWrite(AC_LOAD, LOW);// Corte do TRIAC
}

void loop(){
  lcd.clear();// Apaga LCD
  leitura();// Chama função 
  if (irrecv.decode(&results))// se receber sinal no IR... 
  { 
  Serial.print("Valor lido : "); //Escreve na serial "Valor lido : "
  Serial.println(results.value, DEC);//Escreve na serial o valor do IR
  armazenavalor = (results.value);// Armazena o valor do IR na variavel "armazenavalor"
  if (armazenavalor == 233  ) //Verifica se a tecla 1 foi pressionada 
  { 
  countsala++; //soma mais uma unidade "+1"
  delay(100);// espera de 100 mili segundos
  }
  irrecv.resume(); //Le o próximo valor 
  } 

switch (countsala) {
  case 1:    //1° opção do menu
    lcd.setCursor(0, 0);//seta o LCD 
    lcd.print("LAMPADA");//Escreve
    lcd.setCursor(0, 1);//seta o LCD
    lcd.print("Desligada");//Escreve
    digitalWrite(AtivaOptoZero, LOW); // Liga o pino 13 : AtivaOptoZero
    delay(100);// espera de 100 mili segundos
    lcd.clear();// apaga o LCD 
break;

case 2:    //2° opção do menu
    lcd.setCursor(0, 0);//seta o LCD 
    lcd.print("LAMPADA");//Escreve
    lcd.setCursor(0, 1);//seta o LCD 
    lcd.print("ligada");//Escreve
    dimming= 10;// lampada no maximo
    digitalWrite(AtivaOptoZero, HIGH); // Liga o pino 13 : AtivaOptoZer
    delay(100);// espera de 100 mili segundos
    lcd.clear();// apaga o LCD 
break;

case 3:    //3° opção do menu
    digitalWrite(AtivaOptoZero, HIGH); // Liga o pino 13 : AtivaOptoZer
    lcd.setCursor(0, 0); //seta o lcd na linha zero coluna zero
    lcd.print("AUTO "); // e escreve 
    SensorValorLDR = analogRead(SensorLDR);// Lê o valor do LDR e salva em SensorValorLDR   
    SaidaValorLDR = map(SensorValorLDR, 0, 1023, 0, 100); //Pega o valor de SensorValorLDR cria um map de 0 a 100 e salva na SaidaValorLDR 
    lcd.print(SaidaValorLDR); //escreve SaidaValorLDR no LCD  
    lcd.print(char(37)); // escreve o caracter % no LCD
    SaidaValorLDR = SensorValorLDR; // Pega o valor do SensorValorLDR novamente e salva em SaidaValorLDR
    SaidaLedLCD = map(SaidaValorLDR , 0, 1023, 0, 110); //min=0 max=128 // Cria um map de 0 a 110 << para melhor ajustar a lampada  
    dimming = SaidaLedLCD; //Pega o valor do map SaidaLedLCD e salva em dimming
    analogWrite(LedLCD, SaidaLedLCD); // Escreve o valor de SaidaLedLCD no LedLCD
          for(int i=0;i<50;i++)//for para ler 50 vezes para fazer media
          {
           temperatura=temperatura+analogRead(LM35);
          }
    temperatura=temperatura/50; ;//divide toda a soma por 50 para tirar a media                           
    temperaturafinal = (5.0 * temperatura * 100.0) / 1024;//formula para converter o sinal do LM35 
    lcd.setCursor(9,0);//seta o LCD 
    lcd.print(temperaturafinal,0);// ,0   sem nenhuma casa depois da virgula
    lcd.print(char(223));//escreve "º" no LCD
    lcd.print("C");//Escreve
    delay(50); // delay para não carregar o processamento
    lcd.clear();// apaga o LCD                
break;

case 4:    //4° opção do menu
    lcd.setCursor(0, 0);//seta o LCD 
    lcd.print("AJUSTE FIXO");//Escreve
    lcd.setCursor(0, 1);//seta o LCD 
    digitalWrite(AtivaOptoZero, HIGH); // Liga o pino 13 : AtivaOptoZer
    delay(100);// espera de 100 mili segundos
    lcd.clear();// apaga o LCD     
break;

case 5:    //5° opção do menu
    countsala = 1;// Chama a 1° opção do menu
break;
}
}

void leitura(){
  SensorValorLDR = analogRead(SensorLDR);// Lê o valor do LDR e salva em SensorValorLDR   
  SaidaValorLDR = map(SensorValorLDR, 0, 1023, 0, 100); //Pega o valor de SensorValorLDR cria um map de 0 a 100 e salva na SaidaValorLDR 
  SaidaValorLDR = SensorValorLDR; // Pega o valor do SensorValorLDR novamente e salva em SaidaValorLDR
  SaidaLedLCD = map(SaidaValorLDR , 0, 1023, 0, 110); //min=0 max=128 // Cria um map de 0 a 110 << para melhor ajustar a lampada  
  analogWrite(LedLCD, SaidaLedLCD); // Escreve o valor de SaidaLedLCD no LedLCD
}



Hardware

Montagem para prototipagem.


Esquema elétrico. 




sexta-feira, 11 de outubro de 2013

3° Passo (2° Parte)

É pessoal agora vamos a parte pratica.

Como já foi dito na primeira parte sobre os componentes, nosso circuito atualmente disponibiliza de:
  • TRIAC BT137
  • Optoacoplador MOC 3012 (sem detector de passagem por zero da senoide)
  • Optoacoplador PC817 (corrente continua)
  • Retificador de ponte
  • Resistores: 20kohm e 470ohm.
Lembrando que o circuito foi criado a partir dos componentes que nos tínhamos em mãos por esse motivo que estamos usando um MOC3012 em vez de usar um que tenha detector de zero que iria deixar tudo muito mais simples de se fazer.
Software V 1.3; Hardware V 1.0 

Toda a descrição do funcionamento do software esta explicado com comentários a frente de cada função, lembrando que pela falta de um optoacoplador com detector de zero vamos utilizar de um outro optoacoplador para fazer isso com auxilio de programação para disparar o TRIAC no momento certo.


Software

//*******************************************************************************
//
//    Software V1.3    Hardware V1.0
//
//*******************************************************************************
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 7, 6, 5, 4);

const int SensorLDR = A0; // Entrada do sensor LDR em porta analogica      
const int LedLCD = 9; // Pino de saida Led do LCD com saida PWM

int SensorValorLDR = 0; // Variavel que armazena o valor do LDR
int SaidaValorLDR = 0; //Variavel  que armazena o valor para colocar na saida  
int SaidaLedLCD = 0; //Variavel  que armazena o valor para colocar na saida 
int AC_LOAD = 3;    // Pino de saida para o Optoacoplador >> TRIAC
int dimming = 128;  // Nivel do dimmer (0-128)  0 = Ligado, 128 = Desligado

//== Abaixo é para fazer o efeito de grafico no LCD============================
byte a[8] = { 0b10000, 
0b10000,  
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000
};

byte b[8] = { 0b11000, 
0b11000,  
0b11000,
0b11000,
0b11000,
0b11000,
0b11000,
0b11000
};

byte c[8] = { 0b11100, 
0b11100,  
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100
};

byte d[8] = { 0b11110, 
0b11110,  
0b11110,
0b11110,
0b11110,
0b11110,
0b11110,
0b11110
};

byte e[8] = { 0b11111, 
0b11111,  
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
//============================================================================

void oi(){
  lcd.setCursor(0, 0); //seta o lcd na linha zero coluna zero
  lcd.print("LDR "); // e escreve 
  SensorValorLDR = analogRead(SensorLDR);// Lê o valor do LDR e salva em SensorValorLDR   
  SaidaValorLDR = map(SensorValorLDR, 0, 1023, 0, 100); //Pega o valor de SensorValorLDR cria um map de 0 a 100 e salva na SaidaValorLDR 
  lcd.print(SaidaValorLDR); //escreve SaidaValorLDR no LCD  
  lcd.print(char(37)); // escreve o caracter % no LCD
  SaidaValorLDR = SensorValorLDR; // Pega o valor do SensorValorLDR novamente e salva em SaidaValorLDR
  SaidaLedLCD = map(SaidaValorLDR , 0, 1023, 0, 110); //min=0 max=128 // Cria um map de 0 a 110 << para melhor ajustar a lampada  
  dimming = SaidaLedLCD; //Pega o valor do map SaidaLedLCD e salva em dimming
  analogWrite(LedLCD, SaidaLedLCD); // Escreve o valor de SaidaLedLCD no LedLCD
  delay(50); // delay para não carregar o processamento
  lcd.clear();// apaga o LCD

void zero_crosss_int() 
{
  // Calculo do angulo da senoide :: 60Hz-> 8.33ms (1/2 Ciclo)
  // (8333us - 8.33us) / 128 = 65 (aproximado)
  int dimtime = (65*dimming);      
  delayMicroseconds(dimtime);    // Off cycle
  digitalWrite(AC_LOAD, HIGH);   // Disparo TRIAC
  delayMicroseconds(8.33);       // Triac ligado em 8.33us, atraves da nossa base de calculo
  digitalWrite(AC_LOAD, LOW);    // Corte do TRIAC
}

void setup() {
  lcd.begin(16, 2); // Inicia o LCD 16x2
  pinMode(LedLCD, OUTPUT); // Declara o LedLCD como saida
  lcd.createChar(1, a); // Declara o char 1
  lcd.createChar(2, b); // Declara o char 2
  lcd.createChar(3, c); // Declara o char 3
  lcd.createChar(4, d); // Declara o char 4
  lcd.createChar(5, e); // Declara o char 5
  pinMode(AC_LOAD, OUTPUT); // Declara o AC_LOAD como saida
  attachInterrupt(0, zero_crosss_int, RISING);  // Ativa a interrupção zero e chama a função zero_crosss_int 
}

//=== Toda essa parte abaixo é para fazer o grafico e chamar a função loop=========================================
void loop() { 
  int programas = map(SaidaValorLDR , 0, 1023, 1, 80);
  switch (programas){     
    case 1:lcd.setCursor(0, 1);lcd.write(1); oi();break;
    case 2:lcd.setCursor(0, 1);lcd.write(2); oi();break;
    case 3:lcd.setCursor(0, 1);lcd.write(3); oi();break;
    case 4:lcd.setCursor(0, 1);lcd.write(4); oi();break;
    case 5:lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 6:lcd.setCursor(1, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 7:lcd.setCursor(1, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 8:lcd.setCursor(1, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 9:lcd.setCursor(1, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 10:lcd.setCursor(1, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 11:lcd.setCursor(2, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 12:lcd.setCursor(2, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 13:lcd.setCursor(2, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 14:lcd.setCursor(2, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 15:lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 16:lcd.setCursor(3, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 17:lcd.setCursor(3, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 18:lcd.setCursor(3, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 19:lcd.setCursor(3, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 20:lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 21:lcd.setCursor(4, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 22:lcd.setCursor(4, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 23:lcd.setCursor(4, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 24:lcd.setCursor(4, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 25:lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 26:lcd.setCursor(5, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 27:lcd.setCursor(5, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 28:lcd.setCursor(5, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 29:lcd.setCursor(5, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 30:lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 31:lcd.setCursor(6, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 32:lcd.setCursor(6, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 33:lcd.setCursor(6, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 34:lcd.setCursor(6, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 35:lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 36:lcd.setCursor(7, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 37:lcd.setCursor(7, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 38:lcd.setCursor(7, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 39:lcd.setCursor(7, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 40:lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 41:lcd.setCursor(8, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 42:lcd.setCursor(8, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 43:lcd.setCursor(8, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 44:lcd.setCursor(8, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 45:lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 46:lcd.setCursor(9, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 47:lcd.setCursor(9, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 48:lcd.setCursor(9, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 49:lcd.setCursor(9, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 50:lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 51:lcd.setCursor(10, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 52:lcd.setCursor(10, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 53:lcd.setCursor(10, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 54:lcd.setCursor(10, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 55:lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 56:lcd.setCursor(11, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 57:lcd.setCursor(11, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 58:lcd.setCursor(11, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 59:lcd.setCursor(11, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 60:lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 61:lcd.setCursor(12, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 62:lcd.setCursor(12, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 63:lcd.setCursor(12, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 64:lcd.setCursor(12, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 65:lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 66:lcd.setCursor(13, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 67:lcd.setCursor(13, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 68:lcd.setCursor(13, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 69:lcd.setCursor(13, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 70:lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 71:lcd.setCursor(14, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 72:lcd.setCursor(14, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 73:lcd.setCursor(14, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 74:lcd.setCursor(14, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 75:lcd.setCursor(14, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 76:lcd.setCursor(15, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    case 77:lcd.setCursor(15, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    case 78:lcd.setCursor(15, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    case 79:lcd.setCursor(15, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    case 80:lcd.setCursor(15, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    break;}    
}

Hardware

Esquemático criado no software fritzing. veja postagem anterior.



Fotos









Vídeo 



quinta-feira, 10 de outubro de 2013

3° Passo (1°Parte)

Nesse nosso novo passo iremos fazer o controle de uma lampada incandescente através do arduino, para isso sera executado alguns passos, e vamos explicar tudo, vamos então....

Para controlar a intensidade da nossa lampada vamos mudar um pouco o processo, como a lampada incandescente trabalha com corrente alternada e como é de conhecimento o modo mais fácil e sensato é controlar o disparo da senoide, controlando assim a intensidade da lampada, esse circuito chamado de Dimmer controla a luz a partir do disparo que é feito por um TRIAC que é controlado por um DIAC que é controlado pelo potenciômetro, porem para fazer esse controle com o arduino iremos mudar alguma coisas, mais vamos começar do básico ate o fim para ficar tudo bem explicado.

- Vamos entender um pouco do optoacoplador que será a base do nosso circuito de potencia, pois nele iremos controlar o TRIAC e analisar o ponto zero da senoide.

Optoacoplador

O optoacoplator tem como sua principal finalidade isolar um sistema de outro, pois dentro dele não temos contato elétrico apenas contato óptico. 

O principio de funcionamento é um Led infravermelho que polarizado corretamente ira iluminar a base de um  fototransistor que ira conduzir. Mais observem que esse modelo de optoacoplador é apenas para corrente continua, mais temos um outro modelo que invés de um fototransistor tem um fototriac que por sua vez é capaz de conduzir corrente alternada.




Porém o Optoacoplador a base de Triac encontramos dois modelos um sem passagem de zero ou seja o componente físico não é equipado com um dispositivo que detecta a passagem da senoide por zero, mais temos um que ja vem equipado com esse dispositivo interno, observem:


Com esse tipo de Optoacoplador garantimos uma melhor exatidão nos circuitos pois ele garante que so sera acionado a parte da potencia quando a senoide passar por zero, assim teremos melhor controle em ponto certo.


TRIAC

Com o TRIAC conseguimos controlar o disparo de uma senoide a partir de um disparo no gate, assim controlando o percentual de atuação da senoide cortando ela no tempo certo.





Como vocês podem observar com o controle do disparo do TRIAC a partir do pulso no Gate. na senoide 1° podemos observar que o disparo é bem curto pois só um pequeno filete da senoide é ativo, assim na 2° maior sera o tempo da senoide ativa e na 3° maior ainda.


Isso ai pessoal essa é a primeira parte aguarde a segunda parte com o projeto em funcionamento.

quarta-feira, 9 de outubro de 2013

Ferramenta de ouro!!!

Pessoal nessa postagem vou apresentar a ferramenta fritzing. Essa ferramenta é muito interessante pois podemos criar desenho do nosso projeto e automaticamente criar a placa de circuito impresso e o esquemático.  Observe esse vídeo de apresentação do software:



Esse software pode ser baixado no próprio site: http://fritzing.org/
clicando em Download our latest version (0.8.3b was released July 27th) and start right away.


Apos isso selecione a versão ideal para seu micro



Depois de baixado e instalado, só executar.



É isso ai mais uma ferramenta para ajudar!!