Podržite http://amicus.ba malom donacijom

četvrtak 24 Maj 2018

Ocjene članaka: 0 ( 5 glasova)

Zvjezdica neaktivnaZvjezdica neaktivnaZvjezdica neaktivnaZvjezdica neaktivnaZvjezdica neaktivna
 

Arduino može poslužiti kao termometar koji izmjerenu temperaturu prikazuje na LCD display.Izbor LCD display-a ovisi o vrsti i opsegu podataka koji će biti prikazivani. Na slici ispod je primjer 16x2 LCD display-a koji u dva reda može prikazati po 16 znakova.

Na slici ispod je primjer Arduino termometra sa termistorom u AREF spoju koji izmjerenu temperaturu prikazuje na 16x2 LCD display-u.

Termistor termometar AREF LCD

Na slici ispod je LCD display 16x2 sa ispisanom jednom linijom teksta (od dvije moguće).

LCD 16X2Svaki LCD display ima svoj raspored nožica tako da, tokom spajanja, treba obratiti pažnju na oznake napisane na pločici display-a.

Na slici lijevo je LCD display 16x2 sa oznakom 1602A (V2.0).

LCD display ima paralelni interface što znači da mikrokontroler istovremeno mora manipulisati sa više pinova.

To smanjuje broj senzora koji se mogu priključiti na Arduino jer samo LCD display zauzima šest pinova (ulaza/izlaza).

Za prikaz teksta na LCD display-u, prije svega, u sketch je potrebno uključiti biblioteku LiquidCrystal.h

Ispod je kôd sketch-a koji vrši mjerenje temperature pomoću termistora u AREF spoju ispis teksta na 16x2 LCD (kopirajte kompletan kôd ispod u Arduino IDE prozor i upload-ujte ga na Arduino) :

/*
 * MJERENJE TEMPERATURE UZ POMOĆ TERMISTORA
 * I PRIKAZ TEMPERATURE NA NA LCD
 *
 * Autor: Samir Gutić
 * URL: http://amicus.ba
 * Datum: 7. IV 2017.
 */
 /*
 Raspored pinova:
 * LCD RS pin na digitalni pin 12
 * LCD Enable pin na digitalni pin 11
 * LCD D4 pin na digitalni pin 5
 * LCD D5 pin na digitalni pin 4
 * LCD D6 pin na digitalni pin 3
 * LCD D7 pin na digitalni pin 2
 * LCD R/W pin na masu
 * Brisanje LCD-a, VO pin (pin 3)
 */
 
//Uključivanje biblioteke za upravljanje LCD-om
#include <LiquidCrystal.h>

float floatSuma;
float floatProsjek;
float floatOtpor;
float floatTemperatura;

//Vrijeme refreširanja prikaza temperature
#define intOdgoda 1000

//Pin za analogno očitavanje
#define pinAnalogTerm  A1

//Vrijednost rednog otpornika u omima
#define redniOtpor 9900  

//Broj očitavanja za računanje prosječne vrijednosti
#define intBrCitanja 5

//Otpor na 20.6 stepeni C
#define intTermistorNa25 12080   

//Nominalna temperatura  
#define intNominalnaTemp 20.6  
 
//Beta koeficijent termistora (obično 3000-4000)
#define intBetaKoeficijent 4016.032

//Inicijalizacija biblioteke sa brojevima pinova LCD-a
LiquidCrystal lcdDisplay(12, 11, 5, 4, 3, 2);

void setup()
{

Serial.begin(9600);

  //Spojiti AREF na 3.3V i koristiti za napajanje (manje smetnji nego na 5V)
  analogReference(EXTERNAL);
}

