Keresés

Részletes keresés

Prof Creative Commons License 2016.12.26 0 0 2643

Nekem ilyen esetekben (önállóan működik, két szoftvert egyesítve nem) az szokott lenni, hogy a változókat kavarom (globális) és/vagy két függvény is beletúr ugyanabba. A kódodat nem látom, így nem tudok róla nyilatkozni, hogy mi lehet a gond.

Aztán: táp. A táp fontos, a logikai vonalak zajvédelme úgyszintén. Részletesen a linken. De előbb szoftveresen nézelődnék (Serial debug).

Előzmény: Gogol69 (2642)
Gogol69 Creative Commons License 2016.12.26 0 0 2642

Köszönöm!

Sajnos most per pillanat más problémáim is vannak.

Már eljutottam odáig, hogy venti. start parancsot tárolja (merker) ezt egy x hőfoknál törli.

Egy másik kimenet akkor van ha ez van vagy melegebb x hőfoknál.

Mind ez már akár használható is lenne, igen ám de a DS18B20 kiolvasása közben megszűnt.

Holnap kipróbálom másik hőérzékelőkkel & nano-val.

 Talán a klónjaim ilyen vackok, vagy miért ilyen instabil a működés? 

Előzmény: Törölt nick (2641)
Törölt nick Creative Commons License 2016.12.26 0 0 2641
Előzmény: Törölt nick (2640)
Törölt nick Creative Commons License 2016.12.26 0 0 2640

int CS = 10; // CS pin on MAX6675 helyett:

 

int CS1 = 10; // CS1 pin on MAX6675

int CS2 = 14; // CS2 pin on MAX6675 pl.

CS= chipselect, a megadott digitális lábon kiválasztja.

Előzmény: Gogol69 (2639)
Gogol69 Creative Commons License 2016.12.26 0 0 2639

Hogyan lehet 2 db Max6675-t használni?

Előzmény: Gogol69 (2638)
Gogol69 Creative Commons License 2016.12.26 0 0 2638

A kijelzett értéknél, hogy sporoljak a karakterekkel ezt változtattam.

 

Ez volt.: ,,  

lcd.print(getTempCByIndex(1);

 

kerekites = sensors.getTempCByIndex(1)/1; // Ez elvileg huleség. Itt azonban a tizedes vesszo utani ertek eltunik
lcd.print(kerekites); //Itt irja be a 1-es szenzor adatát

 

Előtte 

Előzmény: Gogol69 (2628)
Gogol69 Creative Commons License 2016.12.26 0 0 2637

Köszönöm!

Előzmény: Törölt nick (2636)
Törölt nick Creative Commons License 2016.12.24 0 0 2636

Itt is, tőlem és a többiektől bátran.

RJ11 csatlakozókat + 4 eres telefon, vagy árnyékolt kábeleket használok a 3 és 4 vezetékes vonalakhoz, eddig max 12-15 m hosszban.

Előzmény: Gogol69 (2633)
Gogol69 Creative Commons License 2016.12.24 0 0 2635

Hogy ez hogy jött össze nem tudom!

MSzisztok!= Sziasztok!

Előzmény: Gogol69 (2634)
Gogol69 Creative Commons License 2016.12.24 0 0 2634

MSzisztok!

 4db DS18B20-tól szeretnék adatot lekérdezni, a vezeték hossza 4-5 m körüli lesz.

Milyen vezetéket célszerű használni?

Gogol69 Creative Commons License 2016.12.23 0 0 2633

Oké most már értem!

Teszek majd a helyére UNO-t vagy valami mást.

Nem hiszem hogy holnap ki kellene még cserélnem.

Még alig ismerem a tudását, rengeteget kell még tanulnom hozzá!

Ha elakadok kérdezhetlek?

Előzmény: Törölt nick (2632)
Törölt nick Creative Commons License 2016.12.23 0 0 2632

Ahogy nő a kód mérete, egyszer kevés lesz a NANO memória, ezt bővíti valamennyire ha UNO- ként működik.

Előzmény: Gogol69 (2631)
Gogol69 Creative Commons License 2016.12.23 0 0 2631

A teszt nálam is meg volt nano-n!

Teszi a dolgát.

 

Ezt nem értem mit változtattál?

Előzmény: Törölt nick (2629)
Törölt nick Creative Commons License 2016.12.23 0 0 2630

Most jó.

Előzmény: Törölt nick (2629)
Törölt nick Creative Commons License 2016.12.23 0 0 2629

Működik.

Amint látod, egy UNO-ra teszteltem a kódot.

Ez eredetileg NANO lap volt, csak a korábban már leírt módon a bootloder újratöltése után mint UNO használható, némi memória nyereséggel.

Előzmény: Gogol69 (2628)
Gogol69 Creative Commons License 2016.12.23 0 0 2628

Most itt tartok!

 

//I2C-vel illesztett 20x4 LCD-vel és ARDUINO NANO-val
//4DB DS18B20 HŐM. SZENZOR ÉRTÉKÉT ARDUNO NANO-VAL KIJELEZNI 40X4 LCD-VEL
/////////////////////////////////////////
//LCD-I2C IILESZTŐ PANEL - AVR BEKÖTÉSE:
//GND-FEKETE-0V Arduino Nano-hoz
//VCC-FEHER-5V Arduino Nano-hoz
//SDA-LILA- A4 INPUT Arduino Nano-hoz
//SCL-SZURKE- A5 INPUT Arduino Nano-hoz
///////////////////////////////////////
//A négy darab DS18B20 mindkét adatlába összekötve majd lehúzva 4,7kOhm-al a pozitiv taphoz
//adatlábak - D3 pin Arduino Nano-hoz
// sensor resolution 9(0,5 fok pontosság)
// sensor resolution 10(0,25 fok pontosság)
// sensor resolution 11(0,125 fok pontosság)
// sensor resolution 12(0,0625 fok pontosság)
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define ONE_WIRE_BUS 3 //AVR Nano 3. bemenetére kötve D3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress s1 = { 0x28, 0x8A, 0xF7, 0xE1, 0x06, 0x00, 0x00, 0xDB }; //1.szernzor címe másik progival kiolvasva //DS18B20 1-es
DeviceAddress s2 = { 0x28, 0xE1, 0x82, 0x2F, 0x07, 0x00, 0x00, 0xD8 }; //2.szernzor címe másik progival kiolvasva //DS18B20 2-es
DeviceAddress s3 = { 0x28, 0x9B, 0x38, 0x30, 0x07, 0x00, 0x00, 0xDF }; //3.szernzor címe másik progival kiolvasva //DS18B20 3-as
DeviceAddress s4 = { 0x28, 0xCF, 0xCE, 0x2F, 0x07, 0x00, 0x00, 0xB5 }; //4.szernzor címe másik progival kiolvasva //DS18B20 4-es

LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display


void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.begin(20, 4);
sensors.begin();
sensors.setResolution(s1, 9);
}

