Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   62 / 854
(#) zoszka válasza Poostmaster hozzászólására (») Nov 15, 2014 /
 
A legegyszerűbb, -és galvanikusan is leválasztja a H szintet-ha néhány menet tömör részhuzalból csinálsz egy 1-2 menetes lengőtekercset, amelyet egy ridre tekersz rá. Ha folyik a tekercsen áram, akkor az mágneses teret gerjesz a rid körül, ami behúz, vagy épp elenged, attól függ milyen. A fesznélküli szakadást L szinten tudod azonosítani vagy épp H szinten a "működnie kéne" állapotot és a három logikai kombinációjával sok mindent kihozhatsz még belőle. H szint és rid "on"- működik, terhelés megvan. L szint nem működik, terhelés megvan.
A hozzászólás módosítva: Nov 15, 2014
(#) Poostmaster válasza zoszka hozzászólására (») Nov 15, 2014 /
 
Ez most nem egészen érthető. Talán ha egy skiccet föltennél.
(#) zoszka válasza Poostmaster hozzászólására (») Nov 15, 2014 /
 
Mit nem értesz?
A hozzászólás módosítva: Nov 15, 2014

unnamed.jpg
    
(#) Poostmaster válasza zoszka hozzászólására (») Nov 15, 2014 /
 
Nem a reed relét nem értem, hanem, hogy hova kötnéd. Hogyan segítene nekem?
(#) zoszka válasza Poostmaster hozzászólására (») Nov 15, 2014 /
 
A reed ad terhelésnél egy szintet(amilyet akarsz). Az L szint alapból adott az izzón keresztül amikor nem ég. A H szint is adott amikor a kapcsolót bekapcsolod. Csak csinálsz egy igazságtáblázatot és mindjárt kaphatsz alapbó 3 lehetőséget, amit ki tudsz értékelni akár logikai kapukkal és a végeredmény egy "ok" vagy "false" lesz. Nyilván az L és H szintet is az izzón méred.
Ha az L/H egy ellenállással fel van húzva H szintre mondjuk 10K az izzó lehúzza, ha jó és az eredmény "ok". Ha nem jó az izzó akkor H szintre ugrik az ellenálláson keresztül és az eredmény "false" lesz

Készítettem egy táblázatot.
A hozzászólás módosítva: Nov 15, 2014
(#) Poostmaster válasza zoszka hozzászólására (») Nov 15, 2014 /
 
Az én rajzomban hova kötöd a tekercset, és az érintkezőt?
(#) zoszka válasza Poostmaster hozzászólására (») Nov 15, 2014 /
 
A reed tekercsét, azt a pár menetet sorba kell kötni az izzóval. A reed cső érintkezői az on/off. Úgy használod ahogy akarod, akár H, akár L szintként.
A hozzászólás módosítva: Nov 15, 2014
(#) Poostmaster válasza zoszka hozzászólására (») Nov 15, 2014 /
 
Értem.
Nem kivitelezhető az izzóáramkör megszakítása.
(#) zoszka válasza Poostmaster hozzászólására (») Nov 15, 2014 /
 
Kapcsoló elé, vagy mögé is teheted, bárhova az áramkörbe, de akár az izzó után is.
(#) atus1981 válasza erdeidominik1999 hozzászólására (») Nov 16, 2014 /
 
Üdv!
Mindenáron a pufferből akar fűteni. A bekapcsolásnál egyszer kapcsol gázkazánra, aztán ha melegszik a puffer 45 fok fölé, akkor kikapcsolja a gázkazánt és vár. Majd nem veszi figyelembe se a termosztátot se a puffer hőmérsékletet, folyamatosan fűt...
(#) TheShaft válasza alevike hozzászólására (») Nov 16, 2014 /
 
Használj inkább D/A konvertert és egy kétszeres erősítésű műveleti erősítőt. Vagy próbálkozhatsz az Arduino PWM kimenetével kvázi analóg jelet előállítani, ha nem akarsz ADC-re költeni. A digitális potméteres megoldás szerintem nem lesz jó.
(#) erdeidominik1999 válasza atus1981 hozzászólására (») Nov 16, 2014 /
 
Helló! Próbáld meg ezt!
  1. int gazkaz_allapot=0;
  2. long previousMillis = 0;
  3. boolean idozites=false;
  4.  
  5.  
  6. if (szt == 1 && futpufmegy == 0 && puffer < 45) {  
  7.  
  8. digitalWrite(gazkaz, HIGH);
  9. gazkaz_allapot=1;
  10. }
  11.  
  12. if  (futpufmegy == 1 || szt == 0 || puffer > 45) {
  13.  
  14. if(gazkaz_allapot==1){
  15. gazkaz_allapot=0;
  16. digitalWrite(gazkaz, LOW);
  17. idozites=true;  
  18. unsigned long currentMillis = millis();
  19. previousMillis = currentMillis;
  20. }
  21. }
  22.  
  23. if(idozites==true){
  24. unsigned long currentMillis = millis();
  25. if(currentMillis - previousMillis > 180000) {
  26. previousMillis = currentMillis;
  27. idozites=false;
  28.      
  29. if (puffer > 45 && szt == 1) {
  30. digitalWrite(futpuff, HIGH);
  31. }
  32.  
  33. if (puffer < 44 || szt == 0) {
  34. digitalWrite(futpuff, LOW);
  35. }
  36. }
  37. }else{
  38.  
  39. if (puffer < 44 || szt == 0) {
  40. digitalWrite(futpuff, LOW);
  41. }  
  42. }
(#) zoszka válasza atus1981 hozzászólására (») Nov 16, 2014 /
 
Szia! Csak kibicelnék kicsit. 2 kérdésem lenne. A puffer és a kazán párhuzamosan van kötve, vagy pufferkizárással sorosan? Miért akarod így vezérelni?
(#) atus1981 válasza erdeidominik1999 hozzászólására (») Nov 16, 2014 /
 
Üdv!
Közben megoldódott. Az volt abban a kódban a baj és szerintem itt is, hogy a 44 és a 45 fok közöttre esik a hőmérséklet, akkor nem teszi a dolgát.
Javítottam 44-et 45-re, így már megy szépen.
(#) atus1981 válasza zoszka hozzászólására (») Nov 16, 2014 /
 
Üdv
Párhuzamosan vannak, visszacsapószelepekkel elválasztva.
Te hogyan vezérelnéd?
(#) zoszka válasza atus1981 hozzászólására (») Nov 16, 2014 /
 
Mi a cél?.. folyamatosságában leírva leírva.
(#) atus1981 válasza zoszka hozzászólására (») Nov 16, 2014 /
 
Vegyestüzelésű kazán kiegészítve puffertartállyal, köztük egy keringtető szivattyúval.
Ennek a keringtetőnek semmi köze a szobatermosztáthoz. Csak arra hivatott, hogy a kazán-puffer egyirányú hőmérséklet különbség és 59fokos kazán előremenő esetén termelje a meleget a pufferba.
A szobatermosztát jelet ad a vezérlésnek és ha a puffer 45 fok fölött van, akkor onnan megy a meleg, ha nincs, akkor gázról. Viszont ha gázról megy a fűtés és közben eléri a 45 fokot a puffer, akkor az átváltás között 3 percnek kell lennie, mert a gázkazán utókeringtet és nem kellene egyszerre mennie a pufferből fűtési szivattyúval. Röviden ennyi
(#) zoszka válasza atus1981 hozzászólására (») Nov 16, 2014 /
 
Szerinted miért probléma, ha egyszerre megy a két hőforrás szivattyúja 3 percig? A mit szeretnél-t értem. A miért-et nem.
A hozzászólás módosítva: Nov 16, 2014
(#) erdeidominik1999 válasza atus1981 hozzászólására (») Nov 16, 2014 /
 
Próbáld ki amit reggel küldtem programot, elvileg az jó!
(#) atus1981 válasza zoszka hozzászólására (») Nov 16, 2014 /
 
Mert az utókeringtetés célja, hogy lehűtse a kazán hőcserélőt, illetve ne maradjon meleg a kazánban.
(#) zoszka válasza atus1981 hozzászólására (») Nov 16, 2014 / 1
 
Ezt én is tudom, de miért baj, ha együtt megy 3 percig a kettő?
(#) atus1981 válasza zoszka hozzászólására (») Nov 16, 2014 1 /
 
Mert felesleges.
(#) zoszka válasza atus1981 hozzászólására (») Nov 16, 2014 / 1
 
Hőtechnikailag miért baj szerinted? Nem kötekedni akarok, ne értsd félre. (Gépész vagyok és vezérléseket tervezek.) Amit szeretnél az felesleges ilyen módon. Pár alapelvet tisztázni kéne.
Pl: Ha 45 foknál a puffer a hőtermelő az 5-10 fok külső hőmérsékletnél még elégséges lehet, de -10-nél nagyon kevés. Ha a kazán mondjuk 65 fokon üzemel (kint-10) és a puffer átkapcsol 45 foknál, akkor visszahűl a rendszer és ezzel párhuzamosan a lakás is. És van még pár dolog mivel elbukod a pufferbe bevitt energiát, tehát többe kerül a hús mint a leves. Ahhoz hogy a rendszered hatékonysága, hatásfoka legalább megmaradjon és ne vesszen kárba a bevitt energia 1-2 tényezőt, paramétert még figyelembe kéne venni. ilyenek a külső hőmérséklet, teljesítményigény, deltaT, stb.
(#) atus1981 válasza zoszka hozzászólására (») Nov 16, 2014 /
 

Fal és padlófűtésről van szó, amihez több, mint elég a 45 fok, természetesen segédenergia nélküli keverőszelepekkel lekeverve az előremenők.
A gázkazán meg kondenzációs, ami 40-42 fokot állít elő. Tehát a külső hőmérséklet nem igazán érdekes ebben a körben. Ha elfogy a puffer, akkor a gázkazán fűt tovább.
Valamit elnéztem volna?
DeltaT meg a vegyeskazán és a puffer között érdekes, hogy a hőtermelés a puffer felé menjen csak.
(#) zoszka válasza atus1981 hozzászólására (») Nov 16, 2014 /
 
Így más a gyerek fekvése, hogy ismert a rendszer. A puffer töltés módjával tudnál hatásfokot növelni hőforrás tekintetében, de ahogy leírtad nem ez a cél. A célod fűtéstechnikailag nem releváns, csak a megoldása (programozás), ami érdekessé teszi, de se jobb se rosszabb nem lesz tőle.
(#) Leaslie hozzászólása Nov 16, 2014 /
 
Üdv az uraknak!
Olyan problémával szembesültem hogy szeretnék egy arduino uno-val irányítani egy COLORPAL #28380 színérzékelőt, és melette 3db szervó motort.
Nyomogómra működne az első, a többi kettő meg színtől fűggően működni.
Igenám, de odáig el is jutottam hogy egy morot tudok vezérelni nyomógomb segítségével, de amint kettő motor van a rendszerben az új motor habár szoftveresen nem írtam hozzá semilyen vezérlő kódot, magátol elkezd remegni, meg ösze visza ugrálni.
Hogyan tudnám kiküszöbölni ezt a jelenséget? És ez miért van?
Nagyon kellene a segítség!
(#) kapu48 válasza Leaslie hozzászólására (») Nov 16, 2014 /
 
Szerintem írjad meg a vezérlést!

Mivel alapból minden AVR pin bemenet, ezért lebegnek a motor vezérlő bemenetei!
És egyszerűen csak gerjed a rendszered!
(#) Leaslie válasza kapu48 hozzászólására (») Nov 16, 2014 /
 
Jelenleg így néz ki a rendszer, és gerjed még mindig :\


  1. #include <SoftwareSerial.h>
  2. #include <Servo.h>
  3. const int sio = 2;            // ColorPAL connected to pin 2
  4. const int unused = 0xD7;         // Non-existant pin # for SoftwareSerial
  5. const int sioBaud = 2400;
  6. const int waitDelay = 200;
  7. int i=0;
  8.  
  9. // Received RGB values from ColorPAL
  10. int red;
  11. int grn;
  12. int blu;
  13.  
  14. // Set up two software serials on the same pin.
  15. SoftwareSerial serin(sio, unused);
  16. SoftwareSerial serout(unused, sio);
  17.  
  18.  
  19. Servo motorka;
  20. Servo tovabb;
  21.  
  22. int gomb=4;
  23. int gombertek = 0;
  24. int minpoz=1;
  25. int maxpoz=180;
  26.  
  27. void setup ()
  28. {
  29.  
  30.  
  31. motorka.attach (3);
  32. tovabb.attach (5);
  33. pinMode(gomb, INPUT);
  34.  
  35.   Serial.begin(9600);
  36.   reset();                  // Send reset to ColorPal
  37.   serout.begin(sioBaud);
  38.   pinMode(sio, OUTPUT);
  39.   serout.print("= (00 $ m) !"); // Loop print values, see ColorPAL documentation
  40.   serout.end();              // Discontinue serial port for transmitting
  41.  
  42.   serin.begin(sioBaud);            // Set up serial port for receiving
  43.   pinMode(sio, INPUT);
  44. }
  45.  
  46.  
  47. void loop()
  48. {
  49.  
  50. motorka.write(minpoz);
  51. tovabb.write(minpoz);
  52.  
  53. gombertek = digitalRead(gomb); // nyomogomb allapotanak lekerdezese
  54. if (gombertek == HIGH)  // ha a gomb be van kapcsolva
  55. {  
  56. motorka.write(maxpoz);
  57. tovabb.write(maxpoz);
  58.  
  59. /*for (i=0; i<180; i+=1)  //oda
  60. {
  61. digitalWrite(motor, HIGH);
  62. delay(0.24);
  63. digitalWrite(motor, LOW);
  64. delay(0.01);
  65. }*/}
  66.  
  67.  
  68. else if ( gombertek == LOW )
  69. {
  70.   motorka.write(minpoz);
  71.   tovabb.write(minpoz);
  72. /*for (i=0; i<180; i+=1)    //vissza
  73. {
  74. digitalWrite(motor, HIGH);
  75. delay(0.054);
  76. digitalWrite(motor, LOW);
  77. delay(0.19);
  78. } */
  79. }
  80.  
  81. readData();
  82.  
  83.  
  84. }
  85.  
  86.  
  87. void reset() {
  88.   delay(200);
  89.   pinMode(sio, OUTPUT);
  90.   digitalWrite(sio, LOW);
  91.   pinMode(sio, INPUT);
  92.   while (digitalRead(sio) != HIGH);
  93.   pinMode(sio, OUTPUT);
  94.   digitalWrite(sio, LOW);
  95.   delay(80);
  96.   pinMode(sio, INPUT);
  97.   delay(waitDelay);
  98. }
  99.  
  100. void readData() {
  101.   char buffer[32];
  102.  
  103.   if (serin.available() > 0) {
  104.     // Wait for a $ character, then read three 3 digit hex numbers
  105.     buffer[0] = serin.read();
  106.     if (buffer[0] == '$') {
  107.       for(int i = 0; i < 9; i++) {
  108.         while (serin.available() == 0);     // Wait for next input character
  109.         buffer[i] = serin.read();
  110.         if (buffer[i] == '$')               // Return early if $ character encountered
  111.           return;
  112.       }
  113.       parseAndPrint(buffer);
  114.       delay(10);
  115.     }
  116.   }
  117. }
  118.  
  119. // Parse the hex data into integers
  120. void parseAndPrint(char * data) {
  121.   sscanf (data, "%3x%3x%3x", &red, &grn, &blu);
  122.   char buffer[32];
  123.   sprintf(buffer, "R%4.4d G%4.4d B%4.4d", red, grn, blu);
  124.   Serial.println(buffer);
  125.  
  126. if( red>0025 && grn<0010 && blu<10 )   //PIROS
  127. {
  128. Serial.print ("\npiros\n");  
  129. }
  130.  
  131. else if (red<10 && grn>blu+5 )    //ZÖLD
  132. {
  133. Serial.print ("\nzold\n");  
  134. }
  135.  
  136. else if (red<grn && blu>100 )    //KÉK
  137. {
  138. Serial.print ("\nkek\n");  
  139. }
  140.  
  141. else if (red>0200 && grn>100 && blu<100 )    //NARANCSSÁRGA
  142. {
  143. Serial.print ("\narancssarga\n");  
  144. }
  145.  
  146.  
  147.  
  148. }


Kód javítva.
Használd a kód gombot!
-moderátor-
A hozzászólás módosítva: Nov 16, 2014
(#) kapu48 válasza Leaslie hozzászólására (») Nov 16, 2014 /
 
Ezt próbáltam magyarázni!
Folytasd a 2.- 3. motor vezérlő kimenetek létrehozását!
void setup ()
{


motorka.attach (3);
tovabb.attach (5);
….???
(#) andykaaa válasza atus1981 hozzászólására (») Nov 17, 2014 /
 
Tehnikailag gyenge programozo vagyok, nem igen ertem a programozoi nyelvet, de a megoldas az lenne szerintem ha elmentened az azelotti allapotat mind a haromnak (termosztat, gazkazan es puffer). Igy attol fuggoen hogy eppen milyen allapot kovet milyent, aszerint iktatnad be azt a 3 perc kesest.
A hozzászólás módosítva: Nov 17, 2014
Következő: »»   62 / 854
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem