資料介紹
描述
測(cè)量給定環(huán)境的溫度非常重要,因?yàn)橥ㄟ^(guò)此參數(shù),可以控制各種過(guò)程,例如工業(yè)過(guò)程、與孵化器相關(guān)的過(guò)程、冷藏小型設(shè)備或大型系統(tǒng)的過(guò)程,以及中央處理器( CPU)的計(jì)算機(jī),以及其他應(yīng)用程序。
除了這些應(yīng)用之外,適當(dāng)配置的溫度傳感器還可用于激活其他設(shè)備,當(dāng)環(huán)境溫度高于或低于預(yù)定值時(shí),例如,當(dāng)環(huán)境溫度高于設(shè)定值時(shí),空調(diào)的動(dòng)作會(huì)更加強(qiáng)烈值,導(dǎo)致更多熱量從環(huán)境中排出,直到達(dá)到設(shè)定溫度。
因此,在使用 LM35 溫度傳感器的 Didactic 溫度計(jì)的情況下開(kāi)發(fā)了類(lèi)似的應(yīng)用程序,如圖 1 所示。

圖 1 - 使用 LM35 傳感器的教學(xué)溫度計(jì)案例。
隨著這個(gè)教學(xué)溫度計(jì)案例的開(kāi)發(fā),您將學(xué)習(xí)如何像以前的項(xiàng)目一樣使用 Arduino 組裝基本電路,以及如何對(duì)其進(jìn)行編程。
實(shí)施的教學(xué)溫度計(jì)結(jié)構(gòu)簡(jiǎn)單,具有 LCD 顯示屏(液晶顯示屏)、LM35 溫度傳感器、3 個(gè)綠色 LED、3 個(gè)黃色 LED、3 個(gè)紅色 LED 和一個(gè)蜂鳴器。
LM35溫度傳感器檢測(cè)環(huán)境溫度,并將數(shù)值傳給Arduino,Arduino負(fù)責(zé)處理信號(hào),然后根據(jù)程序中配置的溫度范圍激活蜂鳴器中相應(yīng)的LED。
在本文中,您將學(xué)習(xí)如何編程和使用 LM35 溫度傳感器,因?yàn)檫@是一個(gè)具有重要精度裕度的模擬溫度傳感器。
因此,通過(guò)本文,您將了解到:
- 了解 Didactic 溫度計(jì)和模擬溫度傳感器 LM35 的外殼結(jié)構(gòu);
- 了解 LM35 模擬溫度傳感器如何與家中的其他設(shè)備完美配合;
- 執(zhí)行 LM35 模擬溫度傳感器、LED、蜂鳴器、LCD 顯示器和 Arduino UNO 之間的通信
- 將 LM35 模擬溫度傳感器和其他組件的結(jié)構(gòu)與開(kāi)發(fā)的教學(xué)案例相結(jié)合。
- 為該項(xiàng)目開(kāi)發(fā)JLCPCB 印刷電路板
現(xiàn)在,我們將開(kāi)始完整介紹使用 LM35 溫度傳感器開(kāi)發(fā)的教學(xué)溫度計(jì)。
開(kāi)發(fā)溫度計(jì)項(xiàng)目
該項(xiàng)目包括展示溫度計(jì)的教學(xué)模型,該模型使用帶有 UNO Arduino 開(kāi)發(fā)板的 LM35 溫度傳感器。
該項(xiàng)目主要由溫度傳感器組成,負(fù)責(zé)檢測(cè)環(huán)境溫度,并通過(guò)其外殼將該溫度轉(zhuǎn)換為模擬信號(hào)。
LED 和蜂鳴器將用作信標(biāo),最后,我們有 LCD 顯示屏,將顯示過(guò)程溫度值,如圖 2 所示。

圖 2 - 建議用于教學(xué)溫度計(jì)操作的電路。
LM35 溫度傳感器由一個(gè)形狀接近于帶有三個(gè)引腳的半圓柱體的外殼組成。
根據(jù)其數(shù)據(jù)表,該傳感器的分辨率為 10mV / oC,即每 1 攝氏度,它的輸出提供 10 mV。等式 1 說(shuō)明了轉(zhuǎn)換。

公式 1 - LM35 傳感器上的溫度轉(zhuǎn)換。資料來(lái)源:德州儀器。
這樣,Arduino 就可以捕捉到信號(hào),從而可以將 0 到 1023(模擬值)范圍內(nèi)的信號(hào)轉(zhuǎn)換為 0V 到 5V 的信號(hào)(電壓信號(hào))。
之后,在這些值之間進(jìn)行線性插值,可以找到與傳感器捕獲的溫度對(duì)應(yīng)的電壓值。
最后,將該值除以分辨率,從而找到傳感器記錄的溫度值。圖 4 顯示了 LM35 溫度傳感器。
教學(xué)溫度計(jì)的所有通信都將通過(guò)液晶顯示屏完成,液晶顯示屏將向用戶(hù)發(fā)送信息。
LM35 傳感器將通過(guò)其包裹將其所在位置的溫度轉(zhuǎn)換為模擬值。不久之后,該值將通過(guò)其中心引腳發(fā)送到 Arduino UNO 的模擬引腳。
然后,通過(guò)開(kāi)發(fā)的程序,將模擬值轉(zhuǎn)換為 0 到 5 伏之間的電壓值。根據(jù)獲得的溫度值,蜂鳴器信號(hào)會(huì)在短時(shí)間內(nèi)激活,然后立即點(diǎn)亮多個(gè) LED,以直觀地指示溫度范圍。最后,傳感器記錄的溫度值顯示在 LCD 顯示屏上。
要設(shè)置實(shí)驗(yàn),首先,確保您的 Arduino 已通過(guò)從 USB 電纜上斷開(kāi)來(lái)關(guān)閉。現(xiàn)在,將組件連接起來(lái),如下圖 6 所示。