void loop()
{
// LCD első sor**********************
sensors.requestTemperatures();
delay(500); //fontos ha 11 vagy 12 a resolution
lcd.setCursor(0,0); //0. sor 0. karakter a kezdő cím
lcd.print("Puffer horetegek");
// LCD második sor_1_**********************
lcd.setCursor(0,1); //0. sor 0. karakter a kezdő cím
lcd.print("1");
lcd.print("/");
lcd.setCursor(3,1); //0. sor 3. karakter a kezdő cím
lcd.print(sensors.getTempCByIndex(0)); //Itt irja be a 1-es szenzor adatát
lcd.print("C");
lcd.print(char(223));
// LCD második sor_2_**********************
lcd.setCursor(10,1); //1. sor 10. karakter a kezdő cím
lcd.print("2");
lcd.print("/");
lcd.setCursor(13,1); //1. sor 13. karakter a kezdő cím
lcd.print(sensors.getTempCByIndex(1)); //Itt irja be a 2-es szenzor adatát
lcd.print("C");
lcd.print(char(223));
// LCD harmadik sor_1_**********************
lcd.setCursor(0,2); //2. sor 0. karakter a kezdő cím
lcd.print("3");
lcd.print("/");
lcd.setCursor(3,2); //2. sor 3. karakter a kezdő cím
lcd.print(sensors.getTempCByIndex(2)); //Itt irja be a 3-as szenzor adatát
lcd.print("C");
lcd.print(char(223));
// LCD harmadik sor_2_**********************
lcd.setCursor(10,2); //2. sor 10. karakter a kezdő cím
lcd.print("2");
lcd.print("/");
lcd.setCursor(13,2); //2. sor 13. karakter a kezdő cím
lcd.print(sensors.getTempCByIndex(3)); // Itt irja be a 1-es szenzor adatát
lcd.print("C");
lcd.print(char(223));
// LCD negyedik sor**********************
lcd.setCursor(0,3); //3. sor 10. karakter a kezdő cím
lcd.print("F");
lcd.print("u");
lcd.print("s");
lcd.print("t");
lcd.print("h");
lcd.print(char(239));//ö betű kiirasa
//Max6675 még nem megy! :-(

}

Előzmény: Törölt nick (2625)
spiler0078 Creative Commons License 2016.12.23 0 0 2627

Szia!

Hát valami nem kerek vele az tuti.... Lehet, hogy a nyákon van valami bibi a com portok kivezetésével... Passz, de a lényeg, hogy már müxik az új alappanelemmel.

 

üdv

Spiler

Előzmény: Sploc (2624)
Gogol69 Creative Commons License 2016.12.22 0 0 2626

Szia!

Köszönöm ezt félre teszem amit küldtél.

 Nagyon tetszik amit küldtél!

 Sajnos egyenlőre csak sejtéseim vannak róla hogy mi miért van rajta. :-)

Bár gondolom minden amit szeretnék készíteni már benne van. Sőt olyan is amire nem is gondoltam még.

Most perpillanat megelégednék azzal is ha a 40*4 Lcd & 4db DS18B20-m dolgozna.

Akkor a pufimat végre rendesen le tudnám szigetelni. 

Sajnos a mérő csonkokhoz nem nagyon férek hozzá utána.

Előzmény: Törölt nick (2625)
Törölt nick Creative Commons License 2016.12.22 0 0 2625

Tanulmányozásra:

 

/*Arduino Uno, ATmega328
YourDuino.com Example: Multiple DS18B20 Temperature Sensors
Displayed on 4x20 character LCD display

DS18B20 Pinout (Left to Right, pins down, flat side toward you)
- fekete = Ground
- sárga = Signal (Pin 2): (with 3.3K to 4.7K resistor to +5 or 3.3 )
- zöld = +5 or +3.3 V */

#include <SPI.h>
#include <SD.h>
#include <avr/wdt.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <DS1624.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <MAX6675.h>
DS1624 temperature1(0x48);
DS1624 temperature2(0x4E);
DS1624 temperature3(0x4D);
DS1624 temperature4(0x4F);
#define DS3231_I2C_ADDRESS 0x68
// Convert normal decimal numbers to binary coded decimal
byte decToBcd(byte val)
{
return( (val/10*16) + (val%10) );
}
// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
return( (val/16*10) + (val%16) );
}
/*-----( Declare Constants and Pin Numbers )-----*/
// Data wire is plugged into port 2 on the Arduino (can be changed)
#define ONE_WIRE_BUS 2 // NOTE: No ";" on #define
#define SZV1START 3 // relay1
#define SZV2START 4 // relay2
#define PUFFER 5 // relay3
#define LAKAS1 6 // relay4
#define BYPASS 7 // relay5
#define LAKAS2 8 // relay6
/*-----( Declare objects )-----*/
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass address of our oneWire instance to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// Start the LCD display library
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 20 chars and 4 line display
int LED1 = 13; // Status LED Pin
int CS = 10; // CS pin on MAX6675
int SO = 11; // SO pin of MAX6675
int SCLK = 9; // SCLK pin of MAX6675
int units = 1; // Units to readout temp (0 = raw, 1 = ˚C, 2 = ˚F)
float fusthofok = 0.0; // Temperature output variable
float lakaskW = 0.0;
float kazankW = 0.0;
// Initialize the MAX6675 Library for our chip
MAX6675 temp(CS,SO,SCLK,units);


