Keresés

Részletes keresés

prozZzac Creative Commons License 2016.04.17 0 0 1812

Bocsi természetesen kimaradt egy rész, de nem tudom szerkeszteni...

 

void loop()

{

DHT22 = DHT.read22(DHT22);

lcd.setCursor(0,0);

lcd.print (   ̎Temperature = ̎ );

lcd.print(DHT22.temperature);

lcd.clear;

delay(6000);

 

 

if(DHT22.temperature < 28)

{

digitalWrite(HEATERRELAY, HIGH);

}

else

{

digitalWrite(HEATERRELAY, LOW);

}

 

DHT22 = DHT.read22(DHT22);

lcd.setCursor(0,1);

lcd.print(  ̎ Humidity = ̎ );

lcd.print(DHT22.humidity);

lcd.clear;

delay(6000);

 

if(DHT22.humidity < 80)

{

digitalWrite(FOGGERRELAY, HIGH);

}

else

{

digitalWrite(FOGGERRELAY, LOW);

}

 

 

END

Magyar Arduino Labor Creative Commons License 2016.04.17 0 1 1811

Sziasztok!

Elindítottam egy youtube csatornát annak érdekében, hogy minél többet megismerjék a benne rejlő lehetőségeket, és minél többet kedvet kapjanak egy kis programozáshoz, akár csak egy hobbiprojekt erejéig. Remélem hasznosak lesznek számotokra vagy ismerőseitek számára!

 

A videóimat itt találjátok:

 

https://www.youtube.com/channel/UCmPAcId7ZigwLFfpxPwYfiA

 

Facebook:


https://www.facebook.com/magyar.arduino.labor/

 

prozZzac Creative Commons License 2016.04.17 0 0 1810

Köszi.

 

És egyáltalán nem is jó így a kód, ha a kapcsosat kiveszem, vagy csak felesleges lépések vannak ?

PID-be nem kívánok belekezdeni, mert ezt is vért izzadva hoztam össze, nulla előképzettség nélkül, úgy érzem az most magas lenne, ezt is főként angol fórumokból bogarásztam :).

 

Az eredeti így nézett volna ki, csak azt hittem ha nincs benne a második if-else függvény akkor folyamatosan fűtene?!?!?!?!?!?!

 

void loop()

{

DHT22 = DHT.read22(DHT22);

lcd.setCursor(0,0);

lcd.print (   ̎Temperature = ̎ );

lcd.print(DHT22.temperature);

lcd.clear;

 

if(DHT22.temperature < 28)

{

digitalWrite(HEATERRELAY, HIGH);

}

else

{

digitalWrite(HEATERRELAY, LOW);

}

 

if(DHT22.humidity < 80)

{

digitalWrite(FOGGERRELAY, HIGH);

}

else

{

digitalWrite(FOGGERRELAY, LOW);

}

 

END

digium Creative Commons License 2016.04.17 0 0 1809

Hibás a kód, a loop függvényed első delay(6000) utasítása után véget ér, tekintve a záró kapcsos-zárójelre. A programod további része így soha sem fut le. Helyezd át az utolsó delay(6000) utánra.

 

Véleményem szerint nem jó a kapcsolási sémád, mert folyamatosan fűrészfogas lesz a hőmérséklet és a páratartalom is. Hagyod mindig lehűlni a terráriumot 28 fokig, majd felfűtöd 31-ig és kezded előlről. Kitalálták már a vezérléstechnikában, hogy miként lehet ezt elkerülni, PID szabályzásnak hívják. Beállítasz egy célhőmérsékletet/párát és amennyire a fűtő/párásító eszközeid engedik annyira fogják ezt a beállított szintet tartani. Mindezt akkor is pontosan próbálja tartani, ha rásüt a nap, vagy teregetsz a szobában.

 

Szerintem találsz bőven arduinora is példaprogramot.

 

Előzmény: prozZzac (1808)
prozZzac Creative Commons License 2016.04.17 0 0 1808

Heellooo :)!

 

Nagyon köszönöm az eddigi válaszokat és segítséget !

 