圖 3 - 建議電路的接線圖。
Led 的電路由 9 個(gè) LED 組成,3 個(gè)綠色、3 個(gè)黃色和 3 個(gè)紅色,以及它們各自的 220 Ω 電阻。每個(gè) LED 代表 5 攝氏度的變化,從第一個(gè)綠色 LED 開(kāi)始,到最后一個(gè)紅色 LED 結(jié)束。
大多數(shù) LED 都連接到數(shù)字引腳,以便引腳的強(qiáng)度最大,但是,每個(gè) LED 數(shù)量使用 3 個(gè)模擬引腳,對(duì)于這些,使用表示 LED 的高邏輯電平的值 1023。數(shù)字引腳。
由于 LED 以 5 伏與陽(yáng)極連接,因此所有 LED 都以連接引腳上的低邏輯電平激活。
LCD 顯示電路將成為標(biāo)準(zhǔn)使用 4 位連接(D4、D5、D6 和 D7),以及負(fù)責(zé)對(duì)比度的 10 kΩ 電位器,以及連接到陽(yáng)極引腳的 220 電阻。
Arduino Uno 將負(fù)責(zé)對(duì)整個(gè)電路的信號(hào)進(jìn)行處理,并為原型板總線提供電源和參考,從而為開(kāi)發(fā)項(xiàng)目的電路供電。
從上面介紹的方案中,我們將了解所開(kāi)發(fā)的編程邏輯的操作。
系統(tǒng)編程邏輯的開(kāi)發(fā)
教學(xué)溫度計(jì)的所有編程邏輯都是根據(jù)以下程序的評(píng)論開(kāi)發(fā)的:
#include //importando a biblioteca das fun?oes do LCD
//pinos de interface da biblioteca
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int lm35 = A0;//pino do sensor lm35 conectado ao pino analogico A0 inicializado com o valor 0.
float valor_lm35 = 0;//valor que será lido pelo pino analogico do sensor lm35 inicializado com o valor 0.
float temperatura = 0;//varaivel utilizada para receber e armazenar o valor de tempersrura convertido do valor analogico.
//INICIO - intervalos de temperatura em graus celsius
int temp0=0;
int temp1=5;
int temp2=10;
int temp3=15;
int temp4=20;
int temp5=25;
int temp6=30;
int temp7=35;
int temp8=40;
int temp9=45;
//FIM - intervalos de temperatura em graus celsius
// INICIO - verificadores do buzzer
int aux01;
int aux12;
int aux23;
int aux34;
int aux45;
int aux56;
int aux67;
int aux78;
int aux89;
/*
* Os veriicadores aux forma utilizados para verificar se o buzzer ja foi acionada a cada rodada da fun??o loop. Assim que o
* intervalo de temepratura é selecionado, ′pe verificado se o aculumador aux possui um valor igual a zero. Caso seja igual a zero,
* o buzzer é acionado e o contador é incrementado, e ocm isso, ele se rona diferente de zero, e na oroxima rodada da fun??o
* loop o buzzer nao será acionado. E Caso o intervalo de temperatira mude, o contador será zerado no proxima intervbalo que entrar,
* e o sistema será adotado pelo proximo contador.
*/
//FIM - verificadores do buzzer
//INICIO - leds indicativos
int Led_verde1 = A4;//0
int Led_verde2 = A5;//1
int Led_verde3 = 6;//6
int Led_laranja1 = 7;//7
int Led_laranja2 = 8;//8
int Led_laranja3 = 9;//9
int Led_vermelho1 = 10;//10
int Led_vermelho2 = 13;//13
int Led_vermelho3 = A3;//porta analogica A1
//FIM - leds indicativos
//INICIO - pino do buzzer
int pino_buzzer = A2;// pino correspondente ao buzzer
//FIM - pino do buzzer
void setup() {
//inicio - definindo os pinos do leds como saida
pinMode(Led_verde1,OUTPUT);
pinMode(Led_verde2,OUTPUT);
pinMode(Led_verde3,OUTPUT);
pinMode(Led_laranja1,OUTPUT);
pinMode(Led_laranja2,OUTPUT);
pinMode(Led_laranja3,OUTPUT);
pinMode(Led_vermelho1,OUTPUT);
pinMode(Led_vermelho2,OUTPUT);
pinMode(Led_vermelho3,OUTPUT);
//fim - definindo os pinos do leds como saida
pinMode(pino_buzzer,OUTPUT);//definindo o pino do buzzer como saida
pinMode(lm35,INPUT);
// Numero de linhas e colunas do LCD utilizado
lcd.begin(16, 2);
// Funcao responsavel por retornar a mensagem no LCD
lcd.setCursor(2,0);//setando o cursor do LCD na coluna 2 linha 0
lcd.print("SILICIOS LAB");//mensagem enviada para o LCD
lcd.setCursor(0,1);//setando o cursor do LCD na coluna 2 linha 1
lcd.print("TERMOM. DIDATICO");//mensagem enviada para o LCD
delay(4000);//aguarda 4 segundos para iniciar
lcd.clear();//apaga os caracteres no LCD
}
void loop() {
lcd.setCursor(0,0);//desloca o cursor para a posi??o especifica do texto da contagem
lcd.clear();//limpa a contagem anterior
valor_lm35=analogRead(lm35);//ler o valor analogico enviado pelo pino analogico utilizado
temperatura=(((5*valor_lm35)/1023)/0.01);
/*
*
*******INICIO - CACULO DE CONVERSAO DO LM34**********
temperatura_t=temperatura_v/10mV = temperatura_v/0.01;
5v (valor de tensao maxima no pino) -----> 1023 (valor analogico do pino)
xv (valor de tensao maxima no pino) -----> y (valor analogico do pino)
x = [(5*y)/1023]V
resolu??o do lm34 = 10mV//oC = 0.01V/oC
temperatura = x / resolu??o = [(5*y)/1023]V / [0.01]V/oC = {(5*y)/1023] / [0.01]}oC
********FIM - CACULO DE CONVERSAO DO LM34*************
*
*/
//INICIO - CONDI?OES DOS LEDS
if(temp0&&temperatura
aux12=0;//zerando os contadores dos outros intervalos
aux23=0;
aux34=0;
aux45=0;
aux56=0;
aux67=0;
aux78=0;
aux89=0;
//
if(aux01==0)//verificando se o buzzer ja foi acionado nessa rodada da fun??o loop
{
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else{
}
aux01++;//incrementado o acumulador para que o buzzer nao seja acionado mais de uma vez durante o mesmo intervalo de temperatura.
analogWrite(Led_verde1, 0);//Leds indicativos
analogWrite(Led_verde2,1023);
digitalWrite(Led_verde3,HIGH);
digitalWrite(Led_laranja1,HIGH);
digitalWrite(Led_laranja2, HIGH);
digitalWrite(Led_laranja3, HIGH);
digitalWrite(Led_vermelho1,HIGH);
digitalWrite(Led_vermelho2,HIGH);
analogWrite(Led_vermelho3,1023);
lcd.clear();//apaga os caracteres no LCD
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
// lcd.print(aux);//mostra o valor da variavel "moedas" no LCD
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else
if(temp1&&temperatura
{
aux01=0;
aux23=0;
aux34=0;
aux45=0;
aux56=0;
aux67=0;
aux78=0;
aux89=0;
if(aux12==0)
{
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else{}
aux12++;
analogWrite(Led_verde1, 0);
analogWrite(Led_verde2, 0);
digitalWrite(Led_verde3,HIGH);
digitalWrite(Led_laranja1,HIGH);
digitalWrite(Led_laranja2, HIGH);
digitalWrite(Led_laranja3, HIGH);
digitalWrite(Led_vermelho1,HIGH);
digitalWrite(Led_vermelho2,HIGH);
analogWrite(Led_vermelho3,1023);
lcd.clear();
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else
if(temp2&&temperatura
{
aux01=0;
aux12=0;
aux34=0;
aux45=0;
aux56=0;
aux67=0;
aux78=0;
aux89=0;
if(aux23==0)
{
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else
{}
aux23++;
analogWrite(Led_verde1, 0);
analogWrite(Led_verde2, 0);
digitalWrite(Led_verde3,LOW);
digitalWrite(Led_laranja1,HIGH);
digitalWrite(Led_laranja2, HIGH);
digitalWrite(Led_laranja3, HIGH);
digitalWrite(Led_vermelho1,HIGH);
digitalWrite(Led_vermelho2,HIGH);
analogWrite(Led_vermelho3,1023);
lcd.clear();
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else
if(temp3&&temperatura
{
aux01=0;
aux12=0;
aux23=0;
aux45=0;
aux56=0;
aux67=0;
aux78=0;
aux89=0;
if(aux34==0)
{
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else{}
aux34++;
analogWrite(Led_verde1, 0);
analogWrite(Led_verde2, 0);
digitalWrite(Led_verde3,LOW);
digitalWrite(Led_laranja1,LOW);
digitalWrite(Led_laranja2, HIGH);
digitalWrite(Led_laranja3, HIGH);
digitalWrite(Led_vermelho1,HIGH);
digitalWrite(Led_vermelho2,HIGH);
analogWrite(Led_vermelho3,1023);
lcd.clear();
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else
if(temp4&&temperatura
{
aux01=0;
aux12=0;
aux23=0;
aux34=0;
aux56=0;
aux67=0;
aux78=0;
aux89=0;
if(aux45==0)
{
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else{}
aux45++;
analogWrite(Led_verde1, 0);
analogWrite(Led_verde2, 0);
digitalWrite(Led_verde3,LOW);
digitalWrite(Led_laranja1,LOW);
digitalWrite(Led_laranja2, LOW);
digitalWrite(Led_laranja3, HIGH);
digitalWrite(Led_vermelho1,HIGH);
digitalWrite(Led_vermelho2,HIGH);
analogWrite(Led_vermelho3,1023);
lcd.clear();
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else
if(temp5&&temperatura
{
aux01=0;
aux12=0;
aux23=0;
aux34=0;
aux45=0;
aux67=0;
aux78=0;
aux89=0;
if(aux56==0)
{
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else
{
}
aux56++;
analogWrite(Led_verde1, 0);
analogWrite(Led_verde2, 0);
digitalWrite(Led_verde3,LOW);
digitalWrite(Led_laranja1,LOW);
digitalWrite(Led_laranja2, LOW);
digitalWrite(Led_laranja3, LOW);
digitalWrite(Led_vermelho1,HIGH);
digitalWrite(Led_vermelho2,HIGH);
analogWrite(Led_vermelho3,1023);
float aux=temperatura;//variavel utilizada para armazenar a leitura autal do sensor
lcd.clear();
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
lcd.print(temperatura);//mostra o valor da variavel "moedas" no LCD
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else
if(temp6&&temperatura
{
aux01=0;
aux12=0;
aux23=0;
aux34=0;
aux45=0;
aux56=0;
aux78=0;
aux89=0;
if(aux67==0){
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else{}
aux67++;
analogWrite(Led_verde1, 0);
analogWrite(Led_verde2, 0);
digitalWrite(Led_verde3,LOW);
digitalWrite(Led_laranja1,LOW);
digitalWrite(Led_laranja2, LOW);
digitalWrite(Led_laranja3, LOW);
digitalWrite(Led_vermelho1,LOW);
digitalWrite(Led_vermelho2,HIGH);
analogWrite(Led_vermelho3,1023);
lcd.clear();
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
lcd.print(temperatura);//mostra o valor da variavel "moedas" no LCD
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else
if(temp7&&temperatura
{
aux01=0;
aux12=0;
aux23=0;
aux34=0;
aux45=0;
aux56=0;
aux67=0;
aux89=0;
if(aux78==0){
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else{}
aux78++;
analogWrite(Led_verde1, 0);
analogWrite(Led_verde2, 0);
digitalWrite(Led_verde3,LOW);
digitalWrite(Led_laranja1,LOW);
digitalWrite(Led_laranja2, LOW);
digitalWrite(Led_laranja3, LOW);
digitalWrite(Led_vermelho1,LOW);
digitalWrite(Led_vermelho2,LOW);
analogWrite(Led_vermelho3,1023);
lcd.clear();
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
lcd.print(temperatura);//mostra o valor da variavel "moedas" no LCD
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else if(temp8&&temperatura
aux01=0;
aux12=0;
aux23=0;
aux34=0;
aux45=0;
aux56=0;
aux67=0;
aux78=0;
if(aux89==0){
analogWrite(pino_buzzer,1023);//ativa o pino analogico do buzzer para que ele sinalize a mudan?a de temperatura
delay(30);//deixa o buzzer ativado por 1 segundo
analogWrite(pino_buzzer,0);//desativa o pino do buzzer
}
else{}
aux89++;
analogWrite(Led_verde1, 0);
analogWrite(Led_verde2, 0);
digitalWrite(Led_verde3,LOW);
digitalWrite(Led_laranja1,LOW);
digitalWrite(Led_laranja2, LOW);
digitalWrite(Led_laranja3, LOW);
digitalWrite(Led_vermelho1,LOW);
digitalWrite(Led_vermelho2,LOW);
analogWrite(Led_vermelho3,0);
lcd.clear();
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
lcd.print("Temperatura:");//mensagem enviada para o LCD
lcd.setCursor(0, 1);// inicia o curso do LCD na coluna 0, linha 0
lcd.print(temperatura);//mostra o valor da variavel "moedas" no LCD
lcd.setCursor(6,1);
lcd.print("graus C.");//mensagem enviada para o LCD
delay(100);
lcd.clear();
}
else {
// inicia o curso do LCD na coluna 0, linha 1
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
// print the number of seconds since reset:
lcd.print("Temp. fora de ");//mensagem enviada para o LCD
lcd.setCursor(0, 1);
lcd.print("escala");//mensagem enviada para o LCD
lcd.clear();//apaga os caracteres no LCD
delay(100);
}
//FIM - CONDI?OES DOS LEDS
}
對(duì)于這個(gè)項(xiàng)目,開(kāi)發(fā)了一個(gè)專(zhuān)有案例,它將接收 LM35 溫度傳感器、LCD 顯示器、蜂鳴器信號(hào)、LED,只剩下 Arduino UNO 的電阻器和引腳,以便它可以用于教學(xué)方式,如圖 7 所示。

圖 4 - 使用 Arduino 的溫度計(jì)的機(jī)械結(jié)構(gòu)。
接下來(lái),我們將介紹控制項(xiàng)目的印刷電路板的結(jié)構(gòu)。
開(kāi)發(fā)印刷電路板
從使用 Arduino 設(shè)計(jì)溫度計(jì),開(kāi)發(fā)了JLCPCB 印刷電路板。印刷電路板如下圖所示。

該板有一個(gè) Arduino、5 個(gè) JST 連接器和一個(gè) pin bar。
三個(gè)連接器用于連接結(jié)構(gòu)按鈕。此外,我們還有 JST 連接器用于連接 LCD 顯示器和 LM35 溫度傳感器。
最后,我們有一個(gè) pin bar 允許我們連接溫度計(jì)的 LED 燈塔。
印刷電路板電路是根據(jù)下面的電子圖開(kāi)發(fā)的,您可以在文末下載文件。

下載文件后,您可以在JLCPCB 工廠網(wǎng)站上免費(fèi)購(gòu)買(mǎi) 10 個(gè)單元。
通過(guò)這個(gè)電子原理圖,您可以設(shè)置您的項(xiàng)目并使用 Arduino 開(kāi)展多項(xiàng)創(chuàng)意活動(dòng)。
結(jié)論
因此,從這個(gè)項(xiàng)目的開(kāi)發(fā)中,可以知道LM35溫度傳感器,蜂鳴器標(biāo)志的結(jié)構(gòu)。
此外,我們可以通過(guò)開(kāi)發(fā)的程序分析與Arduino Uno的通信。
由于溫度傳感器具有取決于其外殼的轉(zhuǎn)換系數(shù),因此與進(jìn)行測(cè)量的區(qū)域的溫度相比,測(cè)得的溫度值顯示出大約 3 度的誤差。
但是,用于比較的值是該地區(qū)的溫度,而不是位置的值。
致謝
我們感謝JLCPCB PCB 工廠對(duì)本項(xiàng)目開(kāi)發(fā)的支持。
此外,我們要感謝Rob? Lúdico Brazillian School開(kāi)發(fā)該項(xiàng)目。
- LM35高精度攝氏溫度傳感器數(shù)據(jù)表
- 使用MSP-EXP430F5529、LM35 LCD102x64的溫度傳感器
- 基于NodeMCU的物聯(lián)網(wǎng)項(xiàng)目連接LM35溫度傳感器
- 如何將LM35溫度傳感器上傳到云端
- 使用Bolt和LM35傳感器構(gòu)建溫度監(jiān)控系統(tǒng)
- 使用Bolt和LM35傳感器構(gòu)建溫度監(jiān)測(cè)系統(tǒng)電路
- 使用溫度傳感器LM35來(lái)控制伺服電機(jī)速度 3次下載
- 使用LM35溫度傳感器監(jiān)測(cè)食品行業(yè)冷庫(kù)的溫度
- 使用單片機(jī)實(shí)現(xiàn)溫度傳感器LM35全量程應(yīng)用測(cè)試的C語(yǔ)言實(shí)例免費(fèi)下載 33次下載
- Arduino的LM35溫度傳感器實(shí)驗(yàn)程序和工程文件免費(fèi)下載 27次下載
- LM35溫度傳感器的電路原理圖和PCB資料免費(fèi)下載 68次下載
- LM35精密溫度傳感器的數(shù)據(jù)手冊(cè)免費(fèi)下載 37次下載
- 如何使用蜂鳴器和LM35溫度傳感器設(shè)計(jì)溫度報(bào)警器的詳細(xì)資料概述 59次下載
- 數(shù)字顯示溫度計(jì)的PCB設(shè)計(jì)制作過(guò)程 0次下載
- 基于LM35溫度傳感器的溫控系統(tǒng)設(shè)計(jì)
- 電子溫度計(jì)電路圖分享 2414次閱讀
- LM35溫度傳感器功能換為攝氏溫度值及設(shè)計(jì)思路 2.7w次閱讀
- 紅外輻射溫度計(jì)原理 1.3w次閱讀
- 基于采用AT89S51單片機(jī)和LM35溫度傳感器的溫度采集顯示系統(tǒng)設(shè)計(jì) 4821次閱讀
- LM35與ICL7107構(gòu)成的溫度計(jì)電路圖 1.6w次閱讀
- 基于LM35和51單片機(jī)的溫度采集數(shù)碼管顯示系統(tǒng) 1.4w次閱讀
- 基于icl7107的溫度計(jì)的設(shè)計(jì) 3.2w次閱讀
- 基于LM35的單片機(jī)溫度采集顯示系統(tǒng) 8756次閱讀
- 基于LM35溫度傳感器的高精度恒溫控制系統(tǒng) 1w次閱讀
- 基于LM35溫度傳感器的溫控系統(tǒng)設(shè)計(jì) 8291次閱讀
- lm35測(cè)溫電路圖大全(二款lm35測(cè)溫電路設(shè)計(jì)) 2.4w次閱讀
- lm35怎么用(lm35工作原理及內(nèi)部結(jié)構(gòu)_應(yīng)用電路圖) 6.1w次閱讀
- LM35溫度傳感器應(yīng)用及特性 1.2w次閱讀
- 低溫傳感器 1916次閱讀
- 溫度傳感器 3248次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論