Archive for the ‘Projectos’ Category

Após ter conseguido colocar o sensor de temperatura LM335A a funcionar correctamente surgiu a ideia de guardar todas as leituras num ficheiro de texto para que pudessem ser acedidas posteriormente.

Após algumas pesquisas verifiquei que o Arduino não tem capacidade de efectuar a leitura e a gravação dos dados num ficheiro alojado no computador tal só é possível se utilizar-mos um cartão de memória SD e gravarmos os dados directamente.

Mas existem algumas aplicações que nos permitem guardar as leituras, no computador, mas funcionam como aplicações externas. Uma delas é o Termite 2.8 que eu escolhi usar.

Aqui fica uma imagem do Termite 2.8 a efectuar a leitura da Porta COM e a guardar os dados num fichiro “.txt”:

Após os dados terem sido guardados são apresentados da seguinte forma:

Além deste tipo de solução tentei ainda implementar via código uma forma de guardar a data e a hora do momento em que a temperatura foi medida, mas não obtive nenhum resultado positivo.

O Termite 2.8 poderá ser obtido Aqui:

Neste momento ando à procura de soluções para conseguir verificar a data e a hora de cada leitura através do Arduino, caso algum dos visitantes tenha alguma dica que me possa ajudar seria óptimo.

Share

Com o sensor de temperatura a funcionar correctamente hoje decidi explorar um pouco mais a programação do Arduino relativamente ao Sensor LM335A.

O objectivo de hoje era criar um alerta quando uma determinada temperatura fosse ultrapassada, fazendo ainda acender um LED verde quando a temperatura estivesse num intervalo “seguro” e quando esse intervalo fosse ultrapassado acenderia o LED Vermelho. Confesso que esta solução não foi difícil de conseguir.

O esquema electrónico que utilizei foi:

O código utilizado foi:

float temp;
int tempPin = 0;
int ledPin1 = 13;
int ledPin2 = 12;

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

void loop()
{
temp = analogRead(tempPin);
temp = (((temp/1023)*5)*100)-273.15;

Serial.print(“A Temperatura é de: “);
Serial.println(temp);
delay(5000);

if (temp <= 18.5)
{
digitalWrite(ledPin1, HIGH);
delay(1000);
digitalWrite(ledPin1, LOW);
delay(1000);
}

if (temp >= 18.5)
{
digitalWrite(ledPin2, HIGH);
delay(1000);
digitalWrite(ledPin2, LOW);
delay(1000);
}

}

Aqui fica um vídeo do resultado da experiência:


Agora que tenho a certeza que a implementação do sensor de temperatura esteja correcta, irei num próximo passo tentar apresentar a temperatura num Graphic LCD 84×48 – Nokia 5110.

Share

A recepção do novo material despertou novamente a vontade de experimentar coisas novas na área da electrónica e robótica, pelo que desta vez explorei o Temperature Sensor – LM335A.

Não foi fácil acertar com a simples montagem, sobretudo devido à minha inexperiência de reconhecer resistências, mas acabei por colocar o protótipo funcional recorrendo ao seguinte esquema electrónico:

Após colocar tudo a funcional o sensor fazia a leitura dos seguintes valores:

O código que utilizei para colocar o sensor a ler os valores foi:

float temp;
int tempPin = 0;

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

void loop()
{
temp = analogRead(tempPin);
temp = (((temp/1023)*5)*100)-273.15;
Serial.print(“A Temperatura é de: “);
Serial.println(temp);
delay(1000);

}

O sensor lê por defeito temperaturas em Kelvin, pelo que temos que fazer o calculo da real temperatura da seguinte forma:

temp = (((temp/1023)*5)*100)-273.15;

Esta linha de código indica-nos que os valores lidos irão variar entre 0 e 1023, mas nos precisamos de obter um valor em volts para que o Arduino o possa interpretar então vamos fazer (temp*5volts)/1023, uma vez que o output do LM335 é em mV, para converter para Volts multiplica-se por 100, e com isto obtemos o valor em Kelvin, que por sua vez para ser convertido em graus Celsius basta subtrair 273.15.

 0ºk = -273.15ºC

0ºC = 271.15ºK.

Penso que esta implementação do sensor de temperatura esteja correcta, mas certamente haverá soluções mais elegantes que eu tentarei explorar no futuro visto que eu ainda me estou a iniciar na área da electrónica e da robótica.

Share

Após ter verificado o problema com a ponte H L293D acabei por encomendar uma nova ponte H L293D entre outro material que poderá ser benéfico para o meu projecto.

A primeira coisa que fiz mal recebi o material foi experimentar a nova ponte H L293D, e foi então que o RobóticTank renasceu, movimentando ambos os motores de imediato.

O resultado deste renascer poderá ser visto no seguinte vídeo:

 


 

O código que utilizei para esta pequena experiência foi o seguinte:

int motorPin1 = 6;
int motorPin2 = 5;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 500;

void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

void loop()
{

digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(1000);

digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(1000);

}

Agora com o RobóticTank de novo pronto para experimentar irei fazer diversos testes e modificações nos próximos dias pelo que podem esperar por novidades brevemente.

Share

Depois de confirmar que a ponte H L293D estava danificada acabei por encomendar uma nova além de mais algum material que me poderá ser útil no desenvolvimento do meu projecto.

O material chegou hoje pelo que já pude colocar o RobóticTank a andar.

O material recebido foi:

– 1 x    Graphic LCD 84×48 – Nokia 5110

– 1 x    Temperature Sensor – LM335A

– 2 x    Jumper Wires Premium 6″ M/M Pack of 10

– 1 x    H-Bridge Motor Driver 1A

– 1 x    Breadboard Mini Self-Adhesive

Mal chegou o material testei de imediato a nova ponte H L293D pelo que o RobóticTank deu logo sinais de vida, brevemente colocarei mais informação sobre os desenvolvimentos do projecto.

Share