lape
  LAPE e-log  ELOG logo
Message ID: 128     Entry time: Fri Apr 4 19:11:39 2014
Author: Saullo 
Type: Routine 
Category: Aividades do LAPE 
Subject: Automação Peltier e construção do CAP2014 

 

 ================================================================================================

OBS: VERIFIQUEI QUE A PRIMEIRA VEZ QUE VOCÊ LIGAR O SISTEMA E MANDAR ELE ATINGIR DETERMINADA TEMPERATURA ELE FICA UM BOM TEMPO ATE ESTABILIZAR E CHEGAR À TEMPERATURA DESEJADA OU PROXIMA, MAS DEPOIS QUE ESTABILIZAR SE VOCÊ ALTERAR A TEMPERATURA, ELE NÃO LEVARÁ MAIS TANTO TEMPO, A MENOS QUE SEJA EM UMA FAIXA GRANDE DE TEMPERATURA...

 ================================================================================================

 Código graficos: auto_peltier.c

 (05/04/2014)

O sistema de automação do Peltier, visa garantir um controle de temperatura de um ambiente, sozinho. O circuito abaixo, visa ilustrar ele a montagem experimental.

 esquema_circuito.jpg2014-04-04_14.54.24.jpg

 

Foram feitas curvas de calibração. Foi usado um sensor SHT15 para medir temperatura do sistema. A voltagem do Vc foi de 15V e Vb de 5V. Todas as medidas foram feitas no LaPE a uma temperatura ambiente de ~23*C.

Dados : auto_peltier.dat

 

IcxPWM.jpgIcxT.jpgTxPWM.jpg

 VcxPWM.jpgVcxT.jpgRbIc.jpg

 

 

 

>>>>>>>>>>>> O código ( auto_peltier.ino ) esta com dois pedaços um para regular a PWM de forma manual, e outro de forma automática, basta comentar uma, descomentar a outra e carregar o código. Na versão automática, ele ira variar a temperatura até achar a temperatura definida em Tr, ou próximo (Tr deve ser defino a gosto e/ou necessidade eu defini ele como no código apenas para testes, foi quase arbitrário), quando ele achar Tr ele ira entrar em modo de baixo consumo, que eu defini como 50%, isso não esta coerente, eu escolhi de forma arbitrária, ainda irei definir qual o valor adequado para o baixo consumo e postarei o código atualizado. Eu não usei a calibração da temperatura Vs PWM no código automático. O código tambem esta funcionando para o sensor de temperatura SHT15, qualquer outro sensor, deve-se alterar o código.

 

 

(07/04/2014)

 

Foram feitos hoje os primeiros testes com a fonte de notebook, usando o que tinhamos anteriormente... A fonte é uma LITEON PA-1750-08 ela fornece 15V (especificado, porém 15,10-15,30 V real) e até 5A.

Usarei ela para controlar o o peltier.

Os primeiros resultados demonstram que ela funciona igual a fonte grande normal. Apenas sera necessario fazer calibração.

 

(18/04/2014)

 

Foram feitas algumas modificaoes no codigo do arduino, estéticas e de segurança, acontece que as vezes ocorria do peltier aquecer, seja la por qual motivo e se isso näo fosse notado corre o risco de queimar o peltier e ate mesmo o circuito, para tanto foi posto uma linha no código que diz que para temperaturas acima de 30*C a PWM ira desligar o sistema, enquanto a temperatura näo baixar, ele mantera isso, nao importa o que voce faça.

código novo: auto_peltier_1.ino

A baixo podemos ver a calibraçäo da fonte do notebook. A calibração foi feita com 30.3*C de temperatura ambiente  e 77% de humidade.

dados: auto_peltier.dat

 

IcxPWM.jpgIcxT.jpgTxPWM.jpg

 

VcxPWM.jpgVcxT.jpg

 

 

 

Neste código (auto_peltier_2.ino) foram acrescentados dois botöes, um para aumentar e outro para diminuir a temperatura desejada (Tr), voce seleciona a temperatura desejada e ele procura a voltagem correta para tal, vale notar que ainda näo usei a calibraçäo para isso) o esquema eletrônico esta abaixo.

 Circuito_botao.png

 

 circuito_auto_peltier_botao.ms12

(09/04/2014)

 

Foram feitas medidas, da oscilação da temperatura no tempo, dado uma temperatura quero saber qual a estabilidade dela no tempo, eu escolhi 18*C para a temperatura a ser mantida e fiz

