collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]


Focos LED SMD por almamater
[16 de Dezembro de 2023, 14:12]


I Belive por dropes
[15 de Dezembro de 2023, 13:59]


Carga de corrente eletrónica ZPB30A1 60W por jm_araujo
[11 de Dezembro de 2023, 13:27]

Autor Tópico: LM35  (Lida 3424 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
LM35
« em: 16 de Outubro de 2009, 21:58 »
Ola a todos.

Tenho um lm35, liguei ao arduino funcionou a 100%.
Agora queria fazer o seguinte:

Ligar o display de 7 segmentos, mas só tenho 4511, ou seja, vou ter de ligar um display ao 4511 e o outro vai ter de ficar ligado directamente.

Problema é no codigo.

Pelo o que eu percebo de programação de arduino iria usar a estrutura if para cada temperatura, mas vai ficar um codigo enorme.
Neste codigo que fiz só tem temperatura 0 e 1, mas no final iria até 40º
ou seja nem sei se  o arduino vai aceitar este enorme codigo por isso nao fiz até ao final.

alguma dica?

exemplo do codigo
Código: [Seleccione]

int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;

int led9 = 9;
int led10 = 10;
int led11 = 11;
int led12 = 12;


int analogPin = 5;   
int valAnalog ;     
int temperatura ;


void setup()
{
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
pinMode(led10, OUTPUT);
pinMode(led11, OUTPUT);
pinMode(led12, OUTPUT);

  Serial.begin(9600);        // programa a serial para comunica??o em 9600 bps
}

void loop()
{
  valAnalog = analogRead(analogPin);
  temperatura= ( 5 * valAnalog * 100) / 1024 ;
 delay( 1000) ;
 
  if (temperatura =0) {
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, LOW);
}
  if (temperatura =1) {
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
}
}
« Última modificação: 17 de Outubro de 2009, 17:22 por TigPT »

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: LM35
« Responder #1 em: 17 de Outubro de 2009, 11:53 »
encontrei um circuito melhor que permite ocupar menos portas no arduino.
Nao sei se o arduino tem capacidade para levar um codigo que vai de 0º até 40º.
Depois o meu problema é converter por exemplo 30.5º para 30º.

alguma dica


Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: LM35
« Responder #2 em: 24 de Outubro de 2009, 23:02 »
Bem consegui arranjar dois 4511 e montei o circuito na board.
Agora chega parte do codigo e agora tenho o problema
O no display só mostra os numeros como deve se ser
pode ser problema no codigo?

desde já

Código: [Seleccione]
int a1 =9;
int b1 =10;
int c1  =11;
int d1 =12;
int a2 =5;
int b2 =6;
int c2  =7;
int d2 =8;
int analogPin = 5;
int valAnalog ;       // variavel para armazenar o valor analogico lido
int temp ;
void setup() {
  pinMode(a1, OUTPUT);
  pinMode(b1, OUTPUT);
  pinMode(c1, OUTPUT);
  pinMode(d1, OUTPUT);
  pinMode(a2, OUTPUT);
  pinMode(b2, OUTPUT);
  pinMode(c2, OUTPUT);
  pinMode(d2, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  valAnalog = analogRead(analogPin);   // Le o pino de entrada analogica 5
  temp= ( 5 * valAnalog * 100) / 1024 ; // calcula a temperatura 
  Serial.println(temp);
  if (temp = 0){
    digitalWrite(a1, LOW);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
  }
  if(temp =1){
  digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
  }
  if(temp =2){
  digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
  }
  if(temp =3){
  digitalWrite(a1, HIGH);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
  }
  if(temp =4){
  digitalWrite(a1, LOW);
    digitalWrite(b1, LOW);
    digitalWrite(c1, HIGH);
    digitalWrite(d1, LOW);
  }
  if(temp =5){
  digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, HIGH);
    digitalWrite(d1, LOW);
  }
  if(temp =6){
  digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, HIGH);
    digitalWrite(d1, LOW);
  }
  if(temp =7){
  digitalWrite(a1, HIGH);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, HIGH);
    digitalWrite(d1, LOW);
  }
  if(temp =8){
  digitalWrite(a1, LOW);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, HIGH);
  }
  if(temp =9){
  digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, HIGH);
  }
    if(temp =10){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
    digitalWrite(a2, LOW);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
       if(temp =11){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
    digitalWrite(a2, HIGH);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
 if(temp =12){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
 if(temp =13){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
   if(temp =14){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, LOW);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
  if(temp =15){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2,LOW);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
    if(temp =16){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
  if(temp =17){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
  if(temp =18){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, HIGH);   
  }   
   if(temp =19){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, HIGH);
   }     
   if(temp =20){
    digitalWrite(a1, LOW);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   }
 
 
  if(temp =21){
 digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
    digitalWrite(a2, HIGH);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
 if(temp =22){
 digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
 if(temp =23){
 digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
   if(temp =24){
 digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, LOW);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
  if(temp =25){
 digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2,LOW);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
    if(temp =26){
 digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
  if(temp =27){
 digitalWrite(a1, LOW);
    digitalWrite(b1, HIGH);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   }     
   if(temp =28){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, HIGH);
   } 
  if(temp =29){
    digitalWrite(a1, HIGH);
    digitalWrite(b1, LOW);
    digitalWrite(c1, LOW);
    digitalWrite(d1, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, HIGH);
   }   
   if(temp =30){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);

   
   digitalWrite(a2, LOW);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   }
 
 
  if(temp =31){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
    digitalWrite(a2, HIGH);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
 if(temp =32){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
 if(temp =33){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
    }
   if(temp =34){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, LOW);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
  if(temp =35){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2,LOW);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
    if(temp =36){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   } 
  if(temp =37){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, HIGH);
    digitalWrite(d2, LOW);
   }     
   if(temp =38){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
   digitalWrite(a2, LOW);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, HIGH);
   } 
  if(temp =39){
    digitalWrite(a2, HIGH);
    digitalWrite(b2, HIGH);
    digitalWrite(c2, LOW);
    digitalWrite(d2, LOW);
   
   digitalWrite(a2, HIGH);
    digitalWrite(b2, LOW);
    digitalWrite(c2, LOW);
    digitalWrite(d2, HIGH);
   }   
delay(100);
}