Összeállítottam egy kódot, legyen szíves egy hozzáértő ellenőrizni nekem!

 

Lényeg a következő ...

 

28foknál kapcsoljon BE a melegítő, 31foknál KI...

80%-os páratartalomnál a párásító BE, 95%-nál KI... :)!

 

A DHT22 alapból Celsius és % mértékegységű, vagy kell konvertálnom fahrenheit-ből celsiusba?

Ha igen, akkor a kód mely részében kell megadnom a konverzió kódját? setupban vagy loopban?

 

Jöjjön a KÓD :)

 

#include <LiquidCrystal.h>
#include <dht22.h>
LiquidCrystal lcd (12,11,5,4,3,2);
dht  DHT22
#define DHT22  7;
#define HEATERRELAY 8;
#define FOGGERRELAY 9;

void setup()
{
lcd.begin(16,2);
pinMode(HEATERRELAY, OUTPUT);
digitalWrite(HEATERRELAY, LOW);
pinMode(FOGGERRELAY, OUTPUT);
digitalWrite(FOGGERRELAY, LOW);
delay (5000);
}
void loop()
{
DHT22 = DHT.read22(DHT22);
lcd.setCursor(0,0);
lcd.print (   ̎Temperature = ̎ );
lcd.print(DHT22.temperature);
lcd.clear;
delay(6000);
}

if(DHT22.temperature < 28)
{
digitalWrite(HEATERRELAY, HIGH);
}
else
{
digitalWrite(HEATERRELAY, LOW);
}

if(DHT22.temperature > 31)
{
digitalWrite(HEATERRELAY, LOW);
}
else
{
digitalWrite(HEATERRELAY, HIGH);
}


DHT22 = DHT.read22(DHT22);
lcd.setCursor(0,1);
lcd.print(  ̎ Humidity = ̎ );
lcd.print(DHT22.humidity);
lcd.clear;
delay(6000);

if(DHT22.humidity < 80)
{
digitalWrite(FOGGERRELAY, HIGH);
}
else
{
digitalWrite(FOGGERRELAY, LOW);
}

if(DHT22.humidity > 95)
{
digitalWrite(FOGGERRELAY, LOW);
}
else
{
digitalWrite(FOGGERRELAY, LOW);

delay(6000);



A fő kérdés a következő lenne... kell-e a második  if-else függvény a hőmérsékletnél és a páratartalomnál?
Tehát ami kikapcsolja a relét, ha eléri a kívánt tartományt!?!?!?!

 

Köszönöm szépen a válaszokat előre is :).

 

Üdv : proZac

Lacika71 Creative Commons License 2016.04.12 0 0 1807

Nekem is eredeti kínai klónom van a nano-ból.

Rátöltöttem a grbl nevű cnc programot,sok játék és próbálkozás után,mert azért tanulni vettem..

Nekem azóta is tökélesen működik.

Pedig sokszor hónapokig hozzá sem nyúltam.

Szerintem ott valami nem jó.

Gyárilag is bele van töltve a led villogtató program és az is egyből ment.

Lehet másik után kéne nézni,nincs 1000Ft egy ilyen.

És sajnos van amelyik nem működik,nekem szerencsém volt.

Előzmény: MuchACHO79 (1806)
MuchACHO79 Creative Commons License 2016.04.12 0 0 1806

Üdv!

 

Rendeltem régebben egy Nanot, csak gondoltam PIC után kipróbálom mit tud, de nem is foglalkoztam vele. Most szereztem egy UNO-t össze is dobtam vele a kerti 16 zónás öntözőrendszert szivattyúvezérléssel és talajnedvesség érzékeléssel, gondoltam játszok a NANOval is.

Gond nélkül rá is kötöttem az LCD-t és megcsináltam a HELLO WORLD programot, fut is egészen addig amíg le nem húzom USBről. A következő alkalommal mikor áramot adok neki már nincs benne a program, elfelejt mindent. Közben rájöttem, hogy nem is eredeti arduino hanem DCCDUINO. Olvasgattam mindenféle bootloader égetésről, de szerintem nem ez az enyémmel a gond. Van valakinek ötlete? Vagy ez a klón ennyit tud? Köszi.

