Jednym z podzespołów wchodzącym w skład zestawów startowych, jest analogowy czujnik temperatury LM35,
dzięki któremu możemy sprawdzać temperaturę otoczenia, co może okazać się bardzo przydatną funkcją.
Zacznijmy może od omówienia parametrów owego elementu:
- Zakres temperatur: od -55°C do 150°C
- Napięcie zasilania: 4V – 20V
- Dokładność: +/- 0,5°C
- Jednostka, w której dokonywany jest pomiar: stopnie Celsjusza
Wyprowadzenia (piny):
- Zasilanie – tak jak już przed chwilą wspomniałem, czujnik może być zasilany napięciem 4 – 30V;
- Wyjście analogowe – z niego będziemy odczytywać wyniki pomiarów; podłączamy je do dowolnego (wcześniej ustalonego) pinu w Arduino;
- GND – czyli inaczej masa; podłączamy ją oczywiście do dowolnego pinu GND w Arduino
No to zaczynamy. Czujnik podłączamy do analogowego wejścia w Arduino.
Aby móc korzystać z czujnika nie potrzebujesz żadnych dodatkowych bibliotek. Dane z czujnika odbierane będą w szeregowym monitorze.
Kod do obsługi naszego czujnika jest w miarę prosty. Na początku definiujemy pin do którego podłączmy czujnik (A0 czyli analogowy pin 0) oraz zmienną w której dane wyjściowe z czujnika są przechowywane. W głównej pętli przypisujemy do zmiennej dane z naszego czujnika. Następnym krokiem jest przetworzenie danych z naszego czujnika na temperaturę wyrażoną w stopniach Celsjusza, za pomocą wzoru:
1 |
(dane z czujnika*0.0048828125)/0.01 |
W ostatniej części naszego kodu piszemy to co ma zostać wyświetlone w monitorze portu szeregowego.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
int czujnik = 0; float t; // zmienna w której będziemy przechowywać dane z czujnika void setup() { Serial.begin(9600); //prędkość transmisji portu szeregowego } void loop() { t = analogRead(czujnik);//zmienna przypisuje do siebie dane z czujnika t = (t*0.0048828125)/0.01;//obliczenie wartości temperatury Serial.print("Temperatura "); //dane do wyświetlenia w monitorze portu szeregowego Serial.print(t); //dane z czujnika wyświetlane w monitorze portu szeregowego Serial.println("*C");//przeniesienie do nowej lini delay(500); } |
Nasze dane wyjściowe zostają wyświetlone w szeregowym monitorze z częstotliwością 0,5s.
Jeżeli masz jakieś pytania lub nie poradziłeś sobie z jakąś częścią kursu, pisz w komentarzach.
[su_button url=”https://roboblog.eu/2015/12/18/arduino-poradnik-3/” size=”7″]Poprzednia część kursu[/su_button] [su_button url=”https://roboblog.eu/2016/02/10/arduino-poradnik-5/” size=”7″]Następna część kursu[/su_button]