Vis indlæg

Denne sektion tillader dig at se alle indlæg oprettet af dette medlem. Bemærk at du kun kan se indlæg der er oprettet i områder du i øjeblikket har adgang til.


Beskeder - DanFr

Sider: [1] 2 3
1
Off Topic / Apple HomeKit
« Dato: Juli 26, 2023, 19:43:38 »
Hej..
Er der nogen herinde som er lidt nørd omkring HomeKit?
Er nybegynder inden for SmartHome og har lidt grundlæggende spørgsmål inden jeg begynder at investere i noget.

Mvh Dan

2
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 25, 2022, 19:34:51 »
Hej igen igen...
Tror faktisk ikke jeg vil lave den timer i koden, men bruge en ekstern cycle timer i stedet. For når først fyrings sæsonen er helt stoppet, så kan jeg tillade mig at slukke for styringen, shunt osv. Pumpen skal cycle konstant så længe der er tændt for hovedafbryderen til fyret 

3
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 25, 2022, 19:18:47 »
Hej..

Yes det er hvad det er til..

Hvad mener du med "overflow efter 50 dage"?

Jeg har siddet lidt i min tømmermænds magt og google'et lidt og var godt kommet frem til at det var noget med millis() der skulle bruges.


4
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 25, 2022, 14:42:34 »
Hej igen..

Ahhh ja det giver menig,  den er da meget rar at have med på serial monitoren også, så kan jeg se hvad der sker. Også fordi det bliver en styring uden display eller lign, så det er den bærebar på hvis jeg skal se eller justere, men skulle i princippet også passe sig selv når først det køre.
Så nu vil jeg finpudse det lidt og få lavet gode noter mens jeg kan huske det.

Måske jeg lige skylder en forklaring på hvad det skal bruges til, og der er nok noget som siger dig et eller andet, fordi vi skrev sammen sidste år med en analog styring af mit fremløb i forhold til ude temp, men jeg er bare ikke dygtig nok, så fandt på noget andet.
Så denne lille styring her, skal forskyde mit 0-10v signal til min shunt, hvert relæ ligger en modstand værdig parallel over 0-10 volt og på den måde snyder jeg den til at vide hvor den er, troede ikke det virkede, men virker faktisk okay.
Der bliver en udgang som ændre setpunktet på brænderen, lidt et sommer og vinter setpunkt, så jeg ikke har så høj temp før shunten når jeg ikke har brug for det i centeralvarmen, 
Og der bliver et relæ som slukker for mit cirkulations pumpe når ude temp, bliver høj nok.

Og det leder mig faktisk til et andet spørgsmål som jeg har glemt alt om.. Hvor store tider kan man arbejde med i Arduino'en.
Fordi jeg kunne godt tænke mig at lave så pumpen bliver masseret jævnligt om sommeren når der ikke er brug for den. 10-15min hver 6 time feks Kan det laves uden ekstra clock mondul eller lign.. Gerne lidt hjælp, har ingen ide om hvor jeg skal starte

5
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 25, 2022, 12:01:55 »
Den funktion du har lagt ind med "ingen opdatering af temperaturen" hvad er det den kigger på? Jeg tror det er avg jeg har fået den til at vise, men hænger bare ikke sammen med ingen opdatering af temperaturen

AVG af ude temperatur: 7.65
Ude temperatur: 7.88
Ude temperatur: 7.88
Ude temperatur: 7.88
Ude temperatur: 7.88
Ude temperatur: 7.25
Ingen opdatering af temperatur
AVG af ude temperatur: 7.75
Ude temperatur: 7.19
Ude temperatur: 7.88
Ude temperatur: 7.88
Ude temperatur: 7.88
Ude temperatur: 7.25
Ingen opdatering af temperatur
AVG af ude temperatur: 7.61
Ude temperatur: 7.88
Ude temperatur: 7.31
Ude temperatur: 7.88
Ude temperatur: 7.88
Ude temperatur: 7.88
Ingen opdatering af temperatur
AVG af ude temperatur: 7.76

Ligger lige programmet ind
#include <OneWire.h>
#include <DallasTemperature.h>