// Setup Serial output and LED Pin
// MAX6675 Library already sets pin modes for MAX6675 chip!
/*-----( Declare Variables )-----*/
// Assign the addresses of your 1-Wire temp sensors.
// See the tutorial on how to obtain these addresses:
// http://arduino-info.wikispaces.com/Brick-Temperature-DS18B20#Read%20individual

// WP 1
DeviceAddress pufferfent = { 0x28, 0xAC, 0xFA, 0x26, 0x06, 0x00, 0x00, 0x8C }; // "T1"
DeviceAddress puffer1_3 = { 0x28, 0x61, 0xBB, 0x26, 0x06, 0x00, 0x00, 0x7D }; // "T2"
DeviceAddress puffer2_3 = { 0x28, 0x99, 0x10, 0x26, 0x06, 0x00, 0x00, 0xED }; // "T3"
DeviceAddress pufferlent = { 0x28, 0x15, 0x1F, 0x28, 0x06, 0x00, 0x00, 0x00 }; // "T4"
float temppufferfent = 0.0;
float temppuffer1_3 = 0.0;
float temppuffer2_3 = 0.0;
float temppufferlent = 0.0;

void setup() /****** SETUP: RUNS ONCE ******/
{

wdt_disable();
lcd.init(); // initialize the lcd
lcd.backlight();
Serial.begin(9600);
// set the initial time here:
//DS3231 seconds, minutes, hours, day, date, month, year
//setDS3231time(30,12,11,13,13,04,16);

//------- Initialize the Temperature measurement library--------------
sensors.begin();
// set the resolution to 10 bit (Can be 9 to 12 bits .. lower is faster)
sensors.setResolution(pufferfent, 10); //T1
sensors.setResolution(puffer1_3, 10); //T2
sensors.setResolution(puffer2_3, 10); //T3
sensors.setResolution(pufferlent, 10); //T4
temperature1.start();
temperature2.start();
temperature3.start();
temperature4.start();
pinMode(LED1, OUTPUT);
pinMode(SZV1START, OUTPUT);
pinMode(LAKAS1, OUTPUT);
pinMode(PUFFER, OUTPUT);
pinMode(SZV2START,OUTPUT);
pinMode(LAKAS2,OUTPUT);
pinMode(BYPASS,OUTPUT);
digitalWrite(SZV1START, HIGH); // szv1 áll
digitalWrite(LAKAS1, HIGH);
digitalWrite(PUFFER, HIGH); // pufferre állítja az irányváltó1-et
digitalWrite(SZV2START, HIGH); // szv2 áll
digitalWrite(LAKAS2, HIGH);
digitalWrite(BYPASS, HIGH); // bypassra állítja irányváltó2-őt

pinMode(A0, OUTPUT);
SD.begin(A0);
if (!SD.begin(A0)) {

Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");

if (SD.exists("datalog.csv")) {
Serial.println("datalog.csv exists.");
}
else {
Serial.println("datalog.csv doesn't exist.");
}
wdt_enable(WDTO_8S);
}//--(end setup )---
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte
dayOfMonth, byte month, byte year)
{
// sets time and date data to DS3231
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set next input to start at the seconds register
Wire.write(decToBcd(second)); // set seconds
Wire.write(decToBcd(minute)); // set minutes
Wire.write(decToBcd(hour)); // set hours
Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)
Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)
Wire.write(decToBcd(month)); // set month
Wire.write(decToBcd(year)); // set year (0 to 99)
Wire.endTransmission();
}
void readDS3231time(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set DS3231 register pointer to 00h
Wire.endTransmission();
Wire.requestFrom(DS3231_I2C_ADDRESS, 7);
// request seven bytes of data from DS3231 starting from register 00h
*second = bcdToDec(Wire.read() & 0x7f);
*minute = bcdToDec(Wire.read());
*hour = bcdToDec(Wire.read() & 0x3f);
*dayOfWeek = bcdToDec(Wire.read());
*dayOfMonth = bcdToDec(Wire.read());
*month = bcdToDec(Wire.read());
*year = bcdToDec(Wire.read());
}
/*void displayTime()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,
&year);
// send it to the serial monitor
Serial.print(hour, DEC);
// convert the byte variable to a decimal number when displayed
Serial.print(":");
if (minute<10)
{
Serial.print("0");
}
Serial.print(minute, DEC);
Serial.print(":");
if (second<10)
{
Serial.print("0");
}
Serial.print(second, DEC);
Serial.print(" ");
Serial.print(dayOfMonth, DEC);
Serial.print("/");
Serial.print(month, DEC);
Serial.print("/");
Serial.print(year, DEC);
Serial.print(" Day of week: ");
switch(dayOfWeek){
case 1:
Serial.println("Sunday");
break;
case 2:
Serial.println("Monday");
break;
case 3:
Serial.println("Tuesday");
break;
case 4:
Serial.println("Wednesday");
break;
case 5:
Serial.println("Thursday");
break;
case 6:
Serial.println("Friday");
break;
case 7:
Serial.println("Saturday");
break;
}
}*/

