Olá todos. Para quem já conferiu os últimos tutoriais aqui vai mais uma brincadeirinha.
Vamos interligar um sensor de temperatura que mostra em Celsius, Fahrenheit e Kelvin? E que tal usar um piezo ou Buzzer para indicar com sinal sonoro quando a temperatura é mostrada?
Esse tutorial será dividido em 3(três) partes para facilitar a compreensão:
1° Como usar o buzze e acionar por botão
2° Como usar o LM35(sensor de temperatura)
3°Como interligar o Buzzer, o botão e o LM35
1°-passo:
Munido de sua matriz de contatos e um buzzer monte o circuito abaixo:
Atenção: O piezo é um componente polarizado(+-) .
Clicar na imagem para ampliar
A1-Execute o programa:
int piezoPin = 9;
void setup() {
pinMode(piezoPin, OUTPUT);
}
void loop() {
digitalWrite(piezoPin, HIGH);
delayMicroseconds(600);
digitalWrite(piezoPin, LOW);
delayMicroseconds(600);
}
Comentando o código:
Temos o buzzer ligado ao pino 9 que hora esta ligado e hora desligado. O valor 600 é a alternância nesse comportamento.
Experimente mudar esses valores para criar sons mais agudos ou graves. O 600 foi um som que achei bem irritante. Espero que goste!
Agora com sua matriz de contatos monte o circuito abaixo adicionando um Botão:
Clicar na imagem para ampliar
A2-Execute o programa:
int piezoPin = 9, botao=7, val=0;
void setup() {
pinMode(piezoPin, OUTPUT);
pinMode(botao,INPUT);
}
void loop() {
val=digitalRead(botao);
if(val==1){
digitalWrite(piezoPin, HIGH);
delayMicroseconds(600);
digitalWrite(piezoPin, LOW);
delayMicroseconds(600);
}
}
Comentando o código:
Como tudo funciona? O botão é lido e quando ele tem "valor 1" que é o mesmo que HIGH ou 5V ele executa uma tarefa: a de emitir um som.
Veja o vídeo:
2°-passo:
Agora que sabemos como gerar um som de alerta e usar o botão vamos para o segundo passo:
Munido mais uma vez de sua matriz de contatos e um LM35 monte o circuito abaixo:
Datasheet do LM35
Clicar na imagem para ampliar
B1-Execute o código:
int pin = 0;
int tempc= 0, tempf=0,tempk=0;
int samples[8];
int i;
void setup(){
Serial.begin(9600);
}
void loop()
{
for(i = 0; i<=7 ;i++){
samples[i] = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;
tempc = tempc + samples[i]; // somando os 8 valores lidos
delay(1000);
}
tempc = tempc/8.0; // tirando a media dos 8 valores
tempf = (tempc * 9)/ 5 + 32; // converte para fahrenheit
tempk= tempc+273; // converte para Kelvin
delay(100);
//Mostra as temperaturas em C F e K
Serial.print("TemperaturaC:");
Serial.print(tempc);
Serial.print("\t");
Serial.print("TemperaturaF:");
Serial.print(tempf);
Serial.print("\t");
Serial.print("TemperaturaK:");
Serial.print(tempk);
Serial.print("\n");
}
Comentando o código:
Temos a leitura do sensor no pino 0(uma entrada analógica) que gera valores entre 0 e 1023. E como relacionar a temperatura com esses valores?
Uma equação cria uma relação entre o valor de referência que é 5V com esses valores analogicos(de 0 a 1023). Estabelecendo 0,01V para cada 1C°.
Podemos resumir em:
Temperatura em Celsius = ( 5.0 * analogRead(pin) * 100.0) / 1024.0
É possível ainda usar o 3.3V do Arduino como refência externa mas vamos deixar esse tema para outra oportunidade.
Por fim o programa mostra os valores na tela( Serial Monitor ).
3-passo:
Vamos integrar todos os outros circuitos já montados? Monte na matriz de contatos o circito:
Clicar na imagem para ampliar
B2-Execute o código:
int tempc= 0, tempf=0,tempk=0;
int samples[8];
int i;
int piezoPin = 9, botao=7, val=0;
void setup(){
Serial.begin(9600);
pinMode(piezoPin, OUTPUT);
pinMode(botao,INPUT);
}
void loop()
{
for(i = 0; i<=7 ;i++){
samples[i] = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;
tempc = tempc + samples[i];
delay(15);
}
tempc = tempc/8.0;
tempf = (tempc * 9)/ 5 + 32;
tempk= tempc+273;
delay(10);
// testando o botão
val=digitalRead(botao);
if(val==1){
//Mostrando na tela:
Serial.print("TemperaturaC:");
Serial.print(tempc);
Serial.print("\t");
Serial.print("TemperaturaF:");
Serial.print(tempf);
Serial.print("\t");
Serial.print("TemperaturaK:");
Serial.print(tempk);
Serial.print("\n");
// Som:
digitalWrite(piezoPin, HIGH);
delayMicroseconds(600);
digitalWrite(piezoPin, LOW);
delayMicroseconds(600);
}
}
Veja no vídeo um sinal sonoro para cada click no botão:
Comentando o código:
Basicamente este código engloba todos os outros.
Ele gera som quando o botão é pressionado e simultaneamente mostra na tela os valores das temperaturas nas diferentes escalas.
Valores gerados na tela:
Valores gerados na tela:
Veja no vídeo um sinal sonoro para cada click no botão:
Nenhum comentário:
Postar um comentário