float Temp1 = 8.0;
float Temp2 = 9.0;
float Temp3 = 10.0;
float Temp4 = 12.0;
float Temp5 = 13.0;
float Temp6 = 14.0;
float Temp7 = 15.0;
float Temp8 = 30.0;   
float Temp9 = 31.0;

#define ONE_WIRE_BUS 2
#define K101 3
#define K102 4
#define K103 5
#define K104 6
#define K105 7
#define K106 8
#define K107 9
#define K108 10

// Buffer til opbevaring af værdier mens de behandles
bool K101_buffer = 0;
bool K102_buffer = 0;
bool K103_buffer = 0;
bool K104_buffer = 0;
bool K105_buffer = 0;
bool K106_buffer = 0;

//Værdi der bruges til beregninger:
float current_temp = 0;
float temp_hys = 0.2;//Hysteresis. Prøv at google det. Så står relæerne ikke og danser.

//Bruges til gennemsnit
float temp_avg_sum = 0;//Summen der bruges til beregning af gennemsnit
int temp_avg_runs = 0;//Antal beregninger der indgår i gennemsnittet
int Number_of_runs = 5;//Hvor mange målinger der skal udgøre en gennemsnitsberegning

 
OneWire oneWire(ONE_WIRE_BUS);
 
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
 
void setup(void)
{
  Serial.begin(9600);
  pinMode(K101, OUTPUT);
  pinMode(K102, OUTPUT);
  pinMode(K103, OUTPUT);
  pinMode(K104, OUTPUT);
  pinMode(K105, OUTPUT);
  pinMode(K106, OUTPUT);
  pinMode(K107, OUTPUT);
  pinMode(K108, OUTPUT);
   

  sensors.begin();
}
 
