Keresés

Részletes keresés

spiler0078 Creative Commons License 2016.11.27 0 0 2523

Hali!

 

Kiírattam a nextion-tól kapott értéket a soros portra. "-1" -et kapok értéknek

   ...

   int  idox=0;

   ...

 

   idox = myNextion.getComponentValue("page8.nbeall");

   Serial.println(idox);

 

Most vagy a nextion library-m a hibás, vagy rosszul deklarálok valamit, vagy az arduino verzóm nem illeszkedik valamihez???? 1.5.6-r2.

 

Viszont ezzel simán kiírja az értéket a nextion...

  myNextion.setComponentText("t28",String (paratartalom)); 

 

Most hogy ezt leírtam... Nem lehet hogy az arduino TX portommal van valami?

 

 

Köszi előre is Sploc.

(persze mindenki másnak is aki hozzászólt)

 

Spiler

Előzmény: Sploc (2517)
Vargham Creative Commons License 2016.11.27 0 0 2522

Követelmények:

-9 Volt bemenet, 5 Volt kimenet Atmega MCU-nak.

-Az MCU kapcsolja ki a tápot x inaktív idő után.

-Kikapcsolt állapotban ne legyen áramfelvétel.

-A bekapcsoló gomb újbóli megnyomását detektálja az MCU. (Egy gombos user interface.)

 

Így oldottam meg:

https://circuits.io/circuits/3352039-soft-power-3

 

Megjegyzések:

-A 7805 helyett DC-DC modul van.

-Az ON nyomógombbal lehet bekapcsolni.

-Az MCU az OFF nyomógomb helyett húzza az N-FET gate-et földre kikapcsoláskor.

-Az MCU az MCU button nevű feszültségmérő helyén érzékeli az ON gomb ismételt lenyomását.

 

Most lehet ütni a tervet. :-)

Ha beválik, akkor pedig lehet vinni, és használni.

Prof Creative Commons License 2016.11.26 0 0 2521

Hali,

A mai nap is ékesen bizonyította, mennyivel egyszerűbb a fejlesztés néhány fázisa oszcilloszkóppal. Időzítés mikroszekundum alatti tartományban megoldva 5 perc alatt.

Kafa ez a tudomány.

 

Prof Creative Commons License 2016.11.26 0 1 2520

