Keresés

Részletes keresés

leveste Creative Commons License 2016.03.25 0 0 1781

Köszönöm!

A földfüggetlenség kemény dió, leszigetelem a melegpontot.

Előzmény: titusz99 (1780)
titusz99 Creative Commons License 2016.03.25 0 0 1780

A MAX-ot (és arduino-i) földfüggetlen táppal kell táplálni.

Vagy az érzékelőt elszigetelni.

Nálam egyenlőre USB-n kapja a tápot, meg is látszik.

Sokszor rosszul vagy egyáltalán nem is mér.

Ha használod az arduino soros portját akkor azt is le kell választani optocsatolóval.

Előzmény: leveste (1779)
leveste Creative Commons License 2016.03.24 0 0 1779

Sziasztok!

Max6675-el próbáltam mérni egy 12 V-os fűtőpatronnal fűtött rendszerben. Nem jött össze, mert a fém tégely tápfeszen van, a max kiakadt.

Az megszokott dolog, hogy a hőelem melegpontja nincs elektromosan elszigetelve a fém köpenytől?

Szigeteljem le a melegpontot varnish csővel?

wentworth Creative Commons License 2016.03.15 0 0 1778

Köszönöm a választ

Előzmény: Vargham (1776)
nagyharcos Creative Commons License 2016.03.15 0 0 1777

Sziasztok!

Segítségek kérnék. Egy vezérléshez lenne szükségem 4 szint mélységű menüre. A menü vezérlését rotary encoderrel kellene megoldani. Az encoder gombja megnyomásakor felfüggeszteni a futást és a menübe lépni, ahol a megadott változóknak kellene új értéket adni (45 változó - 5 különböző típus).  Készítettem egy táblázatot:

https://www.dropbox.com/s/tr1xim1zehw0g6p/Men%C3%BC%20elemek.xls?dl=0

A program többi része már lassan kész lesz, de ezzel nem boldogulok. Nézegettem hasonló videokat, példákat, de úgy tűnik ehhez kevés vagyok sajnos :(.

A megjelenítő egy 4x20 -as lcd lenne, mega 2560 meghajtással. A többit privátban a "vállakozóval" megbeszéljük :).

Szóval vállakozó kedvű programozót keresek: nagyharcos@freemail.hu. Kalandorok kíméljenek!

 

 

Vargham Creative Commons License 2016.03.15 0 0 1776

> Mennyire ajánlott az Arudino clone 1000 forint körül? Vagy a nano kicsit alatta?

Ajánlott. Ugyanaz az Atmel MCU van rajta.

Egy dologra kell figyelni: Rosszabb az összeszerelés minősége. Vásárlás után érdemes végignézni a forrasztásokat, eltávolítani a rövidzárakat, újraforrasztani a gyengéket.

 

> Mennyire megbizható a CH340-esek?

Vegyél pro mini klónt, az 1000 ft alatt van. ÉS akkor olyan USB-TTL átalakítót használsz hozzá, amilyet csak akarsz. Én a Silabs CP2101-et ajánlom. Veszel párat, és nem leszel gondban.

 

> Továbbá, le lehet kódolni a megirt programot? (eredetiben, vagy utánzatokban)?

> Mert eredetin se találtam semmiféle védelmet a rátöltött programkódjainkra.

Ugyanaz a mikrokontroller mindegyikben, így nincs értelme megkülönböztetni a kettőt.

A programot le lehet védeni, Google keresőszavak: atmega lock fuse

Előzmény: wentworth (1775)
wentworth Creative Commons License 2016.03.14 0 0 1775

Mennyire ajánlott az Arudino clone 1000 forint körül? Vagy a nano kicsit alatta?

Mennyire megbizható a CH340-esek?

 

Továbbá, le lehet kódolni a megirt programot? (eredetiben, vagy utánzatokban)? Mert eredetin se találtam semmiféle védelmet a rátöltött programkódjainkra.

Törölt nick Creative Commons License 2016.03.14 0 1 1774

A kiolvasáshoz a kód:

 

// This sketch looks for 1-wire devices and
// prints their addresses (serial number) to
// the UART, in a format that is useful in Arduino sketches
// Tutorial:
// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html

#include <OneWire.h>

OneWire ds(2); // Connect your 1-wire device to pin 10

void setup(void) {
Serial.begin(9600);
discoverOneWireDevices();
}