medidas de 1h aproximadamente, abaixo os gráficos.

 

TcxdT.jpgTxdT_2.jpg

 

O segundo gráfico é apenas um zoom do primeiro na faixa de 700-1400, o comportamente é equivalente na maior parte do tempo.

 

(23/04/2014)

Foi feito o código usando a calibração, da PWMxT eu estou usando o fit exponencial, mas quem preferir basta comentar a exponencial no codigo e descomentar a calibracao linear.

código: auto_peltier_3.ino

(24/04/2014)

A partir de hoje estarei usando o transistor CDIL 2n6292 EN, datasheet : 2N6288.pdf

Hoje foi feito um teste usando um painel LCD, o tutorial seguido foi deste site:  http://labdegaragem.com/profiles/blogs/tutorial-lcd-com-arduino

O teste foi bem sucedido.

O painel usado foi: LCM1602B.pdf

O teste foi feito usando o sensor SHT15 e o LCD, o código : sht15_LCD.ino

 

(25/04/2014)

Eu fiz algumas melhoras no código, e algumas alterações bobas.

Troquei o LCD anterior por um de 16x4 : dispaly_lcd_4x20.pdf

O código atualizado: auto_peltier_4.ino

 

(26/04/2014)

Eu refiz no Multisim o circuito usado: circuito_auto_peltier_completo.ms13

 circuito_auto_peltier_completo.png

 

 

OBS: O peltier tem um dissipador e um cooler que pode ser ligado na fonte de 15V, se necessario usa-se um regulador de 15V->12V e

o transtistor tambem tem um dissipador e a caixa onde o circuito ficara tambem tem um cooler que deve ser ligado da mesma forma, ainda nao testei isso, mas veremos.

 

(27/04/2014)

Eu pesquisei e descobri como fazer o regulador de voltagem para os Cooles, fiz um esquema no multisim que ponho abaixo.

multisim: 

O diodo Zener usado é um de 12V, mais detalhes olhar livro "Boylestad - Dispositivos eletrônicos e Teoria dos Circuitos", página 555.

circuito_auto_peltier_completo3.png

 

(02/05/2014)