USB-ről nem illik relét hajtani, pláne úgy, hogy az Arduino is arról megy.
Mérj rá a lábra, amit a relé optocsatolóját hajtja, hogy van-e rajta változás, amikor a gombot nyomogatod. Ha van, akkor vagy az optocsatoló, vagy a relé rossz és/vagy nem jó a táp neki. Ha a relé kapcsolásakor esik a tápfeszültség, akkor a táp gyenge (ez elég valószerű, azok a relé breakout boardok, amik nálam jártak, rendre bőven 50 mA feletti áramot szedtek behúzott állapotban.

Előzmény: spiler0078 (2514)
Sploc Creative Commons License 2016.11.26 0 0 2519

Nem vitte fel a képet...

Előzmény: Sploc (2518)
Sploc Creative Commons License 2016.11.26 0 1 2518

Hogy változzon bármi is a Nextion-on ahhoz meg kell mondani mit csináljon. Itt vannak a használt parancsok: https://www.itead.cc/wiki/Nextion_Instruction_Set

Ha hosszútávra tervezel, mindenképpen külön táp kell neki, mert nagyon érzékeny rá. Eleinte én is boardról fejlesztgettem jobb híján, de nem ajánlatos.

A reléket meg mindenképpen optocsatolva külön tápra, tapasztalat, rengeteget szenvedtem...

Előzmény: spiler0078 (2515)
Sploc Creative Commons License 2016.11.26 0 1 2517

Szia!

 

Egy relé kapcsolásának egyszerűnek kellene lennie. Ha minden jól van deklarálva, és ha jó lib-et használsz, akkor mennie kell.

 

String message = myNextion.listen(); //check for message
       
            if (message == "65 0 d 1 ffff ffff ffff"){
              digitalWrite(rele5, LOW);                   // Relé5 (Elszívó) On/Off
            }

 
           if (message == "65 0 c 1 ffff ffff ffff"){
 digitalWrite(rele5, HIGH);
           }

 

Emlkszem, hogy a Serial2-höz valamit át kellett írni a library-ben, és én is sokat szenvedtem vele.

Az általam használt programban, én nem string ként használom a változót, amit állítani akarok, mivel felvetődött bennem, hogy ha valami oknál fogva nem menne át az adat, a kijelzőn már növelt értéket látnék, de a programban hibás adattal számolna. Ezért a Nextion-on egy helyi változót deklaráltam va0-néven, ami a + gomb érintésére hozzáad egyet, - ra kivon belőle. Aztán csak kiíratom a visszaérkezett adatot, tehát biztos, hogy az van a kijelzőn amivel számolok.

 

Mondjuk elméletileg működnie kellene text-el is.

 

 int value = myNextion.getComponentValue("va0");
  cel = value * 50;
  cel_old=cel;

 

 

 

Én azzal kezdeném, hogy teleraknám a programot Serial.print-el és a message-t is kiíratnám. Ha nem jön semmi gombnyomásra akkor a kommunikációban van a hiba. Ha megnyomod a gombot villan az Rx led?

Előzmény: spiler0078 (2515)
Tomiali Creative Commons License 2016.11.26 0 0 2516

Köszönöm a segítséget ki próbálom.

Előzmény: Prof (2507)
spiler0078 Creative Commons License 2016.11.25 0 0 2515

Ja, és a szöveget sem írja át a gombnyomásra a nextion kijelzőjén.

 

Előzmény: spiler0078 (2514)
spiler0078 Creative Commons License 2016.11.25 0 0 2514

Hali!

 

A progi ezek szerint jónak néz ki?

Nem kapcsol a relé.  Olyan mint ha a gombnyomást nem érzékelné, vagy lehet hogy gyenge a tápom?

 

6 db ds18b20, no meg egy esp8266 müxik egy 600mA-es tápról,

és a MEGA 2560 pedig az USB-ről hajtja magát és a relét.

 

spiler

Előzmény: Vargham (2512)
Prof Creative Commons License 2016.11.25 0 0 2513

Vargham hozzászólásához csatlakoznék: Mi a hiba?

A 16-17 pin a Serial2, nem a Serial3. Ez alapjában sokat lendíthet a dolgon.

 

A többi kb. jónak tűnik így kb. 2 perces kutakodás után.

Előzmény: spiler0078 (2509)
Vargham Creative Commons License 2016.11.25 0 0 2512

> nem akar működni...

Mi a hiba?

Előzmény: spiler0078 (2509)
spiler0078 Creative Commons License 2016.11.25 0 0 2511

A setup deklarációban mág a másik soros port maradt benne...

A helyes -elvileg- Serial2.begin(9600);

Előzmény: spiler0078 (2509)
spiler0078 Creative Commons License 2016.11.25 0 0 2510

Az előző mintához a kép lemaradt...

spiler0078 Creative Commons License 2016.11.25 0 0 2509

Sziasztok!

 

Szeretnék egy kis segítséget kérni.

Átnéztem már egy csomó példát, és már 2 napja szívok vele, hogy megoldjam, de nem akar működni...

 

Szóval van egy 2.4" os Nextion HMI-m, amit egy arduino MEGA2560-al kötöttem össze a 16,17 es porton.

Puffer és kazán hőmérsékleteket mértem vele eddig, de most szeretnék relét is vezérelni vele.

Erre a Nextion HMI érintőképernyőjét használnám, egyelőre csak "+" feliratos gombra kapcsolja be a relét, "-"feliratosra pedig ki...

 

Bemásolok egy részét a proginak, megköszönném, ha valaki megmondaná, hogy mit rontok el.

 

#include <SoftwareSerial.h>
#include <Nextion.h>


SoftwareSerial nextion(16, 17);
Nextion myNextion(nextion, 9600); 


int ertek=50;

 

void setup(){
    setTime(now()); 
    dht.setup(22); // data pin 22

    pinMode(relPin0, OUTPUT); //49
    pinMode(relPin1, OUTPUT); //51
    digitalWrite(relPin0, HIGH);
    digitalWrite(relPin1, HIGH);
    sensors.begin();

 

    Serial3.begin(9600);
    myNextion.init();
}

 

void loop(){
sensors.requestTemperatures();

if((second()==0) or (second()==10) or (second()==20) or (second()==30) or (second()==40) or (second()==50)) {
   krp();
   //relay();
   paratart(); //páratartalom blokk
}
// delay(4000);

 

String message = myNextion.listen(); //check for message

if (message == "65 8 5 1 ffff ffff ffff") {
   myNextion.setComponentText("textbeall", String(ertek));
   digitalWrite(relPin0, HIGH);
   digitalWrite(relPin1, HIGH);
}

if (message == "65 8 4 1 ffff ffff ffff") {
   myNextion.setComponentText("textbeall", String(ertek));
   digitalWrite(relPin0, LOW);
   digitalWrite(relPin1, LOW);
}

}

 

spiler0078 Creative Commons License 2016.11.25 0 0 2508

Hali!

 

Azért szerettem volna nagyobb tápot, mert azzal akartam meghajtani a 4-es relé panelt és egy esp8266-ot is a MEGA2560 mellett. De valószínű, hogy a MEGA és a wifi megkapja a az általad linkelt tápot vagy annak egy erősebb 1,5-2A -es verzióját, a relének pedig veszek egy 5V 6A 30W os tápot http://www.ebay.com/itm/371514993202

 

A relék meghajtásához elvileg jónak kell lennie...  

 

Köszi mindenkinek a hozzászólást

 

Spiler

Előzmény: BuNnY (2488)
Prof Creative Commons License 2016.11.25 0 0 2507

Végtelenül leegyszerűsítve, igen. Gyakorlatilag egy nagyon széles sávú nagyteljesítményű erősítőfokozat kell a végére.

Előzmény: Tomiali (2506)
Tomiali Creative Commons License 2016.11.25 0 0 2506

Teszek utána egy fetet? Bocsi a sok kérdésért nem vagyok nagy műszerész. :)

 