void discoverOneWireDevices(void) {
byte i;
byte present = 0;
byte data[12];
byte addr[8];

Serial.print("Looking for 1-Wire devices...nr");
while(ds.search(addr)) {
Serial.print("nrFound '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!n");
return;
}
}
Serial.print("nrnrThat's it.rn");
ds.reset_search();
return;
}

void loop(void) {
// nothing to see here
}

 

Előzmény: lacbp (1773)
lacbp Creative Commons License 2016.03.14 0 0 1773

Szia Köszi a segítséget!

 

Bár ha jól látom, akkor te előre kiolvastattad valamivel a ds -ek HEX számait, aztán ezeket használtad fel...

 

Lehet, hogy nekem is egyszerűbb lenne így megoldani...

Előzmény: Törölt nick (1770)
Törölt nick Creative Commons License 2016.03.14 0 0 1772

Nekem csak al ko fűnyírót hoz a google találatként.

Van valami linked erre az alaplapra, jól írtad le a tipust?

Előzmény: Hadzsimeee (1771)
Hadzsimeee Creative Commons License 2016.03.14 0 0 1771

Sziasztok. Segítségét kérném valamelyik ügyes emberkének,aki érti az "arduino" alaplapok javításában. 1db (Alko Mega 3D v.1.0) alaplapom van és úgy kaptam meg még decemberben hogy jó volt(elméletileg). Na én ezt elbasztam nem kicsit,úgy hogy a hd44700 kijelző, teljesen eltünt.Itt ülök a gép előtt már lassan két hónapja,úgy hogy nem értek hozzá.Tanulok,bottolások mennek már csak az a baj hogy a nincs meg a szinkron a két gép között. 1x sikerült már szinkronizálni decemberben de újraraktam azóta 5x a windows 7et. Ftdi drivereket cserélgetem de mikor bármelyik bootolo arduino1.5 vagy még ujjjabbal bootol(botolás közbe megáll) időtullépésel.... Tudom hog az Atmega8 de az már régebben megvolt... Jelet kap a gép,probál is kontaktálni de stk500ra dobja hiáába az avr változtatások 5.11 vagy 6.0.1 az utóbbival eggyáltalán nem engedi... Valaki legyen szíves egy kis okosságal megdobni !! Köszönöm. Elér rég szenvedek ezzel,nem tudtam ilyen komplikált egy ilyen kis alaplap... Hát belenyultam. Alternatívák is jöhetnek,vagy elviszem barhová hogy jó legyen.. tyty

Törölt nick Creative Commons License 2016.03.12 0 0 1770

Elsőre az általam használt kódot javasolnám neked átszerkesztésre, idő hiányában most nem tudok foglalkozni vele.

Reléket cserélek SSR-re a szivattyúkhoz a vezérlő lefagyása miatt, ez egy javaslat.

Az Uno az egy Nano, csak a bootloader újratöltése történt meg a wdt aktiválásához.