void loop(void)
{
  if(temp_avg_runs<Number_of_runs){
    sensors.requestTemperatures();
    float current_temp_unhandled = sensors.getTempCByIndex(0);
    temp_avg_sum += current_temp_unhandled;//Lægger den nye måling til den summerede værdi.
    temp_avg_runs++; //Der er blevet tilføjet endnu en måling til den summerede værdi.
    Serial.print("Ude temperatur: ");
    Serial.println(current_temp_unhandled);
  }else{//Der er nu foretaget nok målinger til at beregne et gennemsnit.

    float temp_avg_unhandled = temp_avg_sum / temp_avg_runs;//Beregner gennemsnit. Summerede værdi delt med antal målinger
    temp_avg_sum = 0;//Nulstiller, så der tages nye målinger næste gang loop køres
    temp_avg_runs = 0;
    //Bestemmer om temperaturen skal opdateres. Sikre at relæet ikke danser.
    //ABS() tager længden af værdien 10-> 10 og -10 -> 10. Altså fjerner minus fortegn..
    if(abs(temp_avg_unhandled-current_temp)>temp_hys){
      current_temp = temp_avg_unhandled;
    }else{
      Serial.println("Ingen opdatering af temperatur");
    }
    Serial.print("AVG af ude temperatur: ");
    Serial.println(temp_avg_unhandled);
 

    //I udgangspunktet skal de alle være slukket
    K101_buffer = 0;
    K102_buffer = 0;
    K103_buffer = 0;
    K104_buffer = 0;
    K105_buffer = 0;
    K106_buffer = 0;
 

    if(current_temp < Temp1)
    {
      K101_buffer = 1;
    }
    else if(current_temp < Temp2)
    {
      K102_buffer = 1;
    }
    else if(current_temp < Temp3)
    {
      K103_buffer = 1;
    }
    else if(current_temp < Temp4)
    {
      K104_buffer = 1;
    }
    else if(current_temp < Temp5)
    {
      K105_buffer = 1;
    }
    else if(current_temp < Temp6)
    {
      K106_buffer = 1;
    }else{
      K106_buffer =1;
    }
   
   

    //Sender buffer til pins
    digitalWrite(K101, K101_buffer);
    digitalWrite(K102, K102_buffer);
    digitalWrite(K103, K103_buffer);
    digitalWrite(K104, K104_buffer);
    digitalWrite(K105, K105_buffer);
    digitalWrite(K106, K106_buffer);
  }
 
   
   
   
    delay(200);//Sat ned fra 2s til 0,2s, da antal målinger til gennemsnit er 10, hvorved relæerne opdateres med samme hastighed.





6
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 25, 2022, 10:36:55 »
Ja okay giver meget god mening, jeg sidder jo også bare og påvirker føleren med et fryse element osv. når først den kommer ud, så vil temperaturen ligge meget ens over længere perioder.

Jeg prøver at kigge på det  ;D

7
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 25, 2022, 09:36:17 »
Hej dani8303

Sidste gang jeg havde min Arduino fremme læste jeg godt noget omkring det bibliotek fra PoulStoffregen.
Altså den løsning med AVG temp fungere jo perfekt, det ser da sådan ud i hvert fald.
Skal lige klippe klister de 2 sidste temperaturer setpunkter ind og fjerne det som ikke bliver brug og tilføje egne noter.
Der er lige 2 ting.

1. >>Jeg har faktisk sat den til 20 målinger med et delay på 1000. Så var det jeg tænkte, for at holde programmet så enkelt som mulig kun det omkring "hys" og "abs" så fjernes, eller hvad tænker du? ( vil selvfølgelig holde "originalen" og lave noter til fremtidig brug)

2. >> ved ikke om det kan lade sig gøre? Men nu kommer den der tekst "Ingen opdatering af temperaturen" Kan den udregnet avg temperatur blive vist og fremhævet, så jeg kan følge med i hvad temp der bliver kigget på  ;D

mvh Dan

8
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 24, 2022, 14:33:49 »
Ser spændende ud, det må jeg lige teste og sætte mig ind i et STORT lærestadie.
Stort tak

Du siger det bibliotek jeg bruger, hmm findes der flere slags, skriver man det selv hvis man er hardcore ??

P.S. den kommer med en fejl, kan ikke lige se mig ud af hvad der mangler?
Arduino: 1.8.16 (Windows 10), Board: "Arduino Uno"

C:\Users\dan74\Documents\Arduino\Test_med_GNS\Test_med_GNS.ino: In function 'void loop()':

Test_med_GNS:67:34: error: expected initializer before '+=' token

     float current_temp_unhandled += sensors.getTempCByIndex(0);

                                  ^~

Test_med_GNS:68:21: error: 'current_temp_unhandled' was not declared in this scope

     temp_avg_sum += current_temp_unhandled;//Lægger den nye måling til den summerede værdi.

                     ^~~~~~~~~~~~~~~~~~~~~~

C:\Users\dan74\Documents\Arduino\Test_med_GNS\Test_med_GNS.ino:68:21: note: suggested alternative: 'current_temp'

     temp_avg_sum += current_temp_unhandled;//Lægger den nye måling til den summerede værdi.

                     ^~~~~~~~~~~~~~~~~~~~~~

                     current_temp

exit status 1

expected initializer before '+=' token



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

9
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 24, 2022, 10:54:25 »
Hej dani8303
Her har du min udlæsning med 2 sek delay (Føleren sidder ikke ude..!)

Ude Temperatur: 20.44
Ingen opdatering af temperatur
Ude Temperatur: 20.37
Ude Temperatur: 21.12  >> hop på 0,75gr
Ude Temperatur: 21.06
Ingen opdatering af temperatur
Ude Temperatur: 21.00
Ingen opdatering af temperatur
Ude Temperatur: 21.06
Ingen opdatering af temperatur
Ude Temperatur: 21.00
Ingen opdatering af temperatur
Ude Temperatur: 21.00
Ingen opdatering af temperatur
Ude Temperatur: 21.19
Ingen opdatering af temperatur
Ude Temperatur: 20.62  >> drop på 0,57gr og tilbage igen
Ingen opdatering af temperatur
Ude Temperatur: 21.19
Ingen opdatering af temperatur
Ude Temperatur: 21.12
Ingen opdatering af temperatur
Ude Temperatur: 21.19
Ingen opdatering af temperatur
Ude Temperatur: 21.00
Ingen opdatering af temperatur
Ude Temperatur: 20.44  >> drop på 0,68gr
Ude Temperatur: 21.12
Ude Temperatur: 21.06
Ingen opdatering af temperatur
Ude Temperatur: 21.00

Synes det er meget når den ligger på et bord og er pakket ind i et viskestykke, der skulle temperaturen være meget stabil. Nogen ide om hvad det kan være? For det hjælper jo også til at de relæ'er vil stå og danse..

10
Arduino & Lign. / Sv: Gennnemsnit temp.
« Dato: September 24, 2022, 09:31:13 »
Hej dany8303

Tak for svar, giver meget god mening det du forklare og har lavet, umiddelbart virker det også, synes bare der er noget som ikke passer med mine setpunkter, leger lige lidt med det.
Den ABS værdi du skriver om med -10- hvor har du gemt den henne, den kan ikke lige gennemskue, og hvad den skal bruges til.

Det med den føler DALLAS DS18B20, ser jeg ikke som så stabil som du skriver, den hopper rund med 0,5 til 1 hel grad. og det er alle 4 jeg har prøvet at sætte på(kun en af gangen) prøvet med kort/langt kabelføring osv, det er det samme, føleren ligger pakket ind i en klud, netop så jeg er sikker på at der ikke er pludselige temp udsving. ) Og det skulle være en original DALLAS og ikke en fra Kina.