Sploc Creative Commons License 2016.04.10 0 0 1805

Sziasztok,

 

Egy kis problémába ütköztem. Szeretnék mérni két db hőmérsékletet, és egy darab nyomásértéket. A Hőm. Max6675K hőelemekkel, a nyomást pedig sima analóg bemeneten 0-5V között. Majd mindezt kitenném egy Nextion LCD-re I2C-n .

A program működik, soros monitoron minden szépen látszik is, de a kijelzőre nem jut ki a mért érték, vagy ha igen, akkor is csak egyszer. A csatolt képen továbbá az is látszik, hogy ha a sisak értékre ugyanazt méri mint az előző, akkor nem küld újabbat.

Tudnátok ebben segíteni, hogy az LCD-re miért nem jut ki adat? ( az 50,22 érték azt jelenti, hogy nem kapott adatot írhattam volna error-t is )

 

A kód:

 

#include <max6675.h>
float sisak;
float sisakold;
float sisaknew;
float cefre;           //Hőmérséklet változók

int pressureIn = A0;
int sensorValue = 0;
float barValue = 0;
int Pressure = 0;      //Nyomásméréshez szükséges változók


int T0_gnd = 45;
int T0_vcc = 47;
int T0_so = 53;
int T0_cs = 51;
int T0_sck = 49;        //Max6675 K-hőelemhez szükséges lábkiosztás

int T1_gnd = 33;
int T1_vcc = 35;
int T1_so = 41;
int T1_cs = 39;
int T1_sck = 37;       //Max6675 K-hőelemhez szükséges lábkiosztás




MAX6675 thermocouple(T0_sck, T0_cs, T0_so);
MAX6675 thermocouple1(T1_sck, T1_cs, T1_so);    //Max6675 K-hőelem könyvtárához kell


void setup() {
  Serial.begin(9600);         // Soros port nyitás
  pinMode(T0_vcc, OUTPUT);
  pinMode(T0_gnd, OUTPUT);
  pinMode(T1_vcc, OUTPUT);
  pinMode(T1_gnd, OUTPUT);
  digitalWrite(T0_vcc, HIGH);
  digitalWrite(T0_gnd, LOW);
digitalWrite(T1_vcc, HIGH);
digitalWrite(T1_gnd, LOW);                // Kimenetek beállítása, hőelemek táp alá
 
}

void loop() {


  sisaknew = (thermocouple.readCelsius());  // Hőmérséklet érték beolvasása
 
  (Serial.available()>1);        // bevallom nem tudom mi célt szolgál egy másik működő mérésemben benne volt

if (sisaknew==sisakold)
{;}

else
{ sisakold=sisaknew;            // szintén nem tiszta a dolog, hogy miért kell az if, else kombó de a másik mérésem csak így működött.
sisak=sisaknew;

 
  Serial.print("sisak.txt=");  // a nextion sisak.txt=**** néven várja a kiírandó adatot
  Serial.write(0x22);
  Serial.print(sisak);
  Serial.write(0x22);
  Serial.write(0xff);
  Serial.write(0xff);
  Serial.write(0xff);           // szintén a várt formátum miatt szükséges
}
 
 
  cefre = (thermocouple1.readCelsius());   // mivel az első hőmérséklet sem tökéletes, ezért nem csináltam tovább, de a soros monitoron így is jön
  sensorValue = analogRead(pressureIn);
  Pressure = map(sensorValue, 0, 1023, -28, 272);
  barValue = Pressure * 0.006895;

 
  Serial.print("cefre.txt=");
  Serial.print(cefre);
  Serial.print("press.txt=");
  Serial.println(barValue);
 
   
  delay(1000);

}

 

 

x20fan Creative Commons License 2016.04.10 0 0 1804

Így van, valószínűleg az hiányzott a gondolatmenetből, hogy más a program írás-fordítás-letöltés, és más a futás, amikor az arduino processzora futtatja a kódot. Akkor kell a libeket betöltenie a fordítónak a pc-n, amikor fordít, a beírt sorokból bináris kódot generál. Aztán áttöltjük ezt a kódot az arduinora, és onnantól nem kell már pc a futtatáshoz.