void loop() /****** LOOP: RUNS CONSTANTLY ******/

{

SD.begin(A0);
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,
&year);
digitalWrite(LED1, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED1, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second

// Lakástermosztát fűtésre kapcsol= A3=5V
int sensorValue = analogRead(A3);
float LAKASFUTES = sensorValue * (5.0 / 1023.0);
delay(100);
sensors.requestTemperatures(); // Send the command to get temperatures
// Kiolvassuk Ds18B20 szenzorokat.
temppufferfent = sensors.getTempC(pufferfent);
temppuffer1_3 = sensors.getTempC(puffer1_3);
temppuffer2_3 = sensors.getTempC(puffer2_3);
temppufferlent = sensors.getTempC(pufferlent);
float T1 = sensors.getTempC(pufferfent);
float T2 = sensors.getTempC(puffer1_3);
float T3 = sensors.getTempC(puffer2_3);
float T4 = sensors.getTempC(pufferlent);
float kW1 = ((T1+T2+T2+T3+T3+T4)/6)-37 ;
float kW = kW1*1.2771 ;
float szazalek = kW/64*100;
delay(700);

// Read the temp from the MAX6675
fusthofok = temp.read_temp();

// Read the temp from the DS1624
float T5 = temperature1.getTemp();
float T6 = temperature2.getTemp();
float T7 = temperature3.getTemp();
float T8 = temperature4.getTemp();
float lakaskW1 = (T5-T6)*0.001161*12.5*60;
float kazankW1 = (T7-T8)*0.001161*22*60;

if (LAKASFUTES > 4)
{
lakaskW = lakaskW1;
}
else
{
lakaskW = 0;
}
if(T7 > 50)
{
kazankW = kazankW1;
}
else
{
kazankW = 0;
}
delay(500);

Serial.println(LAKASFUTES);
Serial.println(fusthofok);
Serial.println(T1);
Serial.println(T2);
Serial.println(T3);
Serial.println(T4);
Serial.println(T5);
Serial.println(T6);
Serial.println(T7);
Serial.println(T8);
Serial.println(kW);
Serial.println(szazalek);

String dataString = "";
dataString += String(dayOfMonth, DEC);
dataString += ";";
dataString += String(hour, DEC);
dataString += ";";
dataString += String(minute, DEC);
dataString += ";";
dataString += String(second, DEC);
dataString += ";";
dataString += String(LAKASFUTES);
dataString += ";";
dataString += String(fusthofok);
dataString += ";";
dataString += String(T1);
dataString += ";";
dataString += String(T2);
dataString += ";";
dataString += String(T3);
dataString += ";";
dataString += String(T4);
dataString += ";";
dataString += String(T5);
dataString += ";";
dataString += String(T6);
dataString += ";";
dataString += String(T7);
dataString += ";";
dataString += String(T8);
dataString += ";";
dataString += String(kazankW);
dataString += ";";
dataString += String(lakaskW);
dataString += ";";
dataString += String(kW);
dataString += ";";
dataString += String(szazalek);
dataString += ";";
dataString.replace('.',',');
File dataFile = SD.open("datalog.csv", FILE_WRITE);

// if the file is available, write to it:
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
}
// if the file isn't open, pop up an error:
else
{
//Serial.println("error opening datalog.txt");
}
delay (500);

