lacbp Creative Commons License 2016.03.12 0 0 1769

Sziasztok! Eléggé kezdő vagyok arduinoban. Valamikor régen tanítottak némi C nyelvet,némi pascalt, némi fogalmam van a programozásról, de nem túl sok...

 

Sok mindent szeretnék, de szép lassan, lépésről lépésre. Az végcél, egy otthoni fűtés-HMV-napkollektor vezérlés lenne. Pár 18b20 , arduino nano, és relés kimenetek segítségével. Alapból 2x16 os i2c buszos lcd.

 

Ameddig eljutottam, hogy 2-3 -x db 18b20 -at képes serial montorra kiírni. Az LCD -d is meg tudom "szólaltatni".  Az első fennakadás , amiben szeretném a segítségeteket kérni, hogy a szenzorok hőfok értékét (attól függ, hogy a buszon hány darabot talál)  1-1 külön változóban szeretném tárolni (esetleg tömbben), hogy később az értékeket fel tudjam használni feltételként! Vagy egyenként LCD -re kiíratni...

szóval, hova - mit? ;)

 

köszi!

 

#include <OneWire.h>           
#include <DallasTemperature.h> 
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
#define DS18B20_PIN 2  
 
OneWire oneWire(DS18B20_PIN);         
DallasTemperature sensors(&oneWire);  
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
float hofok[8];
void setup() {
 
 // Serielle Ausgabe starten
 Serial.begin(9600);
 Serial.println("Hőfokmérés");
 lcd.begin(16,2);
 sensors.begin();  // DS18B20 starten
 Serial.print("Talált hőmérők:");
 
 Serial.println(sensors.getDeviceCount());

 
// ------- kijelző villogtatás, csak hogy legyen valami -------------

for(int i = 0; i< 3; i++)

{

lcd.backlight();

delay(250);

lcd.noBacklight();

delay(250);

}

lcd.backlight();

}
 
void loop(){
 
 
 sensors.requestTemperatures(); // Temperatursensor(en) auslesen
 for(byte i=0;i<sensors.getDeviceCount();i++){ // Temperatur ausgeben
  show_temperature(i+1,sensors.getTempCByIndex(i));

 }
 
 delay(5000);
}
 
// hőfok kijelzés
void show_temperature(byte num,float temp)
{

 
  Serial.print("Hőmérő ");
  Serial.print(num);
  Serial.print(": ");
  Serial.print(temp);
  lcd.print(temp);
  Serial.print(" "); 
  Serial.write(176);  //  °-kódja
  Serial.println("C");
 
}