11
Arduino & Lign. / Gennnemsnit temp.
« Dato: September 23, 2022, 13:54:24 »
Hej.
Jeg har lavet en lille kodning i Arduino som skal styre nogle relæ'er alt efter hvor temperaturen er på min DS18B20 temperatur sensor.
Der SKAL være et relæ trukket hele tiden, så jeg har selvfølgelig lidt problemer med at relæ'erne står og danser frem og tilbage, og det er ikke rigtig godt, jeg kan selvfølgelig give den en høj Delay time, så er det knapt så voldsomt. Skal lige siges at det er en ude temperatur jeg måler

Jeg har læst lidt om at finde gennemsnit forskellige steder, men jeg forstår det ikke rigtigt, jeg er meget ny i denne verden, så måske der var en herinde der kunne hjælpe, Hvis jeg bare kunne få rette mit Sketch, så skal jeg skam nok sidde og nørde med det for at finde ud af hvordan og hvorfor.. Tænker hvis der feks kunne laves 10 målinger og så giver den en gennemsnit værdi, ved ikke om det kan laves så jeg selv kan vælge om der skal være 1 eller 15 sek mellem de 10 målinger? Har lidt svære ved at se mig ud af det.
Den kodning jeg har lavet kan med garanti laves på en helt anden og forenklet måde, men viser jo bare hvor ny jeg er i det. Men kom gerne med input.

Mvh Dan

#include <OneWire.h>
#include <DallasTemperature.h>

float Temp1 = 22.0;
float Temp2 = 24.0;
float Temp3 = 26.0;
float Temp4 = 28.0;
float Temp5 = 30.0;
float Temp6 = 32.0;
float Temp7 = 29.0;
float Temp8 = 30.0;   
float Temp9 = 31.0;

#define ONE_WIRE_BUS 2
#define K101 3
#define K102 4
#define K103 5
#define K104 6
#define K105 7
#define K106 8
#define K107 9
#define K108 10

 
OneWire oneWire(ONE_WIRE_BUS);
 
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
 
void setup(void)
{
  Serial.begin(9600);
  pinMode(K101, OUTPUT);
  pinMode(K102, OUTPUT);
  pinMode(K103, OUTPUT);
  pinMode(K104, OUTPUT);
  pinMode(K105, OUTPUT);
  pinMode(K106, OUTPUT);
  pinMode(K107, OUTPUT);
  pinMode(K108, OUTPUT);
   

  sensors.begin();
}
 
