Keresés

Részletes keresés

Prof Creative Commons License 2017.01.05 0 0 2667

Szia,

1. Alapvetően protokolltól függ, i2c-vel ne is próbálkozz, azt alapvetően nyákon belüli kommunikációra találták ki. Vannak rendszerek (pl. RS485), ami vígan elmegy több tíz métert is különleges birizgálás nélkül. Arduinóval számos minta van rá. Canbus játszik (bár az eszközök köre szűkös). Elgondolkodtató ez esetben a szobánkénti kontroller és a központi vezérlő master/slave-szerű elrendezésben. Cat6 megfelelő az adatátvitelre és a tápkábelnek is.

2. Kérdés, hogy mennyire akarsz pontos értéket. A One Wire vígan elmegy néhány tucat métert, de a távolsággal arányosan a zavarérzékenység nő. Én nem keverném a rendszereket, egy központi busz, az érzékelők meg a sajátjukon (lásd 1. pont).
3. Én nem feltétlen Arduino alapon csinálnám, de a mega2560, ha nem akarsz csili-vili kijelzést, megbírkózik vele. Én valószínűleg mbed platformon és jó eséllyel Can-Bus-szal vagy RS485-tel csinálnám.
4. Amit a rendszer elbír. Tudok közelségérzékelős rendszerről is, ami megfelelő protokoll alapján tök automatikusan kapcsol mindent a lakásban.
5. A műszaki átvétel után azt csinálsz, amit akarsz, a plusz kábelnek a villanyszerelő nem fog örülni, de azt kérheted, hogy másik csatornába húzza és másik fali elosztódobozba rakja, és akkor nincs gond vele semmilyen szempontból. Az biztos, ha valamit elbaltázol, akkor a tűzvizsgálók erősen  kérdezgetni fogják, hogy mi hogy volt, és ha úgy alakul, a biztosító például simán kifarol a helyzetből. Az okosházon nem (csak) az elektronika kerül annyiba, hanem az is, hogy felelősséget vállalnak arra, hogy emiatt nem fog leégni a házad (ha mégis, akkor az ő biztosítójuk az ő felelősségbiztosításuk terhére fizetni fog). Építésügyileg ez úgy néz ki, hogy a házba az és úgy kerülhet bele, ahogy a terveken van. Ez a felelős műszaki vezető felelőssége. Ha a terveken szerepel egy sor második kábelcsatorna, benne egy-két-há CAT-6 UTP kábellel, akkor az lesz. Hogy aztán ezzel mi fog történni, ahhoz nekik már semmi közük. A házat úgy kell átadni, hogy a te tervedből semmi nem látszik sem a terveken, sem a házon (maximum kihagyott lyukak, üres kötődobozok stb.). Aztán amikor az e-építési naplót lezárják, akkor jöhet a mehet, mert onnantól az már a te felelősséged, nem az építésvezetőé.

Előzmény: spiler0078 (2665)
Brandyman Creative Commons License 2017.01.05 0 0 2666

Sziasztok, 

 

Beleszaladtam egy 2.4-es MCUFRIEND TFTLCD-be, de sehogyan sem tudom elindítani. 

Kipróbáltam sok library-t, de vagy fel sem megy, vagy ha fel is megy, semmi sem történik. 

 

A példaprogramok működnek, soros porton jönnek adatok (ha beleírták), de magán a kijelzőn semmi sem történik.

 

Van valakinek ezzel kapcsolatban tapasztalata? 

 

Én is okos házban gondolkodnék, ez lenne a fő eleme, de így...

 

Előre is köszönöm! 

 

 

 

spiler0078 Creative Commons License 2017.01.05 0 0 2665

Sziasztok!

 

Jövőre építkeznék (160m2), és elkezdtem nézegetni az okosház rendszereket, viszont elég húzós árakat
mondtak... (1.5-2Mft)
Amire szükségem lenne (kb):
- 14-15 világítási kör vezérlése
- 6-7 helység hőmérsékletének mérése, és szabályzása
- 10 db redőny vezérlése
- kapunyitás
- szellőztető berendezés vezérlése

 