Előzmény: Prof (2505)
Prof Creative Commons License 2016.11.25 0 0 2505

Jó lehet, de ezzel nem fogsz tudni 10 A-t meghajtani, a végére ugyanúgy kell valamilyen erősítőfokozat.

 

Frekvenciamérésre:

http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-frequency-counter-library/

 

Előzmény: Tomiali (2504)
Tomiali Creative Commons License 2016.11.25 0 0 2504

Előre is elnézést az OFF miatt a fórumozóktól.

 

Találtam egy ilyet ami elméletileg jó nekem.

http://www.engineeringshock.com/-555-timer-based-square-wave-signal-generator-module.html

Azt nem tudom a lentebbi videóban hogy mérte a frekit.

Előzmény: Prof (2503)
Prof Creative Commons License 2016.11.25 0 0 2503

Az egyik fele lehet ez:

http://www.zen22142.zen.co.uk/Circuits/Testgear/funcgen.htm

Az erősítő fokozatot ki lehet szedni a végéről, a helyett egy erősebb MOS-FET, ami 200 kHz-ig megy (ez nem biztos, hogy egyszerű feladat lesz), a frekvencia kijelzésére meg egy valamilyen egyszerű frekvenciaszámoló kijelzős breakout.

Előzmény: Tomiali (2502)
Tomiali Creative Commons License 2016.11.25 0 0 2502

Hát minél nagyobb kellene 20Hz-legalább 200KHz

Előzmény: Prof (2501)
Prof Creative Commons License 2016.11.25 0 0 2501

Frekvenciatartomány?

Előzmény: Tomiali (2500)
Tomiali Creative Commons License 2016.11.25 0 0 2500

Ok.

12v Max 10A egyenáram hát nem kell teljesen 0v A jel lehet négyszög.

Arduinoval feten keresztül már hajtottam 12 voltal illetve pwm-mel de mint kiderült a pwm nem változtatja a frekit.

Előzmény: Prof (2499)
Prof Creative Commons License 2016.11.25 0 0 2499

Ok, pontosítsunk:

1. milyen áram?

2. milyen feszültség?

3. egyen vagy váltó? (peak-to-peak 0-tól 12-ig vagy -12-től +12-ig?)

4. milyen jelforma (szinusz/négyszög/fűrészfog)?

Előzmény: Tomiali (2498)
Tomiali Creative Commons License 2016.11.25 0 0 2498

Egy víz bontóra kellene egy olyan kügyü aminek tudnám állítani a frekvenciáját. De úgy, hogy lássam is az adott frekvenciát.

Prof Creative Commons License 2016.11.25 0 0 2497

Itt az Arduino irreleváns, csak mint egy oszcilloszkóp működik (ha jól sejtem).
Az NE555 egy timer, a filmben a potméterrel csak az időzítést állítja az ember.Mit szeretnél csinálni?

 

Előzmény: Tomiali (2496)
Tomiali Creative Commons License 2016.11.25 0 0 2496

Szia! Köszi. Ha minden igaz nekem ez kell vagy lehet tévedek?

Előzmény: Prof (2495)
Prof Creative Commons License 2016.11.24 0 0 2495

Szia!

Attól függ... Ez tisztán időzítés kérdése. Ha nem akarsz mellette semmi mást csinálni, akkor megoldható, hogy az egyik poti a kitöltési arány, a másik a frekvencia. Ha nem időérzékeny a rendszer (vagyis jó nagy tűrést elbír), akkor delayMicroseconds() utasításokkal meg lehet oldani. Két dolgot ne várj tőle: teljesen pöpec jelformát és finom lépésközt. 1 Hz ugye delay(500); 100 Hz delay(5); 1 kHz pedig delayMicroseconds(500). A gyakorlatban azonban a kristály és a lapka precizitása sokat ronthat a dolgon. Ez pl. delayMicroseconds(5) beállítás screenshotja, ahol a le és a felmenő ág között egy osztásnak kellene lennie (nem pedig 2,5-nek), ráadásul néha-néha (gyakorlatilag folyamatosan) vannak kb. 18 mikroszekundumos ugrások (ide van állítva a trigger). És ez "csak" 40 kHz környéke.

Az életed ne múljon rajta... :-)

Előzmény: Tomiali (2493)
Prof Creative Commons License 2016.11.24 0 0 2494

Szia,

Maker: http://makermedia.com/

De vannak témába vágó könyvek elég szép számmal, talán még az Arduino.cc-n is. Jobbára  (oké, inkább szinte kizárólag) angol nyelven. Van legós könyv is (lego + Arduino).

 

Előzmény: djz (2473)

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