Arduino bevriest bij aansturen electrische kogelkrane

Hallo,

Ik ben van plan om een arduino Uno te gebruiken om de filter- en verwarmingsinstallatie van mijn zwembad te regelen.
Ik gebruik 5x DS18B20 temperatuursensoren om

  • de buitentemperatuur te meten
  • de temperatuur van het water die uit zwembad naar filter gaat
  • de temperatuur van het water die terug naar het zwembad gaat
  • de temperatuur van de het water in de 2 zonneboilers,
    een RTC1307 klokje om de tijd bij te houden,
    2 lcd schermen om het een en ander te visualiseren,
    en ook nog een paar schakelaars om het geheel automatische te laten lopen of om manueel de pomp/kleppen te kunnen bedienen.

In bijgevoegde figuur kan je het schema zien met al de componenten die ik hiervoor gebruik.
Om het geheel te testen heb ik een klein test programma geschreven om te zien of alles naar behoren werkt.
Komt erop neer dat elk relais om beurt 20 sec actief gezet wordt en in plaats van de pomp heb ik een stopcontact met een ventilator.
Een teller ( teller+1 telkens een relais actief gaat) houdt bij hoelang het geheel al loopt.

En nu komt mijn probleem :
Het programma loopt perfect, uren/dagen aan een stuk zolang ik de electriche kogelkranen niet aan koppel.

Koppel ik de kogelkranen aan, dan loopt het programma een tijdje en dan “bevriest” de arduino…
De teller raakt meestal tot ergens tussen de 60 en 90.

De kogelkraan komt uit China
(nl.aliexpress.com/item/33009889540.html?spm=a2g0s.9042311.0.0.4ac54c4dtmXGWn),
werkt op 220V (±6W), heeft 3 aansluitdraden, 1 common en 2 stuurdraden voor open of dicht. Intern zitten 2 microswitches die de kring verbreken als de klep volledig open of toe is.

In het begin had ik de kogelkranen rechtstreeks aan de relaismodules met optocouplers gehangen omdat die gespecificeerd zijn voor 250V 10A, en alles (relais, lcd’s, tempsensors) werd gevoed door de arduino, maar toen raakte de teller niet boven de 20.

Om de arduino minder te belasten qua stroom en 220V gedeelte wat verder weg van de arduino te houden heb ik een aparte voeding van 5V en 24V ertussen gestoken.

Ik vermoed dat de kogelkranen tijdens het starten of stoppen een EM-puls afgeven en dat de arduino die ergens via een kabeltje oppikt en ‘bevriest’.

Iemand een idee hoe dit kan opgelost worden ?

bedankt !
Geert

test_versie03.ino (3.97 KB)

Zitten er wel blus diodes over die kranen?

Hallo,

Eerst en vooral, mijn kennis van electronica is zeer beperkt en dateert vanuit mijn schooltijd van een heeeel eindje geleden... dus als ik iets doms zeg, please forgive me

ik dacht dat blus diodes enkel van toepassing zijn op spoelen en solenoids die op gelijkstroom werken om de inductieve stroom te 'blussen'.
Die kogelkranen werken op 220V AC. Deze zomer heb ik een kapotte eens opgeschroefd en binnenin zit behalve een motor met grote reductie nog een klein printje met daarop 2 micro switchen en een condensator. De motoren zien er ook geen gelijkstroommotoren uit. Ik zag nergens borstels en een collector...

Ondertussen heb ik ook al ondervonden dat het beter werkt als ik de digitale pinnen (4 t.e.m.7) i.p.v. de analoge (A0 t.e.m. A3) gebruik om de relais aan te sturen.

mvg,
Geert

Hoi GeertM1970, welkom.

Dit is jouw schets van de schakeling:


Je gebruikt relaismodules om relaismodules aan te sturen.
Dat doe je omdat de eerste modules met 5 volt aangestuurd kunnen worden, en de 2e met 24 volt aangestuurd moeten worden.
Nico's vraag is geheel terecht, want je schakelt dus relais (= spoelen) met gelijkstroom
Hier (klik !) vind je de gegevens van je 24 volt relais modules.
Daarin is terug te vinden dat er een blusdiode antiparallel aan de spoel zit en een ompoolbeveiliging door een 2e diode in serie met het geheel.

Het verschil tussen het gebruik van de digitale pinnen tegenover de analoge pinnen, is dat je dan dus de bedrading anders hebt liggen.
Zorg er voor dat je draden zo kort mogelijk zijn, en dat de verschillende functies (gelijkstroom voeding, wisselstroomvoeding, signalen) zo weinig mogelijk samen lopen.
Wanneer de ene functie de andere moet kruisen, zorg er dan voor dat dat een haakse kruising is dus laat de draden niet parallel lopen.

De oranje kabelboom in je schets is dus niet het beste idee.
Wanneer er een grote afstand zit tussen je Arduino en en DIN rail met de voedingen en relais er op, gebruik dan een afgeschermde kabel per functie en eventueel twisted pairs.
Natuurlijk zorg je er dan ook voor dat die afscherming ook is aangesloten anders is 'ie zinloos.

Ik zie ook dat je een 5 volt voeding hebt.
Daarop heb je een step up converter gezet, zodat je je Arduino voedt uit 9 volt via de barrel-jack of via de VIN aansluiting.
Dus je pakt 5 volt, pompt 'm op, en dan weer naar beneden op het Arduino board.

Waarom ?

Je kunt de 5 volt ook op de 5 volt pin aansluiten, en als je aan de stabilitiet daarvan twijfelt, kun je er een extra condensator overheen zetten.