if(T7 > 58 && fusthofok > 130)
{

digitalWrite(LAKAS1,LOW );
digitalWrite(SZV1START,HIGH);
digitalWrite(PUFFER, HIGH);
}
else
{
if(T7 > 50)
{
digitalWrite(PUFFER, LOW);
digitalWrite(LAKAS1, HIGH);
digitalWrite(SZV1START, HIGH);
}
else
{
digitalWrite(PUFFER, LOW);
digitalWrite(LAKAS1, HIGH);
digitalWrite(SZV1START, LOW);
}
}

if ( LAKASFUTES > 4 && szazalek >1)
{
digitalWrite(BYPASS, HIGH);
digitalWrite(LAKAS2, LOW); // 6. RELÉ 8d
digitalWrite(SZV2START, HIGH); // 2. RELÉ 4d
}
else
{
digitalWrite(LAKAS2, HIGH);
digitalWrite(BYPASS, LOW); // 5. RELÉ 7d
digitalWrite(SZV2START, LOW); // 2. RELÉ 4d
}
// clear the screen
lcd.clear();
lcd.home();
lcd.backlight();
lcd.setCursor(5,0);
lcd.print("20");
lcd.setCursor(7,0);
lcd.print(year, DEC);
lcd.setCursor(9,0);
lcd.print(".");
lcd.setCursor(10,0);
lcd.print(month, DEC);
lcd.setCursor(12,0);
lcd.print(".");
lcd.setCursor(13,0);
lcd.print(dayOfMonth, DEC);
lcd.setCursor(15,0);
lcd.print(".");
lcd.setCursor(5,1);
lcd.print(hour, DEC);
lcd.setCursor(7,1);
lcd.print(":");
lcd.setCursor(8,1);
lcd.print(minute, DEC);
lcd.setCursor(10,1);
lcd.print(":");
lcd.setCursor(11,1);
lcd.print(second,DEC);
lcd.setCursor(1,3);
lcd.print(dayOfWeek);
lcd.setCursor(2,3);
lcd.print(".");
lcd.setCursor(5,3);
lcd.print("nap a heten");
delay(4000);
lcd.clear();
lcd.home(); lcd.backlight();
lcd.setCursor(8,0);
lcd.print("PUFFER");
lcd.setCursor(0,1);
lcd.print("T1=");
lcd.setCursor(4,1);
lcd.print(T1);
lcd.setCursor(11,1);
lcd.print("T2=");
lcd.setCursor(14,1);
lcd.print(T2);
lcd.setCursor(0,2);
lcd.print("T3=");
lcd.setCursor(4,2);
lcd.print(T3);
lcd.setCursor(11,2);
lcd.print("T4=");
lcd.setCursor(14,2);
lcd.print(T4);
lcd.setCursor(0,3);
lcd.print("kW=");
lcd.setCursor(4,3);
lcd.print(kW);
lcd.setCursor(11,3);
lcd.print("%=");
lcd.setCursor(14,3);
lcd.print(szazalek);
wdt_reset();
delay(4000);
// clear the screen
lcd.clear();
lcd.home();
lcd.backlight();
lcd.setCursor(4,0);
lcd.print("LAKAS:");
lcd.setCursor(11,0);
lcd.print(lakaskW);
lcd.setCursor(0,1);
lcd.print("T5=");
lcd.setCursor(4,1);
lcd.print(T5);
lcd.setCursor(11,1);
lcd.print("T6=");
lcd.setCursor(14,1);
lcd.print(T6);
lcd.setCursor(4,2);
lcd.print("KAZAN:");
lcd.setCursor(11,2);
lcd.print(kazankW);
lcd.setCursor(0,3);
lcd.print("T7=");
lcd.setCursor(4,3);
lcd.print(T7);
lcd.setCursor(11,3);
lcd.print("T8=");
lcd.setCursor(14,3);
lcd.print(T8);
delay(4000);
// clear the screen
lcd.clear();
lcd.home();
lcd.backlight();
lcd.setCursor(8,0);
lcd.print("FUSTHOFOK");
lcd.setCursor(0,1);
lcd.print("fusthofok=");
lcd.setCursor(11,1);
lcd.print(fusthofok);
wdt_reset();
} // End

