Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Poslední návštěva: pon pro 16, 2019 12:35 am


Arduino Termostat + Lcd Nokia 3310

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.

Arduino Termostat + Lcd Nokia 3310

Příspěvekod Karya » ned dub 08, 2012 8:43 pm

Caute


Uz aj ja som hrdim vlastnnikom Arduina.Obraciam sa na vas.Nevedel by mi niekdo pomoct spravit podmienku?Moja predstava je ak v bojleru 1 bude teplota 60 c nezapinaj rele ak bude viac ako 60 zapny.Pripojene mam 2x DS18B20.Dakujem


Kód: Vybrat vše
#include <OneWire.h>
#include <DallasTemperature.h>
#include <PCD8544.h>

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2


// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// Assign the addresses of your 1-Wire temp sensors.
// See the tutorial on how to obtain these addresses:
// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html

DeviceAddress insideThermometer = { 0x28, 0x6C, 0x2B, 0x24, 0x03, 0x00, 0x00, 0xB2 };
DeviceAddress outsideThermometer = { 0x28, 0x48, 0x24, 0x24, 0x03, 0x00, 0x00, 0xB7 };

// The dimensions of the LCD (in pixels)...
static const byte LCD_WIDTH = 84;
static const byte LCD_HEIGHT = 48;
static PCD8544 lcd;
const int LED = 13;

// A bitmap graphic (10x2) of a thermometer...
static const byte THERMO_WIDTH = 10;
static const byte THERMO_HEIGHT = 2;
static const byte thermometer[] = { 0x00, 0x00, 0x48, 0xfe, 0x01, 0xfe, 0x00, 0x02, 0x05, 0x02,
                                    0x00, 0x00, 0x62, 0xff, 0xfe, 0xff, 0x60, 0x00, 0x00, 0x00};

// --------------------------------------------------------------------------------------------------

void setup(void)
{
  lcd.clear();
  pinMode(LED, OUTPUT);

  // Start up the library
  sensors.begin();
  // set the resolution to 10 bit (good enough?)
  sensors.setResolution(insideThermometer, 10);
  sensors.setResolution(outsideThermometer, 10);
 
   lcd.begin(LCD_WIDTH, LCD_HEIGHT);
}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  lcd.print(tempC);
  lcd.print(" ");

  if (tempC > 22.00 )  // podmienka na zopnutie rele
 
   digitalWrite(LED, HIGH);
  else
  digitalWrite(LED, LOW);

}

void loop(void)
{
  delay(500);
 sensors.requestTemperatures();
 lcd.setCursor(10,1);
 lcd.print("Bojler (1): ");
 printTemperature(insideThermometer);
 lcd.setCursor(10,5);
 lcd.print("Bojler (2): ");
 printTemperature(outsideThermometer);

 
  // Draw the thermometer bitmap at the bottom left corner...
 
 lcd.setCursor(0,0);
 lcd.drawBitmap(thermometer, THERMO_WIDTH, THERMO_HEIGHT);
 
 lcd.setCursor(0,4);
 lcd.drawBitmap(thermometer, THERMO_WIDTH, THERMO_HEIGHT);
 }
Karya
 
Příspěvky: 31
Registrován: pát srp 19, 2011 9:12 am

Re: Arduino Termostat + Lcd Nokia 3310

Příspěvekod lwq » ned dub 15, 2012 1:21 am

V cem je problem ? Pouzij google :comp:

... nahore pridat ...

Kód: Vybrat vše
const int LED = 13;
const int RELE = 10;


v setupu pridat ...

Kód: Vybrat vše
pinMode(RELE, OUTPUT);


A kod by mel byt ...

Kód: Vybrat vše
if ((tempC > 60.00) && (deviceAddress == "insideThermometer"))  // podmienka na zopnutie rele
{
digitalWrite(LED, HIGH);
digitalWrite(RELE, HIGH);
}
else
{
digitalWrite(LED, LOW);
digitalWrite(RELE, LOW);
}


... s tim, ze na PINu 13 tezko neco das, je tam natvrdo LEDka (vetsinou) ... takze pouzit 13 jako indikaci sepnuti rele ... a na sepnuti rele pouzit jiny pin, napsano je to pro pin 10.

A pro uplnost tady mas navod jak pripojit 5V rele k arduinu ... Tim rele muzes ovladat treba stykac a tak ...

http://www.glacialwanderer.com/hobbyrobotics/?p=9

Rele - napriklad ...

http://sk.farnell.com/omron-electronic- ... dp/1231978

(na civce chce cca. < 200mA)

... ja bych tedy pouzil napriklad nize uvedene pro ovladani hned 4 rele ...

http://sk.farnell.com/national-semicond ... dp/1468983

... snad sem pomohl ... :repair:
Uživatelský avatar
lwq
 
Příspěvky: 348
Registrován: úte dub 10, 2012 9:42 pm
Bydliště: MistyMountain

Re: Arduino Termostat + Lcd Nokia 3310

Příspěvekod Karya » ned dub 15, 2012 10:16 am

Dakujem.Preberal som to aj na inom fore a spravil som to takto.Teraz riesim grafiku na lcd.Nechce mi to zobrazit na cely lcd aj ked mam nastavene 84x48 rozlisenie.Vedel by mi niekdo poradit?

Kód: Vybrat vše
delay(500);
  sensors.requestTemperatures();
  ...
  if (sensors.getTempC(insideThermometer)>70.0 && sensors.getTempC(outsideThermometer)<75.0) digitalWrite(cerpadlo, HIGH);
  if (sensors.getTempC(insideThermometer)<60.0 || sensors.getTempC(outsideThermometer)>75.0) digitalWrite(cerpadlo, LOW);


Obrázek
Karya
 
Příspěvky: 31
Registrován: pát srp 19, 2011 9:12 am

Re: Arduino Termostat + Lcd Nokia 3310

Příspěvekod vanous » ned dub 15, 2012 12:25 pm

Karya píše:Dakujem.Preberal som to aj na inom fore a spravil som to takto.Teraz riesim grafiku na lcd.Nechce mi to zobrazit na cely lcd aj ked mam nastavene 84x48 rozlisenie.Vedel by mi niekdo poradit?


neznám ten nokia LCD, ale někdy je potřeba buďto v parametru volání knihovny zadat ty, nebo rozlišení, nebo to případně upravit v knihovně (já si musím upravovat nastavení z 2x16 na 4x20 display...)
vanous
 
Příspěvky: 116
Registrován: sob říj 15, 2011 6:28 pm

Re: Arduino Termostat + Lcd Nokia 3310

Příspěvekod Karya » ned dub 15, 2012 6:11 pm

Tu je ta knihovna.Hladal som co by sa v nej malo zmenit ale nenasiel som.Vedel by si sa mi nato pozriet?Ked som skusal tento program tak to fungovalo na celom.Pridavam odkaz.

http://www.roboti.4fan.cz/vyuka/profesional/display-3310-z-nokie

http://www.ulozto.cz/x8zt5AS/lcd-7z
Karya
 
Příspěvky: 31
Registrován: pát srp 19, 2011 9:12 am


Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: CC [Bot] a 0 návštevníků

Reputation System ©'