Witam wszystkich!
Dzisiaj opiszę nowy projekt dotyczący czujnika temperatury LM35. Do tej pory, przy pomiarze temperatury, pracowałem tylko z czujnikiem DS18B20. Wrzuciłem samouczek dotyczący współpracy czujnika temperatury 18B20 z Arduino. Ostatnio dostałem szansę pracy nad projektem dotyczącym wykrywania temperatury, ale warunkiem tego projektu było użycie tylko LM35 do wykrywania temperatury. Dowiedziałem się dużo o LM35, jego warunkach pracy i funkcjach. Pomyślałem więc, że powinienem zrobić tutorial na jego temat. Będzie to również korzystne dla studentów inżynierii. Poznawanie nowych rzeczy jest zawsze pouczające. Doskonałą cechą LM35 jest to, że jest dość tani w porównaniu z innymi czujnikami temperatury. A ponieważ jest tani, to nie jest zbyt niezawodny. Osobiście bardziej wolę DS18B20 niż LM35 ze względu na jego dokładne odczyty. Przejdźmy teraz do jego połączenia i praktycznych zastosowań. Przede wszystkim rzućmy okiem na wprowadzenie LM35, a następnie zaprojektujemy go w Proteus ISIS.
Wprowadzenie do czujnika temperatury LM35
LM35 to wbudowany czujnik, służący do pomiaru temperatury otoczenia i słynący z niskiej ceny.
Jego wyjście jest generowane w postaci sygnału elektrycznego, a ten sygnał elektryczny jest proporcjonalny do wykrywanej przez niego temperatury.
LM35 jest znacznie bardziej czuły niż inne urządzenia do pomiaru temperatury (niezupełnie).
Wewnętrzny układ tego wbudowanego czujnika jest zamknięty w kapsułce.
LM35 to 3-pinowy układ scalony, który służy do wykrywania temperatury. Wygląd fizyczny LM35 pokazano na poniższym obrazku:
Jak widać na powyższym obrazku, LM35 to 3-pinowy układ scalony:
- Pierwszy pin to Vcc, więc powinien być podłączony do 5 V.
- Środkowy pin to jego pin danych, a LM35 daje wyjście, gdy mierzy temperaturę.
- Trzeci pin to GND i powinien być podłączony do masy baterii/zasilacza.
Łączenie LM35 z Arduino
Najpierw połącz LM35 z mikrokontrolerem Arduino jak widać na poniższym obrazku:
Jak widać na powyższym obrazku, podłączyłem czujnik LM35 do Arduino UNO.
Pin VCC LM35 jest podłączony do +5 V płytki Arduino.
Ponieważ LM35 generuje wartość analogową na swoim pinie wyjściowym, dlatego podłączyłem ten pin do pinu „A0” płytki Arduino.
Ten pin płytki Arduino służy do odbierania danych analogowych z zewnętrznego źródła.
Ostatni pin jest podłączony do pinu GND płytki Arduino.
Kod Arduino dla LM35
Po podłączeniu układu, prześlij poniższy kod na swoją płytkę Arduino.
#define TempPin A0
int TempValue;
void setup()
{
Serial.begin(9600); // Inicjalizacja portu szeregowego
}
void loop()
{
TempValue = analogRead(TempPin); // Odczyt z LM35 i wpisanie do zmiennej
float TempCel = ( TempValue/1024.0)*500; // Konwersja do stopni Celsjusza z 10 bitowej wartości analogowej
float TempFarh = (TempCel*9)/5 + 32; // Konwersja z Celsjusza do Fahrenheita
Serial.print("TEMPRATURE in Celsius = "); //Wyświetlenie temperatury w Celsjuszach
Serial.print(TempCel);
Serial.print("*C");
Serial.print(" | ");
Serial.print("TEMPRATURE = "); // Wyświetlenie temperatury w Fahrenheitach
Serial.print(TempFarh);
Serial.print("*F");
Serial.println();
delay(1000);
}
Symulacja Arduino LM35 w Proteus ISIS
Zróbmy symulację projektu w Proteusie. Proteus ma w swojej bazie danych czujnik LM35, z którego będziemy korzystać.
Co więcej, znamy już bibliotekę Arduino dla Proteusa V2.0, więc korzystając z tej biblioteki, połączymy LM35 z Arduino.
Zaprojektuj układ, jak pokazano poniżej:
To ten sam układ, który projektowaliśmy wcześniej. Jedynym dodatkiem jest wirtualny terminal. Używamy go do sprawdzania wartości.
Używając powyższego kodu, utwórz plik hex i prześlij go do płytki w Proteus.
Naciśnij przycisk uruchom i jeśli wszystko pójdzie dobrze, otrzymasz wyniki, jak pokazano na poniższym rysunku:
Widać, że wirtualny terminal pokazuje tę samą wartość, co na czujniku, która wynosi 33 w stopniach Celsjusza, a 92 przekonwertowana na stopnie Fahrenheita.
To dość prosty kod i nie wymaga wyjaśnień, ale jeśli potrzebujesz pomocy to pisz, a ja ci pomogę.