Előzmény: Gogol69 (2621)
Sploc Creative Commons License 2016.12.22 0 0 2624

Szia! Örülök neki!

Akkor hibás volt a másik lapka? Létezik olyan, hogy csak egy adott funkciója "megy tönkre"? Mivel a másik soros porton amin az USB van oda-vissza kommunikál.

Előzmény: spiler0078 (2622)
Törölt nick Creative Commons License 2016.12.22 0 0 2623

Akkor én egy analóg hall-laé játszanék. Ás szoftverből oda komparálod ahová neked tetszik.

Előzmény: Prof (2588)
spiler0078 Creative Commons License 2016.12.22 0 0 2622

Szia Sploc!

 

Kicseréltem egy másik Mega2560-ra az alaplapom és most már kapok adatot, ha a nextion-t tapizom (nyomkodom a gombokat) :).

 

Szóval köszi a segítséget, és persze köszi mindenkinek, aki hozzászólt!! :)

 

Nyomom tovább a projektet aztán majd referálok, hogy hogy áll a "Smart vezérlőm"...

 

Cső

Spiler

Előzmény: Sploc (2573)
Gogol69 Creative Commons License 2016.12.22 0 0 2621

Nagyon örülnék ha valamelyik ebben a témában jártas fórumtárs segítene!

Igaz ez nektek bagatel, nekem most per pillanat nagy probléma.

Előzmény: Gogol69 (2620)
Gogol69 Creative Commons License 2016.12.22 0 0 2620

Hiba elhárítva!

A hiba az volt hogy a soros porti monitor még nyitva volt.

Most egy olyan problémám van, hogy az I2C-n LCD nem jelez ki megfelelően.

4 db DS18b20-t szeretnék használni.

A kódjukat már megtaláltam & a programba beírtam.

Ha soros porton figyelem mindegyik szépen dolgozik. 20.00--30.00C stb.

 

 Kijelzőre kiírva rossz & nagyon változó az értéke       2,12---3,80 között ugrál.

 lcd.print(sensors.getTempCByIndex(0));

Amit észre vettem még az az hogy ha a kijelzőre kiírok valamit így: lcd.print("Puffer");

 Akkor az első karaktert jeleníti meg csak.

 

Feltételezem, hogy a hogy a  DS18b20 érték kijelzésénél is ugyan az a hiba.

Mi lehet a gond? 

Előzmény: Gogol69 (2616)
Prof Creative Commons License 2016.12.21 0 0 2619

Szia,

