✓ Speciaal voor VO, Technasium & Bèta-onderwijs ✓ Scholen bestellen op rekening (achteraf betalen)
Direct contact: info@funmetelectronica.nl | Tel: 06-53111122
Arduino Basis › Les 13: Temperature LCD

Les 13: Temperature LCD

Arduino Basis

Functie na opstelling

In deze les gaan we met een thermistor werken en een LCD schermpje. Een thermistor is een temperatuur gevoelige weerstand, we sluiten deze als spanningsdeler op. Voor LCD display moet je, net als bij de servo, een bibliotheek gebruiken. Deze zit standaard in de software opgenomen. Je roept hem op door te klikken op Sketch → Blibliotheek,  Importeren → LiquidCrystal. Verder is in deze sketch gebruik gemaakt van een zelfgemaakt teken (CustomCharacter). Wil je meer weten over LCD display's kijk dan in de voorbeelden. Opstelling Code
/*
  Autheur:      Fun met Electronica
  Link:         lessen.php?id=521
  Beschrijving: De temperatuur meten met een LCD scherm
*/

#include <LiquidCrystal.h>  //bibliotheek van LCD

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   //hier is de LCD aangesloten

/*
  functie voor het berekenen van de temperatuur.
  De waarde die we krijgen van de A0 pin
  zetten we om naar een temperatuur.
  Deze functies kunnen vaak terug gevonden worden
  op een datasheet.
*/
double Thermister(int RawADC) {
  double Temp;
  Temp = log(((10240000 / RawADC) - 10000));
  Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
  Temp = Temp - 273.15; // Omrekenen Kelvin naar Celcius
  return Temp;
}

/*
  Variabelen voor een zelfgemaakte teken.
  Het teken is een graden teken
 */
byte graden[8] = {
  0b00111,
  0b00101,
  0b00111,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};

/*
  Het programmablok void setup wordt eenmaal beschreven
*/
void setup() {
  lcd.createChar(1, graden);  // maak het nieuwe character aan
  lcd.begin(16, 2);           // zet het LCD scherm aan
  lcd.clear();                // maak het LCD scherm leeg
  Serial.begin(115200);       // begin de seriele poort
}

/*
  Het programmablok void loop herhaalt zich keer op keer
*/
void loop() {
  Serial.println(int(Thermister(analogRead(0)))); // lees en print thermometer op seriele monitor
  lcd.print(int(Thermister(analogRead(0))));      // lees en print thermometer op LCD scherm
  lcd.setCursor(4, 0);  // verander de positie waar geprint wordt op de LCD
  lcd.write(1);         // print een waarde op LCD scherm
  lcd.print("C");       // print C op het LCD scherm
  delay(100);           // wacht 100 miliseconden
  lcd.clear();          // leeg het LCD scherm
}

/*
  Opdracht 1:
  Zoek op het internet wat LiquidCrystal precies is.
  Zijn er nog meer functies die je kan gebruiken?
  Kan je een tekst van links naar rechts laten zweven?
*/

Opdrachten

Opdracht 13.1: Zoek op het internet wat LiquidCrystal precies is. Zijn er nog meer functies die je kan gebruiken? Kan je een tekst van links naar rechts laten zweven?