Előzmény: teglascs (1803)
teglascs Creative Commons License 2016.04.09 0 0 1803

Szia, 

miután feltöltötted a programot az Arduino eszközre, az "benne marad", így ezután már elég csak tápfeszültséget adni neki, automatikusan elkezdi végrehajtani az utasítás sorozatot. (Nem kell hozzá számítógép.)

Előzmény: prozZzac (1801)
Vargham Creative Commons License 2016.04.09 0 0 1802

> Hogyan lehet megoldani egy project állandó működését egész nap, úgy hogy nem kapcsolok be számítógépet ?

Ez egyszerű: Nem kapcsolsz be számítógépet.

 

> Arra gondolok, pl ha van szenzorom, akkor #include -nál a library-t gépről tölti be usb-n keresztül, nem ?

Nem. Ajánlott irodalom: C és C++ fordító működése, lib-ek importálása.

 

> Lényeg h mobilizálni szeretném , hogy ne kelljen állandó pc kapcsolat?!?!?!

Nem kell.

 

> Erre való az sd-kártyás megoldás ?

Nem. Az SD kártya az plusz háttértér. Ajánlott irodalom: Számítógépek elvi felépítése, majd utána mikrokontrollerek felépítése, működése.

A mikrokontroller ugyanis egy KOMPLETT számítógép. Van benne processzor, háttértár, munkamemória, stb.

 

> Mit jelent a bootloader égetése ?

Szerintem erre térjünk vissza később. :-)

 

> Teljes mértékben kezdő vagyok,

Nem is olyan rég én is az voltam. ;-) Ha sokat olvasol, és sok mindent kipróbálsz, akkor ez az állapot hamar elmúlik.

 

> 2 hete még nem is hallottam az arduinoról,

Valamilyen hardvered már van?

 

> sőt c++-ban sincs semmi korábbi tapasztalatom, úgyhogy 0-ról kezdem

Alapvető programozási logikát érdemes először megtanulni. Vezérlési szerkezetek, logikai műveletek. A hardver piszkos részleteit (regiszterek, címzési módok, megszakítások és hasonlók) az Arduino környezet úgyis elrejti.

 

> és amit eddig megtudtam az mind "google a barátod" szindróma :)

Az továbbra is sokat segít.

Nekem mára már a programozás a munkám. Amit tudok, azt java részt a Google-nak köszönhetem. :-)

Megpróbáltam megoldani az elém kerülő problémákat. Sokszor nem értettem, hogy mit miért javasolnak a fórumokban, de azért megpróbáltam. Sokszor elrontottam, ami teljesen természetes, és nagyon sokat tanultam belőle.

 

Ezt ajánlom:

http://www.tavir.hu/60nap

Magyar nyelven végig vezet az alapoktól.

 

Amúgy meg angol nyelven rengeteg anyag érhető el. A fórumokban pedig már kérdezni sem kell: Minden kérdést feltettek már, elég elolvasni a válaszokat. :-)

Előzmény: prozZzac (1801)
prozZzac Creative Commons License 2016.04.08 0 0 1801

Hali!

 

Hogyan lehet megoldani egy project állandó működését egész nap, úgy hogy nem

kapcsolok be számítógépet ? Arra gondolok, pl ha van szenzorom, akkor #include -nál

a library-t gépről tölti be usb-n keresztül, nem ?:) Lényeg h mobilizálni szeretném , hogy ne kelljen állandó

pc kapcsolat?!?!?! Erre való az sd-kártyás megoldás ? Mit jelent a bootloader égetése ?:)

Teljes mértékben kezdő vagyok, 2 hete még nem is hallottam az arduinoról, sőt c++-ban

sincs semmi korábbi tapasztalatom, úgyhogy 0-ról kezdem és amit eddig megtudtam az mind

"google a barátod" szindróma :).

 

Üdv mindenkinek, kellemes hétvégét

Prozac

Prof Creative Commons License 2016.04.07 0 0 1800

