Vesisäiliö

#1

Tervedys. Tulipa itsellekkin hommattua tollainen leonardo ja nyt olisi tarkoitus lähtä kokeileen sitä käytännössä.
Eli aikomukseni on lämmittää 5l vesisäiliötä verkkojännitteellä toimivalla vastuksella siten, että veden lämpötila pysyy 45-55°C. Lähtötilanteessa on vesi aina kylmää.
Lämpötila-anturiksi DS18B20 vedenpitävä anturi ja vastuksen releohjaukseen SONGLEN SRD-05VDC-SL-C.

Kuinka pystyn laittamaan tähän painonapilla ohjauksen ajastimelle. Eli kun painan nappia tulee ajastimeen 10min aikaa. Ja jos painan nappia uudelleen niin aikaa onkin 20min ja kolmannella 30min. Enempää en ajastimeen tarvi aikaa. Kun aika on nollassa katkeaa syöttö(230v) kokonaan).

Lämpötila ja ajastimen aika tulee näkymään lcd näytöllä.

Miten arduinossa ilmoitetaan nuo lämpötilat ja anturi-tiedot…

Tässä ollaan niin sekavassa mielentilassa, kun olen kaksi iltaa lukenut arduinolla ohjelmoinnista, niin toivotaan että asia on ymmärrettävissä ja herättää mielenkiintoa ja viitseliäisyyttä kokeneissa koodaajissa.

Kiitos ja anteeksi.

#2

Moi!

Tässä vaikuttaisi olevan hyvä esimerkki käyttämällesi lämpötila-anturille:
hobbytronics.co.uk/ds18b20-arduino
Näköjään käyttämäsi rele on suoraan sopiva arduinolle eikä vaadi muuta kuin output-pinnin ohjauksen ylös/alas.
Haluamasi sovellus on sopivan simppeli harjoitukseksi. Kaikessa yksinkertaisuudessaan valitset tarvittavat kirjastot (onewire, dallastemp, lcd), alustat pari inputtia ja yhden outputin, alustat muuttujat ja teet logiikan looppiin.

Kysy lisää sitämukaa kun tulee ongelmia vastaan :slight_smile:

#3

Tervehdys taas. Sain hommattua nuo tarvittavat komponentit, tehtyä kytkennän ja kirjoitettua koodin. Tästä huolimatta ei tuo lämpötilan mittaus ja vastuksen ohjaus toimi.
Alkuperäisestä suunnitelmasta ei ole jäänyt käytännön toteutukseen kuin veden lämpötilan pito 45-60´C lämpöisenä… ja lämpötilan kirjoitus lcd-näytölle.

Uskoisin kuitenkin että kytkennät on oikein, joten vika on ilmeisesti koodissa…
Osaisiko joku kertoa mikä mättää tuossa kirjoittamassani koodissa.
Lcd-näytölle tulee valo… ei muuta…

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

float temp;
float tempC;
int tempPin = A0;
int vastusPin = 4;

void setup() {
  // set up the LCD's number of columns and rows:
  pinMode(vastusPin, OUTPUT);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("VESI");
}

void loop() {
  temp = analogRead(tempPin);           //lue anturin arvo
  tempC = (5.0 * temp * 100.0)/1024.0;  //analogiatieto lämpötilaksi
  
  lcd.setCursor(5, 0);
  lcd.print(tempC,1);
  lcd.print("'C");

  if(tempC <= 45) {
    digitalWrite(vastusPin, HIGH);
  }
  if(tempC >= 60) {
    digitalWrite(vastusPin, LOW);
  }
  delay(2000);
}
#4

Huomasin, että kursorin asettelu näytölle on väärin…
Korjasin sen mutta ei toimi…
Sitten kokeilin hello worldia muttei sekään aukea…
epäilenkin nyt että lcd näyttö on viallinen… näytöllä on ylärivi kokonaan pimeänä. Tuo on ollut rikki joko jo ostettaessa tai on rikkoonntunut tinattaessa piuhat siihen. En nääs tullut kokeilleeksi toimintaa koekytkentälevyllä.
Täytyy varmaan laittaa uusinäyttö tilaukseen.