LusoRobótica - Robótica em Português
Robótica => Discussão geral sobre robótica => Tópico iniciado por: dio123 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
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);
}
}
-
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
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.dnatechindia.com%2Fimages%2Fstories%2FTutorial%2F8051%2F7-seg%2520disp%2F2X7seg.JPG&hash=dd70c46ba0997351fb85c7486e2297a13fc6ba47)
-
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á
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);
}