Jelenleg egy 50m2-es kis családi házban lakunk, ahova már összeraktam egy kis eszközt, amivel a
a szoba, nappali, külső hőmérsékletét mérem. Páratartalmat mérek, és vezérlem a hővisszanyerős szellőztetőmet.
Ugyanezzel az eszközzel mérem a vegyes tüzelésű kazán előremenő és visszatérő víz hőmérsékletét és a puffer hőmérsékletét...

Ez eddig elég stabilan működik, viszont itt kicsik a távolságok (10m max.) a szenzorok és relék, és a mikorkontroller között (Arduino MEGA 2560),
és itt működik úgy hogy az arduino jelszintekkel kapcsolok...

 

Buszos rendszerre gondoltam (hogy építek egyet), ahol a fogyasztókig kihúzatnám (villanyszerelővel) a táp kábeleket egy központi vezérlőszekrényből, és a
kapcsolók (lámpa, redőny, stb) és szenzorok (hő- és párataratlom mérő) helyére pedig Cat5e vagy Cat6 -os kábelt húznék, és ezen keresztül adnám az
adott jelet vissza a mikrokontrollernek, hogy pl kapcsold fel a lámpát vagy nyisd ki a 2.szoba fűtési szelepét, stb...

 

Arra gondoltam, hogy megcsinálnám magamnak a vezérlést, de van egy csomó kérdés ami miatt még infót szeretnék gyűjteni, hogy érdemes-e belevágnom...
1., a mikorkontrollertől egy távolabbi helység kapcsolójából nem esik-e túl sokat a jel mire elér a MEGA-ig, ezeket ilyenkór hogyan érdemes csinálni?
24V vagy 48V-al kapcsolni, mert az távolabbra is vihető nagyobb jelszint esés nélkül?


2., DS18B20-al mérem a hőmérsékleteket jelenleg, ha mondjuk a legtávolabbi hőmérő van vagy 30m-re az mennyire fog pontos értéket adni?

 

3., Egy ilyen "nagyobb" rendszerrel mennyire stabil a MEGA, vagy melyik lapkát érdemes használni?

 

4., Villanykapcsolónak mit érdemes használni?
"Csengő" kapcsoló jó választás lehet?
Vagy egy Nextion UNO páros relével. (Erre azért gondoltam, mert a kapcsoló programozható, hogy mit szeretnék kapcsolni vele)

 

5., Lakhatási engedély kiadásánál mennyire veszik figyelembe, hogy a vezérlést nem villanyszerelő csinálta? Szóval mennyire
van erre nekem "jogosultságom" hogy megcsináljam? (Elektroműszerész és OKJ-s programozói vizsgám van)

 

Előre is köszi a segítséget!

 

Spiler

 

Néhány kép a mostani vezérlésemről:

 

 

 

Prof Creative Commons License 2017.01.04 0 0 2664

Hehe... :-) Vicces, de egyébként meg jogos.

Előzmény: halaloszto (2663)
halaloszto Creative Commons License 2017.01.04 0 0 2663

https://forum.arduino.cc/index.php?topic=397240.0

 

itt azt írják, hogy ezek tranyók.

Előzmény: enginer (2662)
enginer Creative Commons License 2017.01.04 0 0 2662

Az fasza! Akkor én is beszoptam 10db-ot.

Előzmény: Sploc (2661)
Sploc Creative Commons License 2017.01.04 0 0 2661

Szia!

Semmit... kipróbáltam 8at a 10ből, de egyik sem működik a "hagyományos példákkal".

Visszakértem az árát az eladótól, és vettem itthon DS18b20+ -ost.

Tényleg mi a különbség a DS18b20+os és a sima DS18b20 között?

Előzmény: enginer (2660)
enginer Creative Commons License 2017.01.04 0 0 2660

Én is belefutottam ebbe a kintről rendelt  DALLAS 1541C4 +233AA szenzorba. Google nem talál róla semmit.

Te találtál valami megoldást?

 

Előzmény: Sploc (2540)
Sploc Creative Commons License 2017.01.01 0 0 2659

Köszi! 

Előzmény: Gogol69 (2653)
Sploc Creative Commons License 2017.01.01 0 0 2658