/*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 LAKAS1 5 // relay2
#define PUFFER 4 // relay3
#define SZV2START 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,10,14,3,16,12,15);

//------- 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 > 0)
{
lakaskW = lakaskW1;
}
else
{
lakaskW = 0;
}
if(T7 > 45)
{
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,HIGH );
digitalWrite(SZV1START,LOW);
digitalWrite(PUFFER, LOW);
}
else
{
if(T7 > 45)
{
digitalWrite(PUFFER, HIGH);
digitalWrite(LAKAS1, LOW);
digitalWrite(SZV1START, LOW);
}
else
{
digitalWrite(PUFFER, LOW);
digitalWrite(LAKAS1, HIGH);
digitalWrite(SZV1START, HIGH);
}
}

if ( LAKASFUTES > 4)
{
if(szazalek > 1)
{
digitalWrite(BYPASS, HIGH);
digitalWrite(LAKAS2, LOW); // 6. RELÉ
digitalWrite(SZV2START, LOW); // 4. RELÉ
}
else
{
digitalWrite(LAKAS2, HIGH);
digitalWrite(BYPASS, LOW); // 5. RELÉ
digitalWrite(SZV2START, HIGH); // 4. RELÉ
}
}
else
{
digitalWrite(LAKAS2, HIGH);
digitalWrite(BYPASS, LOW); // 5. RELÉ
digitalWrite(SZV2START, HIGH); // 4. RELÉ
}

// 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: lacbp (1769)
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");
 
}

szatti Creative Commons License 2016.03.04 0 0 1768

Igen, az elmaradt.

Annak még nem néztem utána hogy mennyit kell beállítanom.

 

Igen, jól érted.

Reset után vagy bekapcsoláskor az első küldés előtt 444.

A második és további esetekben 303.

Előzmény: titusz99 (1767)
titusz99 Creative Commons License 2016.03.04 0 0 1767

a reservedet még nem látom.

jól értem, hogy 176 helyett 303 lett, de első futáskor 444 volt?

mert ha ez így van, akkor töredezett lett a memória.

 

Előzmény: szatti (1766)
szatti Creative Commons License 2016.03.04 0 0 1766

Tényleg felesleges volt ez a sok string.

Nem is értem miért így volt abban a programban ahol találtam.

A jelenleg működő rész így néz ki:

 

Ez után a szabad memóriám első körben 444  majd utána állandósul 303-as értéken.

Előzmény: titusz99 (1764)
szatti Creative Commons License 2016.03.04 0 0 1765

Köszönöm, megpróbálom az egész részt újraírni.

Ezt a stringes wifi részt a neten találtam, így működött elsőre, aztán jöttek a hibák....

Előzmény: titusz99 (1764)
titusz99 Creative Commons License 2016.03.01 0 0 1764

Szerintem túl sok string-et használsz.

Ráadásul a második képen string-ből újabb string-et készítesz.

Szerintem:

1. kép:

- elég egy buf, string nem kell, utána úgyis kiiratod.

- akár függvényt is csinálhatsz rá.

 

2. kép:

- használd a reserved metódust.

-

    getStr += String(Fusthowifi);

  helyett

    getStr += Fusthowifi;

 

 

Lényegesen kevesebbet fogsz fogyasztani.

Előzmény: szatti (1763)
szatti Creative Commons License 2016.03.01 0 0 1763

Ja, bocsi. Máshogy értelmeztem a kérdést.

Először van ez. Itt marad 404:

Majd utána ez a programrész ami után 176:

És ez után küldi.

Előzmény: titusz99 (1762)
titusz99 Creative Commons License 2016.03.01 0 0 1762

A két lekérdezés közötti programsorra gondoltam, hogy több mint 200 byte eltűnt közben.

Előzmény: szatti (1761)
szatti Creative Commons License 2016.03.01 0 0 1761

A free ram. Arról beszélgetünk.

Előzmény: titusz99 (1760)
titusz99 Creative Commons License 2016.03.01 0 0 1760

Mi van 404 és 176 között?

Előzmény: szatti (1757)
titusz99 Creative Commons License 2016.03.01 0 0 1759

Sajnos előfordulhat, hogy kevés.

Előzmény: szatti (1758)
szatti Creative Commons License 2016.02.29 0 0 1758

Ez kevés?

Ettől már rosszalkodhat?

Előzmény: titusz99 (1756)
szatti Creative Commons License 2016.02.28 0 0 1757

Beleírtam!

A loop elején 664

Stringgé alakítás után 404, majd küldés előtti pillanatban 176 a free ram.

 

Előzmény: titusz99 (1756)
titusz99 Creative Commons License 2016.02.25 0 0 1756

A setup-ban nem érdemes.

A loop-ban talán akkor, ha kevés (200-300).

Lényeg, hogy lásd mennyi van akkor és ott.

 

Előzmény: szatti (1755)
szatti Creative Commons License 2016.02.25 0 0 1755

Köszi, viszont ha ezt a setupban íratom ki, akkor nem a valóságot fogom látni.

Ezt többször ki kell íratni a program futása közben, hogy lássam miként alakul a szabad ram mennyisége?

Mondjuk miután az összes hőmérséklet be van olvasva és előkészítve a wifi küldésre. 

Előzmény: titusz99 (1754)
titusz99 Creative Commons License 2016.02.25 0 0 1754
Előzmény: szatti (1753)
szatti Creative Commons License 2016.02.25 0 0 1753

Igen a kukac az csak elírás. Az & akart lenni.

 

A szabad memóriát hol tudom megnézni?

Mintha az újabb Arduino IDE-k kiírtak volna több infot fordításkor, de nekem az 1.0.6.  van fent, mert csak ezzel

tudom az Optiboot féléket programozni.

 

Előzmény: titusz99 (1748)
vfp Creative Commons License 2016.02.24 0 0 1752

Nálam a laptopon az alábbi verziók vannak fent:

-1.05

-1.06

-1.55

-1.63

 

De csak az 1.05-ben volt benne

Előzmény: granov (1751)

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