Foi modificado o termômetro usado com no  circuito, ao inv[es de usarmos o sht15 usaremos o NTC1000 (ntc 1K) que é um thermosensor analógico.

A forma de usa-lo com o Arduino pode ser vista nesse link: http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-termistor-ntc-com-arduino

Ele mostra dois métodos, eu usei o Método do Fator Beta, sem nenhum motivo especifico, apenas achei mais adequado e mais fácil de ser usado.

Eu fiz alguns testes antes de ter o código definitivo. Vou po-los todos aqui para ver o que tem de novo neles, basta abrir ele, no cabeçalho esta escrito.

código ntc1000: thermoresistor_ntc1K.ino

código ntc1K Vs SHT15: sht15_vs_thermoresistor.ino

código Arduino : auto_peltier_6.ino

 

(05/05/2014) - (06/05/2014)

Foi feita a usinagem da caixa no qual sera posto tudo, foi usado uma caixa de fonte de computador. ela foi modificada de forma a fica do jeito desejado.

Devo agradecer o trabalho a Viviane Abrão, que disponibilizou seu tempo e conhecimento técnico para me ajudar nesse processo, resultando nas imagens a seguir:

2014-05-09_11.40.21.jpg2014-05-09_11.40.43.jpg,

2014-05-09_11.40.50.jpg2014-05-09_11.41.01.jpg

 

(07/05/2014) - (08/05/2014) - (09/05/2014)

Estou tentando montar o circuito em uma placa de acrílico e fazendo a conexão por fios de cobre, estou enfrentando muitos problemas do qual nâo sei resolver ainda, mas a placa tem a cara abaixo:

 2014-05-09_11.59.09.jpg

 

Eu disponho aqui um o codigo versao 6.1, ele tem uma correcao na parte que le o botao de + e -, havia um erro que eu não tinha visto antes.: auto_peltier_61.ino

Consegui por a caixa para funcionar com a led e tudo o mais.

 

(16/05/2014)

Hoje, finalmente a caixa foi fechada, todos os sistemas foram testados e verificados que funcionam corretamente. Ela esta pronta para uso, os próximos passos será verificar a temperatura

minima atingivel e testar com dois ou mais Peltier em paralelo/série.

Em breve ponho mais testes.

Disponibilizo o manual da caixa: http://elog.if.ufrj.br:31002/lape/141

Eu achei esse link, que tem o valor de Beta para o NTC1K: http://www.beta.dk/betathermkatalog/rtkarakteristik.pdf

Eu depois irei comparar a temperatura medida pelo sht15, ntc1k e o termometro ambiente, e ver se esse valor de beta, é melhor do que o atualmente usado.

 

(27/06/2014)

Foram feitos testes usando 1 e 2 peltier "isolados" dentro de uma caixa pequena e isopor.

isopor_1e2peltier.zip

o zip contem o codigo .c para gerar os graficos e os dados, os dados que tem "_geral" sao dados tirados direto do arduino, ou seja, no serial monitor do arduino, ele mostra alem de tudo as oscilacoes e eu garimpei na mao as medidas mais coerentes, mas eu fiz os graficos com e sem essas oscilacoes.

o resultado com as oscilacoes pode ser visto abaixo:

TxPWM_geral.jpg

 

 

O resultado sem as oscilacoes,

 

TxPWM.jpg

 

 

 

O erro nas oscilacoes é sistemático, ou seja é quase constante, é como se eu tivesse deslocado o gráfico, apenas...

Se olhar nas datas anteriores da pra ver q esta bem mais comportado o mesmo gráfico, dessa vez eu estou usando um thermopar ao invés do sht15...

 

================================================================================================

OBS: VERIFIQUEI QUE A PRIMEIRA VEZ QUE VOCÊ LIGAR O SISTEMA E MANDAR ELE ATINGIR DETERMINADA TEMPERATURA ELE FICA UM BOM TEMPO ATE ESTABILIZAR E CHEGAR À TEMPERATURA DESEJADA OU PROXIMA, MAS DEPOIS QUE ESTABILIZAR SE VOCÊ ALTERAR A TEMPERATURA, ELE NÃO LEVARÁ MAIS TANTO TEMPO, A MENOS QUE SEJA EM UMA FAIXA GRANDE DE TEMPERATURA...

 ================================================================================================

 

Attachment 2: IcxPWM.jpg  16 kB  | Hide | Hide all
IcxPWM.jpg
Attachment 3: IcxT.jpg  17 kB  | Hide | Hide all
IcxT.jpg
Attachment 4: RbIc.jpg  15 kB  | Hide | Hide all
RbIc.jpg
Attachment 5: TxPWM.jpg  17 kB  | Hide | Hide all
TxPWM.jpg
Attachment 6: VcxPWM.jpg  38 kB  | Hide | Hide all
VcxPWM.jpg
Attachment 7: VcxT.jpg  38 kB  | Hide | Hide all
VcxT.jpg
Attachment 9: auto_peltier.ino  0 Bytes
Attachment 17: auto_peltier.ino  4 kB  Uploaded Fri Apr 18 14:26:23 2014  | Hide | Hide all
/*
UFRJ - IF -LaPE
Programador : Saullo Cardoso E. R.
e-Mail: scardosoer@gmail.com
Projeto de Automação do peltier
*/

int SHT_clockPin = 3;  // pin used for clock
int SHT_dataPin  = 2;  // pin used for data
int T0 = 20, Tamb, Tr=15, Vbc = 50,Tpeltier; // (T padrao)graus, (T medido)graus, (T desejado)graus, (power baixo consumo)porcento, (Tpeltier)graus
int peltier = 6; // porta pwm usada
int power = 0; //from 0 to 100%
int peltier_level = map(power, 0, 100, 0, 255); 



void setup() {
Serial.begin(9600);
pinMode(peltier, OUTPUT);
}


void loop() {
  float temperature = getTemperature();
  float humidity = getHumidity();

  Serial.print(" Temperature(*C)= ");
  Serial.print(temperature);
  Serial.print("    Humity(%)= ");
  Serial.print(humidity);
  Serial.print("    Power(%)= ");
  Serial.println(power);
  
  Tamb = temperature;
  Tpeltier = Tamb;//apenas para os testes, apagar depois


  // =============================================
  // MODO DE FUNCIONAMENTO - AUTOMATICO OU MANUAL
  // =============================================
  if (Serial.available()) {
  if( Tpeltier < 25 ){// sistema de seguranca, mais do que isso corre risco peltier queimar

/*
  // =================
  // MODO AUTOMATICO
  // =================
    if ( Tamb > Tr ) {
      power += 2;
      delay(2000);
    }
    else if ( Tamb < Tr ){
      power -= 2;
      delay(2000);
    }
 */
 
  // ============
  // MODO MANUAL 
  // ============
    char option = Serial.read();
    int option2 = Serial.read();
    if(option == 'a') 
        power += 2;
    else if(option == 'z')
        power -= 2;  
    else      
        power = Serial.read();
        
  }//sistema de seguraça
  else power = 0;//sistema de seguraça, se passar de 25 gruas ele desliga sistema
  }// serial avaible

  if(power > 100) power = 100;
  if(power < 0) power = 0;
  peltier_level = map(power, 0, 100, 0, 255);
  analogWrite(peltier, peltier_level); 



}// end void loop


// =================================
// CODIGO DE FUNCIONAMENTO DO SHT15
// =================================
float getTemperature(){
  //Return Temperature in Celsius
  SHT_sendCommand(B00000011, SHT_dataPin, SHT_clockPin);
  SHT_waitForResult(SHT_dataPin);

  int val = SHT_getData(SHT_dataPin, SHT_clockPin);
  SHT_skipCrc(SHT_dataPin, SHT_clockPin);
  return (float)val * 0.01 - 40; //convert to celsius
}

float getHumidity(){
  //Return  Relative Humidity
  SHT_sendCommand(B00000101, SHT_dataPin, SHT_clockPin);
  SHT_waitForResult(SHT_dataPin);
  int val = SHT_getData(SHT_dataPin, SHT_clockPin);
  SHT_skipCrc(SHT_dataPin, SHT_clockPin);
  return -4.0 + 0.0405 * val + -0.0000028 * val * val; 
}


void SHT_sendCommand(int command, int dataPin, int clockPin){
  // send a command to the SHTx sensor
  // transmission start
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  digitalWrite(dataPin, HIGH);
  digitalWrite(clockPin, HIGH);
  digitalWrite(dataPin, LOW);
  digitalWrite(clockPin, LOW);
  digitalWrite(clockPin, HIGH);
  digitalWrite(dataPin, HIGH);
  digitalWrite(clockPin, LOW);

  // shift out the command (the 3 MSB are address and must be 000, the last 5 bits are the command)
  shiftOut(dataPin, clockPin, MSBFIRST, command);

  // verify we get the right ACK
  digitalWrite(clockPin, HIGH);
  pinMode(dataPin, INPUT);

  if (digitalRead(dataPin)) Serial.println("ACK error 0");
  digitalWrite(clockPin, LOW);
  if (!digitalRead(dataPin)) Serial.println("ACK error 1");
}


void SHT_waitForResult(int dataPin){
  // wait for the SHTx answer
  pinMode(dataPin, INPUT);

  int ack; //acknowledgement

  //need to wait up to 2 seconds for the value
  for (int i = 0; i < 1000; ++i){
    delay(2);
    ack = digitalRead(dataPin);
    if (ack == LOW) break;
  }

  if (ack == HIGH) Serial.println("ACK error 2");
}

int SHT_getData(int dataPin, int clockPin){
  // get data from the SHTx sensor

  // get the MSB (most significant bits)
  pinMode(dataPin, INPUT);
  pinMode(clockPin, OUTPUT);
  byte MSB = shiftIn(dataPin, clockPin, MSBFIRST);

  // send the required ACK
  pinMode(dataPin, OUTPUT);
  digitalWrite(dataPin, HIGH);
  digitalWrite(dataPin, LOW);
  digitalWrite(clockPin, HIGH);
  digitalWrite(clockPin, LOW);

  // get the LSB (less significant bits)
  pinMode(dataPin, INPUT);
  byte LSB = shiftIn(dataPin, clockPin, MSBFIRST);
  return ((MSB << 8) | LSB); //combine bits
}

void SHT_skipCrc(int dataPin, int clockPin){
  // skip CRC data from the SHTx sensor
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  digitalWrite(dataPin, HIGH);
  digitalWrite(clockPin, HIGH);
  digitalWrite(clockPin, LOW);}
Attachment 37: auto_peltier_4.ino  6 kB  Uploaded Fri Apr 25 19:26:05 2014  | Hide | Hide all
/*
UFRJ - IF -LaPE
Programador : Saullo Cardoso E. R.
e-Mail: scardosoer@gmail.com
Projeto de Automação do peltier
Versao: 4.2

Botao + calibracao + lcd
Essa versao tem implemento a calibracao e do lcd.
Algumas melhorias


*/

#include <math.h>
#include <LiquidCrystal.h> //Inclui a biblioteca do LCD

LiquidCrystal lcd(12, 11, 5, 4, 9,8 ); //Configura os pinos do Arduino para se comunicar com o LCD
int SHT_clockPin = 3;  // pin used for clock
int SHT_dataPin  = 2;  // pin used for data
double Tamb, Tr=18.0,Tpeltier; //(T ambiente)graus, (T desejado)graus,(Tpeltier)graus
int peltier = 6; // porta pwm usada
int power = 0; //from 0 to 100%
int peltier_level = map(power, 0, 100, 0, 255); 
int PinPlus = 13;   // escolha o pino de entrada (para o interruptor)
int PinMinus = 7;   // escolha o pino de entrada (para o interruptor)
int valplus = 0;     // variável para ler o estado do interruptor
int valminus = 0;     // variável para ler o estado do interruptor

void setup() {
Serial.begin(9600);
pinMode(peltier, OUTPUT);
pinMode(PinPlus, INPUT);    // botao que aumenta temperatura
pinMode(PinMinus, INPUT);    // botao que diminui temperatura
lcd.begin(16, 4); //Inicia o LCD com dimensões 16x4(Colunas x Linhas)

}

void loop() {
  float temperature = getTemperature();
  float humidity = getHumidity();

  Serial.print(" Temp_R(*C)= ");
  Serial.print(Tr);
  Serial.print("    Temp(*C)= ");
  Serial.print(temperature);
  Serial.print("    Power(%)= ");
  Serial.println(power);
  lcd.setCursor(0,0); //Posiciona o cursor na primeira coluna(0) e na primeira linha(0) do LCD
  lcd.print("Tr(*C)= "); 
  lcd.print(Tr); 
  lcd.setCursor(0,1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
  lcd.print("T(*C)= "); 
  lcd.print(temperature);  
  lcd.setCursor(-4,2); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
  lcd.print("                 "); 
  lcd.setCursor(-4,3); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
  lcd.print("By Saullo C. "); 
   
  Tamb = temperature;
  Tpeltier = Tamb;//apenas para os testes, apagar depois


  // ======================================================
  // MODO DE FUNCIONAMENTO - AUTOMATICO OU MANUAL, COM BOTAO
  // ======================================================
  if( Tpeltier < 30 ){// sistema de seguranca, mais do que isso corre risco do peltier queimar
  
  // =============================
  // Modifica temperatura desejada
  // =============================
  valplus = digitalRead(PinPlus);  // ler o valor de entrada
  valminus = digitalRead(PinMinus);  
  if (valplus == LOW) {  
    Tr += 1;  }
  else if(valminus == LOW) {
    Tr -= 1;  }
    


  // =================
  // MODO AUTOMATICO
  // =================
    if ( Tamb != Tr ) {
       power = calibracao(Tr);
       if(power > 100) power = 100;
       if(power < 0) power = 0;
    }
 
 /*
  // ==============
  // MODO MANUAL 
  // ==============
        
    char option = Serial.read();
    if(option == 'a') 
        power += 2;
    else if(option == 'z')
        power -= 2;  
 */
        
  }//sistema de seguraça
  else {
    lcd.setCursor(-3,2); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
    lcd.print("=( AQUECEU =("); 
    power = 0;//sistema de seguraça, se passar de 30 gruas ele desliga sistema
  }//ELSE SISTEMA PROTECAO
  
  if(power > 100) power = 100;
  if(power < 0) power = 0;
  peltier_level = map(power, 0, 100, 0, 255);
  analogWrite(peltier, peltier_level); 
  delay(1000);
}// end void loop

// ==========================================================
// Retorna o valor do power (PWM) para a temperatura desejada
// ===========================================================
double calibracao(double Tr){  
  //calibracao usando funcao exponencial
  //return( (1/(-0.00791836))*log(Tr/3.34042) );
  
  //calibracao usando funcao linear
  return( (Tr - 27.8986)/(-0.164589) );  
   
}

// =================================
// CODIGO DE FUNCIONAMENTO DO SHT15
// =================================
float getTemperature(){
  //Return Temperature in Celsius
  SHT_sendCommand(B00000011, SHT_dataPin, SHT_clockPin);
  SHT_waitForResult(SHT_dataPin);

  int val = SHT_getData(SHT_dataPin, SHT_clockPin);
  SHT_skipCrc(SHT_dataPin, SHT_clockPin);
  return (float)val * 0.01 - 40; //convert to celsius
}
float getHumidity(){
  //Return  Relative Humidity
  SHT_sendCommand(B00000101, SHT_dataPin, SHT_clockPin);
  SHT_waitForResult(SHT_dataPin);
  int val = SHT_getData(SHT_dataPin, SHT_clockPin);
  SHT_skipCrc(SHT_dataPin, SHT_clockPin);
  return -4.0 + 0.0405 * val + -0.0000028 * val * val; 
}
void SHT_sendCommand(int command, int dataPin, int clockPin){
  // send a command to the SHTx sensor
  // transmission start
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  digitalWrite(dataPin, HIGH);
  digitalWrite(clockPin, HIGH);
  digitalWrite(dataPin, LOW);
  digitalWrite(clockPin, LOW);
  digitalWrite(clockPin, HIGH);
  digitalWrite(dataPin, HIGH);
  digitalWrite(clockPin, LOW);

  // shift out the command (the 3 MSB are address and must be 000, the last 5 bits are the command)
  shiftOut(dataPin, clockPin, MSBFIRST, command);

  // verify we get the right ACK
  digitalWrite(clockPin, HIGH);
  pinMode(dataPin, INPUT);

  if (digitalRead(dataPin)) Serial.println("ACK error 0");
  digitalWrite(clockPin, LOW);
  if (!digitalRead(dataPin)) Serial.println("ACK error 1");
}
void SHT_waitForResult(int dataPin){
  // wait for the SHTx answer
  pinMode(dataPin, INPUT);

  int ack; //acknowledgement

  //need to wait up to 2 seconds for the value
  for (int i = 0; i < 1000; ++i){
    delay(2);
    ack = digitalRead(dataPin);
    if (ack == LOW) break;
  }

  if (ack == HIGH) Serial.println("ACK error 2");
}
int SHT_getData(int dataPin, int clockPin){
  // get data from the SHTx sensor

  // get the MSB (most significant bits)
  pinMode(dataPin, INPUT);
  pinMode(clockPin, OUTPUT);
  byte MSB = shiftIn(dataPin, clockPin, MSBFIRST);

  // send the required ACK
  pinMode(dataPin, OUTPUT);
  digitalWrite(dataPin, HIGH);
  digitalWrite(dataPin, LOW);
  digitalWrite(clockPin, HIGH);
  digitalWrite(clockPin, LOW);

  // get the LSB (less significant bits)
  pinMode(dataPin, INPUT);
  byte LSB = shiftIn(dataPin, clockPin, MSBFIRST);
  return ((MSB << 8) | LSB); //combine bits
}
void SHT_skipCrc(int dataPin, int clockPin){
  // skip CRC data from the SHTx sensor
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  digitalWrite(dataPin, HIGH);
  digitalWrite(clockPin, HIGH);
  digitalWrite(clockPin, LOW);}
Attachment 39: circuito_auto_peltier_completo.ms13  163 kB  Uploaded Sat Apr 26 13:30:28 2014
Attachment 40: circuito_auto_peltier_completo.png  29 kB  Uploaded Sat Apr 26 14:04:37 2014  | Hide | Hide all
circuito_auto_peltier_completo.png
Attachment 43: circuito_auto_peltier_completo2.ms13  194 kB  Uploaded Sun Apr 27 12:41:57 2014
Attachment 44: circuito_auto_peltier_completo2.png  43 kB  Uploaded Sun Apr 27 12:42:24 2014  | Hide | Hide all
circuito_auto_peltier_completo2.png
Attachment 45: circuito_auto_peltier_completo2.png  56 kB  Uploaded Sun Apr 27 13:41:08 2014  | Hide | Hide all
circuito_auto_peltier_completo2.png
Attachment 47: 2014-05-09_11.40.43.jpg  291 kB  Uploaded Fri May 9 11:49:56 2014  | Hide | Hide all
2014-05-09_11.40.43.jpg
Attachment 48: 2014-05-09_11.40.50.jpg  288 kB  Uploaded Fri May 9 11:50:03 2014  | Hide | Hide all
2014-05-09_11.40.50.jpg
Attachment 49: 2014-05-09_11.41.01.jpg  217 kB  Uploaded Fri May 9 11:50:12 2014  | Hide | Hide all
2014-05-09_11.41.01.jpg
ELOG V2.9.2-2455