A véletlen  félremérésekre fel is vagyok készülve, 5elemu tömbökbe olvasok,  legkisebb,  legnagyobb elemek eldobasaval és a maradék átlagolásával.  De ha egy mérőeszköz folyamatosan  - 127c t ad azzal nem tudok mit kezdeni. Érdekes, hogy mikor USB-n volt az arduino akkor jót mért a hőmérő is és meg is találta a címét is,  de mikor külső tápot kapott megállt. Pedig a másik 3 is azon a tápon van.  Lehet hogy az előző leírásom nem volt egyértelmű,  de külön-külön használom a hőmérőket,  mind a 4 másik digitális lábon van.  One-wire ként egyik sem működött. Ki fogom cserélni azt az egy hőmérőt hátha csak annak van valami kínja. 

 

Köszi! 

B. U. É. K. 

Előzmény: titusz99 (2655)
Sploc Creative Commons License 2017.01.01 0 0 2657

Köszi.  Ez jutott nekem is eszembe mikorra feltettem a kérdést... nem is értem miért nem így csináltam meg eddig,  hiszen más változót is így olvasok onnan. Szerencsére csak egy oldalas a kijelzés ez így nem okoz problémát. 

Előzmény: nagyharcos (2656)
nagyharcos Creative Commons License 2017.01.01 0 0 2656

Szia!

 