void loop(void)
{
  sensors.requestTemperatures();
  float current_temp = sensors.getTempCByIndex(0);
 
  Serial.print("Ude Temperatur: ");
  Serial.println(current_temp);

 
if(current_temp < Temp1)
  {
    digitalWrite(K101, HIGH);
    digitalWrite(K102, LOW);
    digitalWrite(K103, LOW);
    digitalWrite(K104, LOW);
    digitalWrite(K105, LOW);
    digitalWrite(K106, LOW);
   
  }
  if(current_temp >= Temp1)
  {
    digitalWrite(K101, LOW);
    digitalWrite(K102, HIGH);
    digitalWrite(K103, LOW);
    digitalWrite(K104, LOW);
    digitalWrite(K105, LOW);
    digitalWrite(K106, LOW);
   
   }
   if(current_temp >= Temp2)
  {
    digitalWrite(K101, LOW);
    digitalWrite(K102, LOW);
    digitalWrite(K103, HIGH);
    digitalWrite(K104, LOW);
    digitalWrite(K105, LOW);
    digitalWrite(K106, LOW);
   
   }
    if(current_temp >= Temp3)
  {
    digitalWrite(K101, LOW);
    digitalWrite(K102, LOW);
    digitalWrite(K103, LOW);
    digitalWrite(K104, HIGH);
    digitalWrite(K105, LOW);
    digitalWrite(K106, LOW);
     
   }
   if(current_temp >= Temp4)
  {
    digitalWrite(K101, LOW);
    digitalWrite(K102, LOW);
    digitalWrite(K103, LOW);
    digitalWrite(K104, LOW);
    digitalWrite(K105, HIGH);
    digitalWrite(K106, LOW);
     
   }
   if(current_temp >= Temp5)
  {
    digitalWrite(K101, LOW);
    digitalWrite(K102, LOW);
    digitalWrite(K103, LOW);
    digitalWrite(K104, LOW);
    digitalWrite(K105, LOW);
    digitalWrite(K106, HIGH);
     
   } 
   
   
    delay(2000);
  }

12
Arduino & Lign. / Sv: Styring af fremløb temp.
« Dato: Oktober 10, 2021, 20:08:05 »
Daniel, kan allerede mærke frustrationerne stige mig til hovedet. haha ;D

Jeg er først lige begyndt sådan rigtig at sætte mig ind i hvordan en PID er opbygget, intet erfaring og ja Arduino er også ny for mig, og mit første projekt. så bliver nok en for stor mundfuld, at skulle kaste mig ud i "PID Cascade Loop" også. Skal nok få mine udfordringer, bare med det jeg vil lave nu. Jeg må få lavet en opstilling og programmere lidt når stumperne engang kommer hjem

Venlig hilsen Dan

13
Arduino & Lign. / Sv: Styring af fremløb temp.
« Dato: Oktober 09, 2021, 06:30:52 »
Hej Daniel.
Fedt, tak for dine svar og blev da en del klogere på mine valg.
Så vil jeg bestille en håndfuld DS18B20 hjem, har læst og prøvet på at forstå det link du sendte, men ser ikke at der skulle blive problemer i mit tilfælde da jeg har så korte kabler. Det eneste er, at jeg mere eller mindre er nød til at lave det som en stjerne konfiguration da styreenheden vil blive udmiddelbart central i projektet, men igen ser det ikke som et problem med de korte kabeltræk, eller hvad tænker du?

Tror jeg går med analog 0-10v i første omgang, jeg har også kigget på små kredsløb der opbygget omkring en LM358'er til at konvertere signalet, men tror jeg køber en lille færdig enhed der er beregnet til det samme, den har også noget fin justering af forholdet mellem 0-5v pwm og 0-10v analog. Men tager nok en servo hjem alligevel hvis jeg ombestemmer mig, den skal nok bliver brugt til et senere projekt, er jeg sikker på 8)

Den spjældmotor jeg bruger har et feedback signal, men det mener jeg ikke er relevant, da ventilen næsten aldrig skal stå samme sted for at holden en ønsket temperatur. Hvis der bliver kaldt på varme i huset, så er min retur meget kold i starten, så skal shunt'en måske være 90% åben, og efterhånden som returen bliver varmere, så får shunt'en brug for at gå længere mod 0% , Samt om kedelvandet er 59 eller 65 gr vil jo også give udslag. giver det mening?