Als je antwoord is dat je de voeding van de Arduino los wil houden van die van de relaisboardjes, dan zul je daarvoor een galvanisch gescheiden converter moeten gebruiken.
Die zijn een heel pak kostbaarder (en daarmee het duurste onderdeel in het linker gedeelte van je schets, waarschijnlijk zelfs als je alle andere delen bij elkaar telt) dan de simpele step up converter die je krijgt als je alleen maar naar die 3 woorden zoekt bij de diverse leveranciers.

De diverse onderdelen allemaal voeden uit 1 grote voeding die dus apart naar de arduino gaat en naar de relaisbordjes.
die relais vragen erg veel stroom om te schakelen, vandaar ook de aparte voeding.
vaak zijn dat optocoupler relais die dus geen diode nodig hebben, er zit al een diode op die bordjes in het tweede circuit.
als de fout alleen optreedt als de klep zelf aangesloten is dan is het duidelijk een storing, maar dat lijkt me stug hoor.
en je hebt gelijk als je zegt dat er geen diodes in dat circuit zitten, door de condensator gaat de stroom eerst linksom en als je schakely rechtsom.
componenten los maken en kijken wanneer het fout gaat. dus stuk voor stuk doen.

Hallo allemaal,

MAS3:
De oranje kabelboom in je schets is dus niet het beste idee.
Wanneer er een grote afstand zit tussen je Arduino en en DIN rail met de voedingen en relais er op, gebruik dan een afgeschermde kabel per functie en eventueel twisted pairs.
Natuurlijk zorg je er dan ook voor dat die afscherming ook is aangesloten anders is 'ie zinloos.

Ik zie ook dat je een 5 volt voeding hebt.
Daarop heb je een step up converter gezet, zodat je je Arduino voedt uit 9 volt via de barrel-jack of via de VIN aansluiting.
Dus je pakt 5 volt, pompt 'm op, en dan weer naar beneden op het Arduino board.

Waarom ?

Als oranje kabelboom gebruik ik nu een oude Cat5e netwerkkabel. Ik denk niet dat hij afgeschermd is, en als hij afgeschermd is is hij allezins niet aangesloten... ik zal dit zeker eens uitproberen. Het is ook zo dat ik de kabels allemaal nu wat te lang genomen heb. Ik ben nog aan het testen in mijn werkplaats, de definitieve opstelling gaat pas gebeuren na de winter in de garage naast het zwembad.

De step up converter zit ertussen omdat ik ook nog de usb-poort wil gebruiken terwijl de arduino aan het lopen is. Ik meen ergens gelezen te hebben als je de arduino voedt via de Vin of 5V pin je dan niet meer via de USB poort kan aansluiten om programma's up te loaden.
En als je voedt via de barrel jack moet de spanning hoger zijn dan 5V...

shooter:
als de fout alleen optreedt als de klep zelf aangesloten is dan is het duidelijk een storing, maar dat lijkt me stug hoor.
en je hebt gelijk als je zegt dat er geen diodes in dat circuit zitten, door de condensator gaat de stroom eerst linksom en als je schakely rechtsom.
componenten los maken en kijken wanneer het fout gaat. dus stuk voor stuk doen.

Het gebeurt bij alle drie, willekeurig. Als de arduino bevriest, blijft het LCD schermen hun laatste stand tonen en daar kan ik zien welk een klep open of toe ging.
Ze komen wel uit China, misschien is de kwaliteit niet zo optimaal...

mvg,
Geert

nou die stepup kan er helemaal tussenuit.
Op de arduino zit juist weer een step down om alles wat hoger is dan 5 Volt weer naar 5 te zetten.
en ja jouw schema gaat fout omdat de relais gevoed worden uit de arduino en dat is teveel.
haal alle 5 Volt uit de meanwell voeding dat is het beste.
Bij de DS18B20 is de voeding op het derde pootje voorzien, je moet nog wel een weerstand zetten tussen de datalijn en de units volgens factsheet.
Jouw installatie zal op de computer prima werken want de voeding uit de USB is gewoon veel sterker, als je de PC los koppelt dan zul je in de problemen raken, vooral als er veel relais aan zijn.
het hele 24 Volt kun je missen want de relais zijn al galvanische scheiding.

Eerst en vooral aan iedereen hier een Voorspoedig 2020 met veel arduino plezier!

De relais worden nu al gevoed rechtstreeks van de Meanwell 5V via de JD-Vcc en GND pin, als ook de LCD displays, RTC clock en de tempsensors.
Het enige aan wat de Arduino stroom moet leveren is de led-kant van de Optocoupler.

Misschien kan de zwarte draad tussen de arduino en de relais weggelaten worden, de relays zijn actief-laag. Een kabel minder die storing kan oppikken.

En inderdaad, die hele 24V kan ik missen maar ik wil zover mogelijk met de 220V AC van de arduino blijven.

mvg,
Geert

dit is geen toevallige storing hoor, er is echt iets aan de hand of met je aanslutingen of met de software.
Alle 5 Volt dus ook de arduino op een voeding zetten, die step up ertussenuit, is gewoon niet nodig.
dan weet je ook gelijk zeker hoe de stroomloop is.
En de software laten zien wellicht doe je iets fout met toewijzing of zo.

Hoe zit het met de I2C bus ?
Kun je een lijst maken van alle pullup weerstanden op alle modules en heb je zelf nog pullup weerstanden toegevoegd ?
Kun je een lijst maken van alle I2C kabels, zoals naar de displays.
Wat voor kabels gebruik je voor de I2C bus ? Een platte kabel met SDA en SCL naast elkaar gaat vaak verkeerd door overspraak.
Meestal wordt 50cm als aangehouden als maximum lengte voor een I2C bus. Dus dat is 10cm voor de RTC en 20cm voor elk display.
Lopen de draden van de I2C bus langs de 24V of 220V draden ? Is er een probleem met de GND waarbij de stroom door een relais via de GND de I2C bus kan beïnvloeden ?