A Nextion-os problémárba én is belefutottam. A dualstatebutton , vagy sima button és új global változó a megoldás. Nyomáskor megváltozik a dsbutton értéke ( vagy nyomáskor megváltoztatod az új változó érték (mondjuk va_valami.val=1). Nextion tárolja a dsbutton vagy a va_valami értékét addig, amíg nem írod felül. Mikor már nincs szükség rá, visszaíratod a változó értékét. (Mondjuk a programban a lekérdezés közvetlen visszaírod alapra).

 

nextion 0.7.0 vagy 0.9.0 könyvtárral így megy pld:

dualstate button-al:

 

uint32_t uzemmod;  

NexDSButton bt_uzemmod = NexDSButton(0, 1, "bt_uzemmod");

 

void setup(void)
{

 nexInit();

}

void loop(void)
{

bt_uzemmod.getValue(&uzemmod);  //kiolvasod az értéket

iif (uzemmod == 1) { 

 .....

}

bt_uzemmod.setValue(0);  //visszaírod az értéket alapra

}

 

Szépséghiba, hogy a kiolvasáshoz, visszaíráshoz az adott lapon kell lenned a nextion-on. (bár elméletben a global változókkal, ha minden lapon letárolod, akkor mennie kell).

Előzmény: Sploc (2652)
titusz99 Creative Commons License 2017.01.01 0 0 2655

Szia!

 

Mintaként 10 db dallast kötöttem egy nano-ra. Eredeti 3m-es árnyékolatlan kábelével.

A nano-n 8 db onewire buszt hoztam létre. Így 6-ra 1-1, 2-re 2-2 dallas, került.

Kb. 1000-ből 1 esetben olvasott félre.

Én másodpercenként 1* olvasom ki őket, majd indítom a mérést. Amíg mérnek csinálhatok mást.

1 dallas kiolvasása kb 13 ms ideig tart.

Árnyékolást egyik végén, célszerűleg arduino oldalon.

A felhúzó ellenállás csökkentésével némileg csökkenthető a zavar hatása.

Mindenesetre a programban fel kell készülni a zavarokra.

 

Soros portnak van buffere. Annak csökkentésével szoktam több ram-ot adni a programnak.

Alapértelmezetten 64 byte.

 

Nextion-om egyenlőre nincs, de tudomásom szerint:

Ha megyomod a gombot, akkor üzenetet küld arduinonak. Amit feldolgoz arduino.

Esetedben relé meghúz vagy elenged. Ha nem így megy akkor valami logikai bukfenc vagy túlcsordulás áll fenn.

 

B.U.É.K!

Előzmény: Sploc (2652)
Törölt nick Creative Commons License 2016.12.31 0 0 2654

Ez a minden ds18b20 adat lábra 4k7 ellenállás nálam nincs, csak egy az arduino-n.

Az árnyékolás nincs GND-ra kötve, szabad.

Előzmény: Sploc (2652)
Gogol69 Creative Commons License 2016.12.31 0 0 2653

Szia!

,,Tehát a vezetékben van az árnyékoló fólia, annak mindkét végét le kell kötni GND-re, vagy csak az egyiket?"

Csak az egyiket, különben zavarokat okozhat!

B.Ú.É.K.

Előzmény: Sploc (2652)
Sploc Creative Commons License 2016.12.31 0 0 2652

Szia!

Ha itt arra gondolsz, hogy külön van-e megtáplálva, vagy az adatvonalról hajtom-e, akkor igen, 3 vezetékesen használom.

Mivel itthon működött gond nélkül, mivel csak az volt az arduinon, egyéb eszközök nem, így csak arra tudok gondolni, hogy zavar okozza a galibát.

Tudom együgyű kérdés, de az árnyékolást, hogyan kell bekötni? Tehát a vezetékben van az árnyékoló fólia, annak mindkét végét le kell kötni GND-re, vagy csak az egyiket?

 

Egyéb probléma. Serial vonalon nincs buffer? Jelenleg a 4 hőmérő olvasása, illetve a program további futása, ~ 2 másodpercet vesznek igénybe ciklusonként. Nincs benne delay. Nekem ez megfelelő, mivel nem óramű pontossággal kell kapcsolnom sem relét, sem egyéb dolgot. Van egy Nextion Hmi a redszerben, amin van egy relé bekapcsoló gombja is az érintőfelületen. Többször meg kell nyomni, illetve a program futás egy adott pillanatában kell megérinteni, hogy be-vagy ki kapcsoljon. Miért nem tárolja el a változó értékét, vagy van rá mód, hogy többször beolvassam az állapotát egy azon loop-ban?

 

Köszönöm!

 

B.U.É.K!!

 

Előzmény: titusz99 (2650)
Gogol69 Creative Commons License 2016.12.30 0 0 2651

Sziasztok!

Nálam a 4db DS18B20 beolvasása most már szépen megy. // 3 vezetékes bekötéssel (+) & Kimeneten 4,7k.

Tettem bele néhány kimeneti kapcsolást is.

Az LCD-n ezek állapotát szerettem volna megjeleníteni. 

Ha csak 2 állapot lenne az menne.

Hárommal ez valahogy nem megy.

Hol hibázhattam?

 

Program:

// Max6675-tel

//I2C-vel illesztett 20x4 LCD-vel és ARDUINO NANO-val
//4DB DS18B20 HŐM. SZENZOR ÉRTÉKÉT ARDUNO NANO-VAL KIJELEZNI 20X4 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 <max6675.h>
#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

//Itt határozom meg a Max6675 - Arduino csatoló be & kimeneteit
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
// constants won't change. They're used here to
// set pin numbers:

 


// Bemenet elnevezése
int Start_gomb = 12; // (Start merker)

// Kimenet elnevezése
int Start_merker = 13; // (Start merker)
int Kazan_sziv = 9; // (Kazán szivattyu)
int fustPin = 10; // (Füst meleg) Pin13-re relé kotve
int kerekites = 0;
int kerekitesF = 0;

int Tuzeg_State = kerekitesF > 26;
//Változók
int Nyomogomb_State = 0; // variable for reading the pushbutton status
int Fusthovaltozobe_State = 0; // variable for reading the pushbutton status
int FusthokiState = 0; // variable for reading the pushbutton status
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.begin(20, 4);
sensors.begin();
sensors.setResolution(s1, 9);
// initialize the pushbutton pin as an input:
pinMode(Start_gomb, INPUT);
pinMode(fustPin, OUTPUT);

}
void loop(){


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(2,1); //0. sor 3. karakter a kezdő cím
kerekites = sensors.getTempCByIndex(0)/1;
lcd.print(kerekites); //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(12,1); //1. sor 13. karakter a kezdő cím
kerekites = sensors.getTempCByIndex(1)/1; //Ez elvileg huleség. Itt azonban a tizedes vesszo utani ertek eltunik
lcd.print(kerekites); // 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(2,2); //2. sor 3. karakter a kezdő cím
kerekites = sensors.getTempCByIndex(2)/1; //Ez elvileg huleség. Itt azonban a tizedes vesszo utani ertek eltunik
lcd.print(kerekites); // 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("4");
lcd.print("/");
lcd.setCursor(12,2); //2. sor 13. karakter a kezdő cím
kerekites = sensors.getTempCByIndex(3)/1;//Ez elvileg huleség. Itt azonban a tizedes vesszo utani ertek eltunik
lcd.print(kerekites); // Itt irja be a 4-es szenzor adatát
lcd.print("C ");
lcd.print(char(223));



// LCD negyedik sor /1 **********************
lcd.setCursor(0,3); //3. sor 10. karakter a kezdő cím
lcd.print("Fust1");
lcd.setCursor(6,3);
kerekitesF = thermocouple.readCelsius()/1;//Ez elvileg huleség. Itt azonban a tizedes vesszo utani ertek eltunik

lcd.print(kerekitesF); // Itt irja be a 4-es szenzor adatát
lcd.print("C ");

 

// Start gomb megnyomását tárolom!
// Ventillátor indul

Nyomogomb_State=digitalRead(Start_gomb);

if ( Start_merker, LOW && FusthokiState, HIGH )
{digitalWrite(fustPin, LOW);
//lcd.setCursor(10,3); //3. sor 10. karakter a kezdő cím
//lcd.print("Keszenlet"); }

// Itt elmentem, hogy start parancs van.
if (Nyomogomb_State == HIGH) {
// turn LED on:
digitalWrite(Start_merker, HIGH);
digitalWrite(fustPin, HIGH);
}

//Kijelzem hogy start parancs van!

if (Start_merker, HIGH) {
lcd.setCursor(10,3); //3. sor 10. karakter a kezdő cím
lcd.print("Begyujtas");
}

/* Ha már meleg a füst = ég a tűz, akkor törlöm a start parancsot
* valamint 2 változóban is tárolom az állapotát.
*/
if (kerekitesF > 26) { //Ha ,,kerekitesF nagyobb mint X ( 26 C) akkor kapcsolja a következőket.
digitalWrite (Fusthovaltozobe_State, HIGH);
digitalWrite (FusthokiState, LOW);
digitalWrite(Start_merker, LOW);
}

/* Ha már nem meleg a füst = kialudt a tűz, akkor a két változóban is tárolom az állapotát.
*/
if (kerekitesF < 24) {
digitalWrite (Fusthovaltozobe_State, LOW);
digitalWrite (FusthokiState, HIGH);}

/* Elvileg itt szeretném a készenléti állapotot kijeleztetni.
*/
if ( Start_merker, LOW && FusthokiState, LOW) {
digitalWrite(fustPin, LOW);
lcd.setCursor(10,3); //3. sor 10. karakter a kezdő cím
lcd.print("Keszenlet"); }
}
else if (Fusthovaltozobe_State, HIGH){
lcd.setCursor(10,3); //3. sor 10. karakter a kezdő cím
lcd.print("Futes ");


}
}
/* Az LCD- kijelzett állpotok még nem okék.
* Lehetséges kijelzett értékek. 1. Készenlét
* 2. Begyujtás
* 3. Fűtés
* Ebből csak 2 állapotot tudok megjeleníteni.
*/

