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");
}