void loop()
{
  //Očitavanje vrijednosti sa termistora
  floatSuma = 0;
  for (int i=0; i<intBrCitanja; i++)
  {
    floatSuma = floatSuma+analogRead(pinAnalogTerm);
    delay(10);
  }
   
  //Računanje prosječne vrijednosti u zadnjih intBrCitanja očitavanje
  floatProsjek = floatSuma/intBrCitanja;
 
  //Konverzija vrijednosti u otpor
  floatOtpor = redniOtpor*floatProsjek/(1023-floatProsjek);

  // Steinhart-Hart metod računanja
  floatTemperatura = floatOtpor / intTermistorNa25;          // (R/Ro)
  floatTemperatura = log(floatTemperatura);                  // ln(R/Ro)
  floatTemperatura = floatTemperatura/intBetaKoeficijent;    // 1/B * ln(R/Ro)
  floatTemperatura = floatTemperatura+1.0 / (intNominalnaTemp + 273.15); // + (1/To)
  floatTemperatura = 1.0 / floatTemperatura;                 // Invertovati vrijednost
  floatTemperatura = floatTemperatura-273.15;                // Konverzija u stepene C

  //Prikaz temperature na LCD
  //Konfigurisanje broja vrsta i kolona LCD-a
  lcdDisplay.begin(16, 2);
  lcdDisplay.clear();
 
  //Ispis poruke u prvu liniju
  lcdDisplay.setCursor(0, 0);
  lcdDisplay.print("Temperatura");
  lcdDisplay.print((char)91);
  lcdDisplay.print((char)223);
  lcdDisplay.print("C");
  lcdDisplay.print((char)93);
  lcdDisplay.print(":");

  //Prikaz temperature sa termistora
  lcdDisplay.setCursor(5, 1);
  lcdDisplay.print(floatTemperatura,1);
  lcdDisplay.print((char)223);
  lcdDisplay.print("C");

  delay(intOdgoda);
}

Više datalja o termistoru možete pronaći u članku Arduino termistor termometar (AREF) sa upisom na SD karticu.

U sketch-u iznad se, u svakom ciklusu, vrši pet mjerenja te se od njih računa srednja vrijednost koja se koristi kao izmjerena vrijednost u tom ciklusu.

Za prikaz otvorene uglaste zagrade na LCD display-u koristiti sljedeću naredbu: lcdDisplay.print((char)91)

Za prikaz zatvorene uglaste zagrade na LCD display-u koristiti sljedeću naredbu: lcdDisplay.print((char)93)

Celzius znak (º) ćena LCD display-u biti prikazan pomoću naredbe: lcdDisplay.print((char)223);

Šema spoja elemenata kreirana u Fritzing programu je na slici ispod.

Termistor termometar AREF LCD - breadboard

Potenciometar na šemi iznad služi za regulaciju osvijetljenosti LCD-a. Šema spajanja LCD-a 16x2 važi za display 16x2 (1602A).

Na šemi iznad su pinovi LCD-a označeni brojevima od 1 do 16 (sa donje strane pločice display-a).

Kao što se vidi sa šeme iznad, pin 1 LCD-a je spojen na GND, pin2 na +5V, pin3 na srednji kontakt potenciometra, pin 4 na Arduino pin 12, pin 5 na Arduino GND, pin 6 na Arduino pin 11, pin 11 na Arduino pin 5, pin 12 na Arduino pin 4, pin 13 na Arduino pin 3, pin 14 na Arduino pin 2, pin 15, preko otpornika od 220Ω na Arduino +5V i pin 16 na Arduino GND.

U tabeli ispod je raspored i funkcije pojedinih pinova LCD display-a.

Rb.

LCD pin

Funkcija LCD pina

1

VSS

Gnd

2

VDD

+5V

3

VO

Kontrast

4

RS

RS (Register Select Pin)

5

RW

R/W (Read/Write Pin)

6

E

E (Clock Enable Pin, enable signal)

7

D0

Sabirnica za podatke

8

D1

Sabirnica za podatke

9

D2

Sabirnica za podatke

10

D3

Sabirnica za podatke

11

D4

Sabirnica za podatke

12

D5

Sabirnica za podatke

13

D6

Sabirnica za podatke

14

D7

Sabirnica za podatke

15

A

+5V (LED+ za pozadinsku rasvjetu)

16

K

GND (LED- za pozadinsku rasvjetu)

Električna šema spoja je na sljedećoj slici.

Termistor termometar AREF LCD  - električna šema

Ispod je video koji prikazuje kako funkcioniše termommetar sa termistorom i ispis temperature na LCD.

Potrebne komponente:

1 x Arduino UNO

1 x Breadboard (mala)

1 x otpornik 220Ω

1 x potenciometar 10KΩ

1 x LCD display 16x2 (1602A)

Žice za spajanje

9V napajanje

Dodaj komentar

Komentari odražavaju stavove svojih autora a NE stavove http://amicus.ba. Možete slobodno izraziti svoje mišljenje o članku koji komentarišete ili o komentarima drugih sve dok su vaši komentari u granicama uljudnosti. Uvredljivi, vulgarni, rasistički, nacionalistički i ostali opšte neprihvatljivi komentari će biti izbrisani! Ako imate neku sugestiju, prijedlog ili primjedbu ovo je dobro mjesto da je iznesete.

Svaki komentar će pregledati administrator (Amicus).

Sigurnosni kod
Refreširaj

Amicus copyright 2018