titusz99 Creative Commons License 2016.12.30 0 0 2650

2 vagy 3 vezetékkel kötötted?

Előzmény: Sploc (2649)
Sploc Creative Commons License 2016.12.30 0 0 2649

Sziasztok!

Én is szenvedek a DS18b20-al, számszerint 4darabot használok hőmérésre. Ami érdekes, hogy onewire-ként címezve akartam használni. Próbapadon minden simán ment, azonban mikor beépítettem a végleges helyére, egyik sem működött, sőt a címüket sem tudtam lekérdezni. Mind -127C-t mutatott.

Próba-próba, mérés-mérés, aztán arra jutottam, hogy a tápokat párhuzamosítottam mindegyiket egy-egy külön felhúzóellenállással láttam el. Így most működik a 4-ből 3, de van hogy a 4. is "elindul," és jót mér (nem -127-et). Illetve van, hogy még egy másik is "félrekacsingat" :-) 

Vicces, hogy pont azért cseréltem a K-hőelemeket le, mert pontatlanok voltak...

A kettő ami eddig jól mért, az stabil. Nem értem... cserélgettem a bemeneteket, programmal játszottam, de nem jó. 4-eres árnyékolt biztonságtechnikai kábelt használok a bekötésre, 4-5 méter hosszban. Vezetékek mindenhol forrasztva.

Az árnyékolást lekötöttem testre, nem segített, így visszavettem.