Ja en fuld PID regulering er nok lidt overkill, men ja, regner med at benytte et af de færdige biblioteker.

Godt eksempel på en udregning, den er helt sikkert brugbar.

Jeg må få købt nogle stumper hjem, så jeg kan komme i gang med mit projekt.

Vender uden tvivl tilbage..  ;D

Vh Dan.

14
Arduino & Lign. / Styring af fremløb temp.
« Dato: Oktober 08, 2021, 16:35:15 »
Hej.
Er total nybegynder med Arduino og har aldrig ejet en, men har dog snart brugt mange uger på at læse og se videoer om Arduino og dens muligheder. Så efterhånden ved jeg så meget, at jeg kan stille de rigtige spørgsmål, så jeg kan få købt de rigtige komponenter hjem til det projekt jeg vil kaste mig ud i. Og efterfølgende render jeg med garanti ind i udfordringer med kodningen. Hehe



Forklaringen på projekt.
Jeg ønsker at regulere fremløbs temperaturen (blande/shunt ventil) fra min kedel med et setpunkt der kommer fra en udendørsføler, fremløbs temperaturen er meget svingende til dels fordi at temperaturen i kedel fra start til stop ændre sig og pga, at jo koldere mit retur løb er jo mere varme skal blande/shunt ventilen blande i.
Når jeg har fundet ud af overstående og det virker, så ønsker jeg, at gå videre med nogle flere temperaturvisninger samt start/stop af kedel(brænder), start/stop af cirk. Pumpe efter ude temperaturen og måske ændre setpunkt temperatur for start/stop af kedel (en form for sommer/vinter tilstand der styres af ude temperaturen).
Men lige nu koncentrere jeg mig om, at regulere fremløb temperaturen samt start/stop af cirk. Pumpe efter ude temperaturen
Senere har jeg en lille drøm om, at jeg kan komme til at styre det hele på en 5” Nextion touchskærm.

Spørgsmål.
Da jeg skal bruge en del temperatur sensorer, så falder mit valg på en Dallas DS18B20 da den kan bruges som en BUS og spare på indgangene på Arduino’en.
> Er det et okay valg? kom gerne med fordele/ulemper.
> Efter hvad jeg har læst om DS18B20, så skulle en kabel længde på 4 meter ikke være et problem, har tænkt mig at bruge et skærmet 3 leder og føre VCC med ud til alle sensorer, fordele/ulemper

Til at regulere ventilen har jeg fra et tidligere projekt bygget en Belimo AM24-SR spjældmotor på, den køre på 24v dc og styres af et 0-10v signal.
> Skal jeg beholde den og konvertere 0-5v PWM til et analog 0-10v?
> Kunne jo også bygge en 0-180gr servomotor på i stedet, ville det være en fordel eller ulempe?

Jeg tænker at reguleringen skal forgå med en PID-regulering.
> Der er vel ikke noget i vejen for at kigge på ”kun en” DS18B20 i bus’en til PID-reguleringen?
> Måske Valget af PID-regulering har indflydelse på valget af servomotor kontra 0-10v styring?

Der er allerede en ting jeg ikke rigtig kan se mig ud af.
At lave en PID-regulering med et setpunkt på
Feks. 45gr ”tror” jeg nok jeg kan finde ud af. Men mangler en ide til hvordan jeg kan få det setpunkt til at ændre sig efter ude temperaturen.

Vh DanF

15
Andet lyd relateret / Sv: Trafo Yamaha
« Dato: December 18, 2019, 05:42:44 »
Hej..
startede med at skifte transitere, nogle lytter, driver IC og et par modstande da den havde taget det hele baglæns.. Og efter det var gjort, switch'ede den ikke ordenligt, og da den blev tilsluttet mainboard'et og fik belastning, der tog den transisterne igen. Nye på, og forstod ikke hvorfor den ikke switch'ede ordenligt, lige indtil vi fjernede trafoen.. vi målte den igennem og, ja ham som hjælper mig syntes ikke det havde ordenlige værdier.. 

Sider: [1] 2 3