interrupt()

 

Korlátosak a lehetőségei, de a célnak alapvetően megfelel.

Előzmény: _istvan_ (1799)
_istvan_ Creative Commons License 2016.04.05 0 0 1799

Szia!

 

Igen, delay() van benne, de akkor átírom! Köszi a linket!

Előzmény: x20fan (1798)
x20fan Creative Commons License 2016.04.05 0 0 1798

Attól függ milyen az a késleltetés. Ha delay, akkor hiába.

Érdemes megcsinálni delay nélkül a késleltetéseket, és akkor továbbra is gyorsan pörög a program, és simán elkapja a gombnyomásokat minden további ügyeskedés nélkül is.

Itt egy egyszerű ledvillogtató delay nélkül: https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

Előzmény: _istvan_ (1797)
_istvan_ Creative Commons License 2016.04.05 0 0 1797

Sziasztok!

 

Van egy arduino uno-m, amin jelenleg egy 20x4 es lcd és pár hőmérő található. Működik, a kijelzőn hőmérséklet és páratartalom adatokat jelenít meg. Viszont a kijelző egyfolytában világít. Hogy tudnám úgy megvezérelni, hogy egy nyomógomb hatására adott időre kapcsoljon be a háttérvilágítás. (addig persze megvan, hogy nyomógomb az egyik bemenetre, kijelző háttérvilágítás egy kimenetre, csak a programban hogy oldjam meg?) Gondolom a megszakításkezelésnek kellene utánanéznem, mert a programban vannak 2-5mp-es késleltetések is, gyanítom ez alatt hiába nyomkodnám a gombot....

Prof Creative Commons License 2016.04.04 0 0 1796

0,7 A-t húznak a relék (legalábbis az enyémek), úgyhogy relénként 0,7 A, plusz 50% tartalék, az nálam 2,1 A. A legközelebbi nagyobb 2,5 A körül van. 5V stabilizált. Nem lesz gond vele.

Előzmény: prozZzac (1794)
Prof Creative Commons License 2016.04.04 0 0 1795

Szia,

 

Az RTC csak az időt méri (az Arduino belső "óráitól" függetlenül), azt viszont hálózattól függetlenül méri.

A feszültségszabályozóval nem sokat érsz el. Az Arduino-n van egy, de ha a táplábra rátolod a reléket és behúzod mind a kettőt, akkor simán elhasalhat. Külső táp, ahogy a későbbin írtad (bocsánat, nem tudok most Fritzingelni, de ha mutatsz sémát, akkor arra elég gyorsan tudnak itt tanult topiktársaink bólintani).

 

Üdv,

 

Prof

Előzmény: prozZzac (1793)
prozZzac Creative Commons License 2016.04.03 0 0 1794

Közben megtaláltam a tápolást a relé panelhez:). Elég hozzá 5v-os adapter?

 

prozZzac Creative Commons License 2016.04.03 0 0 1793

Az RTC azt hittem segít abban, hogy áramszünet esetén , ne felejtse el a Board a programot,

de akkor ezek szerint félreértettem a funkcióját.

A relékhez esetleg egy fesz-szabályozó ?

LM2596HV LM2596S DC-DC Step Down CC-CV Adjustable Power Supply Module

??? Megfelelne egy ilyen vagy mindenképp külön táp ?  :)

 

Köszönöm , szép vasárnapot :)

prozZzac Creative Commons License 2016.04.03 0 0 1792

Köszi szépen a segítséget!

 

Esetleg egy hasznos linket kaphatnék a külön tápos relésorról és, hogy miként csatlakozik az arduinohoz ?! :)

 

Üdv :? prozZzac

Prof Creative Commons License 2016.04.03 0 0 1791

Hali!

 

Nézzük, amit látok.

 

1. Relék mindenképp külön áramkörről (külön tápról) menjenek, semmiképp se az ARDUINO táplábáról. Elég jelentős áramfelvételt produkálnak, ennek megfelelően a sima USB tápellátás el sem bírja őket (egyet még csak-csak, ha nagyon nincs más).