A korábbiakban már ismertetett rendszerbe tettem, ATX táp, Nema Stepper motor, illetve több hálózati vezeték, és 400V-os kábel is megy ugyanabban a kábelcsatornában.

 

Van valakinek egy jó ötlete, hogy merre keressem a bajt?

 

Prof Creative Commons License 2016.12.28 0 0 2648

Szia!

log: napló. Változókat, a függvények futásának kezdetét/végét írod egy fájlba, amit x ciklusonként (vagy időre stb.) elkezdesz elölről (a legrégebbi adatot törlöd, illetve felülírod). A naplót utólag meg tudod nézni (txt, sd kártyán például). Hátránya, hogy maga a naplózás is beleszól a program futásába (SD kártya esetén nem is kicsit).

watchdog: olyan szoftver és/vagy külső áramkör, amely a kontroller (vagy a fő áramkör) megakadásait iktatja ki oly módon, hogy ha a fő áramkörtől (mikrokontrollertől) nem kap jelet a beállított időintervallumon (mikroszekundumtól percekig tartó időszakon belül), akkor automatikusan végrehajt egy borzasztó egyszerű feladatot (ez rendszerint az, hogy aktív földre húzza a mikrokontroller RESET lábát).
[A logban ez úgy jelenik meg, hogy a sketch/program void.Setup() szakasza ír bele). Bár ez önmagában még nem jelenti azt, hogy a Watchdog küldte a resetet, csak annyi, hogy újraindult, de ez már komplexebb kérdés.]

Az, hogy "USB-ről megy"... Semmit nem jelent. Az, hogy az USB csatlakozó másik oldalán milyen minőségű táp van, illetve a mikrokontrollernek még mennyi mindent kell hajtania, mi terhelheti, honnan milyen zavarokat szedhet össze, ami akár az érzékelők, akár a mikrokontroller működését érdemben befolyásolja. A forrasztás, ha jó, akkor jó. :-D
PLC kicsit más világ, ott egy szinttel szoftverben és hardverben is feljebb vagy.

Előzmény: Gogol69 (2647)
Gogol69 Creative Commons License 2016.12.28 0 0 2647

Szia!

Köszönöm a most a 4db DS18B20 és 1db Max6675 beolvasása jó. (nano-n)

A további fejlesztés leáll.

Megvárom az Uno.

Amit írtál még nem értem, csak sejtem. :-(

 (,,Az ad-hoc fagyásokat folyamatos logolással és watchdoggal lehet elcsípni. ")

 

,,szoftveres eredetű-e a probléma."

Itt még van tanulni valóm bőven!

 

,,hardveresnél a táp" Usb-ről megy.

,,kontakt." Erre gondoltam már forrasztva vannak az érzékelők.

PLC-ben ezerszer könnyebb minden!

Előzmény: Prof (2646)
Prof Creative Commons License 2016.12.28 0 0 2646

Hali,

No még egyszer.

Az ad-hoc fagyásokat folyamatos logolással és watchdoggal lehet elcsípni. A watchdog reset előtti időszak adatainak összevetésével jó esetben ki lehet bogozni, hogy szoftveres vagy hardveres eredetű-e a probléma. Szoftveresnél tipikus a túlcsordulás (időzítés, változók), hardveresnél a táp, kontakt.

Üdv.

Prof

Előzmény: Gogol69 (2645)
Gogol69 Creative Commons License 2016.12.27 0 0 2645

Megvolt a teszt!

Megkerestem (oneWireSearch) segítségével 5 db sima DS18B20-t.

Felírtam a címét. 

A kábelesre is rákerestem (4 vízálló kialakítású felforrasztva.)

Visszatettem a tegnapi programot 3 pin helyett 8. pinnel.

Megy!

Átforrasztom a 3.-ra.

Ismét megy.

Nem tudom mi lehetett a baj.

5let van?

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

Szia Prof!

Ebben az állapotban is működött!

2 db nano-val is!

A DS18B20-t felforrasztottam vezetékre.

Így is működött 1 éjszakát próbaként tápon hagytam.

Napközben több alkalommal fejlesztettem a dolgokat.

Időnként bizonytalankodott -127,00C-t mutatott ( A könyvtár szerint szerint, ha nem találja ezt írja ki.)

Most stabilan lefagyott!

A Max6675-t még megy.

 

Előzmény: Gogol69 (2628)
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)

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