Az okról nem tudok nyilatkozni, millió egy lehet. Ha a mérés valóban így inkonzisztens, ahogy írod, akkor a néhány héttel ezelőtt részleteiben tárgyalt átlagolós módszer hozhat megoldást, mivel bármely 5 mérés legalacsonyabb és legmagasabb értékét kiejted az átlagból, a maradék viszonylag nagy megbízhatósággal az elvárt eredményt fogja hozni. Persze tesztelni kell, és az sem árt, ha a probléma forrását szünteted meg.

Az arduino.cc fórumán olvasva javasolnak kondenzátorokat az érzékelő kimenete és a föld közé, a kábel mindkét végére (0,1 uF), ezzel a zaj jelentős részét ki tudod szűrni (de nem mindet). Hathatós megoldás lehet még a mérés gyakoriságának csökkentése (akár több másodperces, esetleg egy perces közökkel).
Nekem előfordult, hogy fordítva kötöttem be, akkor produkált furcsa méréseket (meg jelentős melegedést is).
Üdv,

Prof

Előzmény: Tomiali (2618)
Tomiali Creative Commons License 2016.12.21 0 0 2618

Mit csesztem el?????

 

Előzmény: Tomiali (2617)
Tomiali Creative Commons License 2016.12.21 0 0 2617

Senkinek  nincs ötlete?

 

Előzmény: Tomiali (2607)
Gogol69 Creative Commons License 2016.12.21 0 0 2616

Hogyan lehet arduino nano programot módosítani ha sorosportra küldene adatokat?

Gogol69 Creative Commons License 2016.12.21 0 0 2615

Probléma megoldva!

 

Innen http://forum.arduino.cc/index.php?topic=143382.0

 

Ezzel:


/* YourDuino Example: Find Address of a DS18B20 Temperature Sensor
Cut and paste the address to a text file for later use.
V1.1 01/17/2013
Questions: terry@yourduino.com 

Connections:
DS18B20 Pinout (Left to Right, pins down, flat side toward you)
- Left   = Ground
- Center = Signal (Pin 2):  (with 3.3K to 4.7K resistor to +5 or 3.3 )
- Right  = +5 or +3.3 V   
This sketch looks for 1-wire devices and  prints their addresses (serial number)
to the Serial Monitor in a format that is useful in Arduino sketches.
Based on example at: 
http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html
*/

/*-----( Import needed libraries )-----*/
#include <OneWire.h>

/*-----( Declare Constants and Pin Numbers )-----*/
#define SENSOR_PIN 2  // Any pin 2 to 12 (not 13) and A0 to A5

/*-----( Declare objects )-----*/
OneWire  ourBus(SENSOR_PIN);  // Create a 1-wire object

void setup()  /****** SETUP: RUNS ONCE ******/
{
 Serial.begin(9600);

 discoverOneWireDevices();  // Everything happens here!
}//--(end setup )---

void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
 // Nothing happening here
}

/*-----( Declare User-written Functions )-----*/
void discoverOneWireDevices(void) {
 byte i;
 byte present = 0;
 byte data[12];
 byte addr[8];

 Serial.print("Looking for 1-Wire devices...nr");// "nr" is NewLine 
 while(ourBus.search(addr)) {
   Serial.print("nrnrFound '1-Wire' device with address:nr");
   for( i = 0; i < 8; i++) {
     Serial.print("0x");
     if (addr[i] < 16) {
       Serial.print('0');
     }
     Serial.print(addr[i], HEX);
     if (i < 7) {
       Serial.print(", ");
     }
   }
   if ( OneWire::crc8( addr, 7) != addr[7]) {
     Serial.print("CRC is not valid!nr");
     return;
   }
 }
 Serial.println();
 Serial.print("Done");
 ourBus.reset_search();
 return;
}

//*********( THE END )***********

Előzmény: Gogol69 (2614)
Gogol69 Creative Commons License 2016.12.21 0 0 2614

Sziasztok!

DS18B20-k címét szeretném megkeresni.

Ezt már megtaláltam! : https://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html

Sajnos itt viszont az ,,one_wire_address_finder" könyvtárat valamiért nem tudom beilleszteni.

Mit kellene más hogyan tennem?

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!