2. i2c LCD kicsit kifinomultabb, de ez is megteszi.

3. RTC: ha bármi oka van, hogy pontosan időt mérj, akkor igen, egyébként irreleváns.

4. Watchdog!!!!

5. Hűtő fokozat 31 fok felett?

6. Az LCD háttérvilágítását teheted egy tranzisztorral egy PWM lábra, így tudod változtatni a háttérvilágítás erősségét (akár fényérzékelővel automatikusan is).

 

Üdv,

 

Prof

Előzmény: prozZzac (1790)
prozZzac Creative Commons License 2016.04.01 0 0 1790

Hello!

 

Nagyon új vagyok az Arduinoban és kellene egy kis segítség :).

Szeretnék egy automata terráriumot és érdekelne hogy jó -e az áramkör amit csináltam...

Fritzing sketch kiegészítés relékkel és hő/pára sensorral.

Szeretnék DHT22 szenzort beépíteni mert szélesebb a mérési tartomány.

Ha valakinek van észrevétele hogyan kellene kiegészíteni, legyen kedves segíteni :).

RTC-t építsek-e az áramkörbe?

A kódokkal elbíbelődök de ha valakinek van ötlete azt is nagyon szívesen veszem ...

az egyik relé ultrahangos párásítót működtetne, amikor 75%-os páratartalom alá esik,

a másik pedig heating pad-et, 28 és 31 °C között, tehát 28nál ON 31nél OFF . :)

Ja és persze az LCD kiíratás...hőmérséklet, páratartalom :)

 

Nagyon szépen köszönöm, kellemes hétvégét!

 

http://kepfeltoltes.hu/view/160401/Circuit_www.kepfeltoltes.hu_.png

 

Hadzsimeee Creative Commons License 2016.03.29 0 0 1789

Köszi. Próbálgattam,de a windows irja valami protocol hiányzik,és nem egyszerű a szisztéma. Elvileg sima mega2560 kontaktált régebben,nem kellett ilyen rumba se más. DE hasznos,köszönöm. 1117 fesz. szabályzórol valaki tud valami hasznos infót ? Ki kell cserélnem valószínűleg,mondjuk utána kéne mérnem multival tuti az a baj-e .... Előre köszönöm.

Előzmény: Törölt nick (1788)
Törölt nick Creative Commons License 2016.03.27 0 0 1788
Előzmény: Hadzsimeee (1787)
Hadzsimeee Creative Commons License 2016.03.26 0 0 1787

Tudom... Belekavarodtam mert nem csak az ftpi drivertől függ... Azt se tudom melyik ftdi ismerné fel... Próbálok Microsoft módra gondolkodni :D Google a barátom. És Mega2560al kapcsolatosan nem tudsz segíteni ? 

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

A beszerzés helyéről próbálj több információt begyűjteni, csak olyan helyről rendelj, ahonnét ezt megteheted.

A szoftwer, driver támogatás fontos.

Egy újabb verziót nem feltétlenül támogat a régi környezet.

Előzmény: Hadzsimeee (1785)
Hadzsimeee Creative Commons License 2016.03.26 0 0 1785

De mondjuk ez hadján,mert jött kinából egy "keyes"mega2560+ramp.1.4A+4988 5db és első feltöltés megvolt és leblokkolt a nyák... Nem csinál semmit. Ötlet? Marlin_v1 töltöttem fel rá,de utána mint ha letiltott. VAn ez így?

Hadzsimeee Creative Commons License 2016.03.26 0 0 1784

amig hozzá nem értem a szoftveres részhez addig jó volt. Meg bekötéssel volt baj,de utána faszán ment. "Chinnai" módra. Ismeretlen Usb eszközlekérést ír rá most ki. Számtekes csóka mondja kuka,de nem hiszem...

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

http://reprap.org/wiki/Printrboard

 

Ez csak érintőlegesen arduino terület, bootloader frissítés és firmware feltöltés volt már, egyáltalán a hardwer üzemképes?

Ezért szoktam 2 db-ot rendelni a problémásabb alaplapokból.

Előzmény: Hadzsimeee (1782)

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