In acest artiol vom folosi senzorul de temperatura LM335 impreuna cu Arduino.
Acest senzor poate fi regasit in mai multe tipuri de capsule. In acest articol vom folosi senzorul care vine in capsula TO-92.
Gama de temparaturi la care acest senzor opereaza este intre -40ºC si 100ºC.
Senzorul are 3 terminale: ADJ, +VCC si GND (vazute cu marcajul senzorului spre noi si terminalele in jos de la stanga spre dreapta).
Conectarea la Arduino se va face destul de simplu, precum in schema de mai jos:

!!!(In schema este trecut ca senzor LM35 deoarece nu am gasit o librarie a senzorului LM335!)
Sketchul folosit pentru a citi valoarea returnata de senzor este mai jos. Se citeste valoarea senzorului si se afiseaza in terminalul serial:
int LM335 = A0;
int K, C;
void setup() {
Serial.begin(9600);
Serial.println("Termometru cu LM335");
delay(1500);
}
void loop() {
K = analogRead(LM335) * 0.489;
C = K - 273;
Serial.print("Temperatura: ");
Serial.print(C);
Serial.println("ºC");
delay(1000);
}
De asemenea putem folosi 2 sau mai multi senzori. Pentru a face acest lucru va trebui sa folosim schema de mai jos (pentru 2 senzori dar se pot folosi mai multi fara probleme):

Sketchul folosit in acest caz este cel de mai jos:
int LM335_1 = A0;
int LM335_2 = A1;
int K1, C1, K2, C2;
void setup() {
Serial.begin(9600);
Serial.println("Termometru cu 2 senzori LM335");
delay(1500);
}
void loop() {
K1 = analogRead(LM335_1) * 0.489;
C1 = K1 - 273;
K2 = analogRead(LM335_2) * 0.489;
C2 = K2 - 273;
Serial.print("Temperatura senzor 1: ");
Serial.print(C1);
Serial.println("ºC");
Serial.print("Temperatura senzor 2: ");
Serial.print(C2);
Serial.println("ºC");
delay(1000);
}
Daca dorim putem sa afisam informatiile pe un display LCD (pentru a face un mic termometru) cu conectare pe magistrala I2C.
Sketchul folosit in acest caz este cel de mai jos:
int LM335_1 = A0;
int LM335_2 = A1;
int K1, C1, K2, C2;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte celsius[] = {
B00110,
B01001,
B01001,
B00110,
B00000,
B00000,
B00000,
B00000
};
void setup() {
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Termometru cu");
lcd.setCursor(0, 1);
lcd.print("2 senzori LM335");
delay(1500);
lcd.clear();
lcd.createChar(0, celsius);
}
void loop() {
K1 = analogRead(LM335_1) * 0.489;
C1 = K1 - 273;
K2 = analogRead(LM335_2) * 0.489;
C2 = K2 - 273;
lcd.setCursor(0, 0);
lcd.print("Senzor 1: ");
lcd.setCursor(10, 0);
lcd.print(C1);
lcd.write(byte(0));
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Senzor 2: ");
lcd.setCursor(10, 1);
lcd.print(C2);
lcd.write(byte(0));
lcd.print("C");
delay(1000);
lcd.clear();
}