Kan Arduino 8 solenoïdes aansturen?

Ik weet heel weinig over Arduino en nog minder over het programmeren van een. Voordat ik een bord kocht en leerde programmeren, vroeg ik me af of mijn idee haalbaar is.

Ik wil de Arduino programmeren om achtereenvolgens de ene na de andere irrigatieklep te openen. Er zouden ongeveer acht 24 volt magneetventielen zijn. Elk zou ongeveer 15 minuten open moeten zijn, dan de volgende klep achtereenvolgens openen en uiteindelijk de vorige klep sluiten. Vergelijkbaar met een multi-zone irrigatiecontroller.

Ik zie dat ik misschien een transistor moet gebruiken in het stroomcircuit van de solenoïde. Maar het is mij niet duidelijk of de Arduino acht solenoïden kan regelen en zo ja, heeft elke solenoïde een eigen transistor nodig?

5
Zijn deze AC of DC-solenoïden? Ik zie dat veel irrigatiesolenoïden AC zijn.
toegevoegd de auteur Nick Gammon, de bron
is dit wat je echt wilt? het is anders dan irrigatie. Elke moet ongeveer 15 minuten open zijn, opent dan de volgende klep in volgorde en sluit ten slotte de vorige klep. .... de volgorde moet absoluut helder zijn, anders zal moeilijk blijken om een ​​programma te schrijven dat doet wat je wilt.
toegevoegd de auteur jsotola, de bron
Als dit een educatieve onderneming is: welkom. Als dit iets is dat u binnen een redelijke tijd moet doen, dan raad ik aan om bestaande irrigatieoplossingen te gebruiken. Er is veel tijd en geld geïnvesteerd om niet alleen het apparaat te programmeren, maar ook schakelmechanismen te selecteren en ervoor te zorgen dat ze verhard zijn voor het veld
toegevoegd de auteur Kyle, de bron

7 antwoord

Een Arduino kan (minstens) 8 apparaten besturen. In plaats van een transistor kan het veel gemakkelijker zijn om een ​​8-weg relaiscontroller te gebruiken, iets als dit:

8 relaismodule

Sluit alle 8 kleppen aan op de relais, u voedt het relais met een afzonderlijke bron voor de kleppen en sluit de pinnen aan op de Arduino.

Deze hebben opto-couplers, die een extra beveiliging geven tussen de kleppen en de Arduino.

8 relay module with opto couplers (note I just put the first entry I found, you might find better/cheaper similar items, e.g. at AliExpress for $4).

Zoals Andre al zei in een reactie hieronder, kun je een Arduino Mega gebruiken als je meer uitgangen nodig hebt. Of als je een uitdaging wilt, kun je een multiplexer-IC gebruiken zoals 74HC595 (genoeg voorbeelden te vinden met Arduino).

Voor het besturen van één relais met een Arduino zijn genoeg voorbeelden te vinden, voor 8 is het vergelijkbaar (gebruik gewoon 8 GPIO's), of een multiplexer IC.

10
toegevoegd
De keuze tussen een Uno en Mega gaat ook over flits/ram. Voor sommige toepassingen kan de Uno 2k ram een ​​probleem zijn.
toegevoegd de auteur user28569, de bron
Deze relaismodule heeft meestal een opto-coupler isolatie, maar controleer inderdaad.
toegevoegd de auteur user28569, de bron
Als je meer dan ik nodig hebt, gebruik dan gewoon een Arduino mega.
toegevoegd de auteur user28569, de bron
Waarom zou je een 70 IO Mega voorstellen om 8 outputs te besturen?
toegevoegd de auteur CrossRoads, de bron
@AndreCourchesne Bedankt voor de reacties, ik heb mijn antwoord dienovereenkomstig bijgewerkt.
toegevoegd de auteur Pat, de bron
@CrossRoads Alleen voor het geval hij meer output nodig heeft ... voor 8 is het niet nodig, maar ik weet uit ervaring dat projecten gemakkelijk kunnen groeien.
toegevoegd de auteur Pat, de bron
@ChadG Voor 10 euro zou ik zelf niet het risico nemen, ervan uitgaande dat de kleppen duurder zijn (of het risico niet irrigeren als dat het belangrijkste doel is).
toegevoegd de auteur Pat, de bron
@Chad Misschien zijn optocouplers overdreven, maar deze alles-in-één-modules zijn zo goedkoop, ik denk niet dat dit 'extra' een probleem is.
toegevoegd de auteur Pat, de bron
@MichelKeijzers Ik was het met je eens in het geval dat niet duidelijk was, ik zei dat fysieke isolatie (relais) beter was dan het besturen met een transistor. Opto-couplers op de relais hebben is leuk, maar waarschijnlijk overkill voor die kleine relais.
toegevoegd de auteur Chad G, de bron
@CrossRoads Aangezien het OP geen bord had gekocht en nog steeds zijn opties verkend (en niet zei of hij op een bepaald bord had gepland), suggereerde een Mega niet uit de pas. De kleppen alleen zijn 2/3 van de IO van een Uno, en het zou logisch zijn dat hij een soort van sensoren of handmatige bediening langs de weg zou willen toevoegen.
toegevoegd de auteur Chad G, de bron
Ja, afhankelijk van de hoeveelheid stroom, is het beter om wat fysieke iscolatie te hebben tussen uw 24V/hogere stroomzijde van de kleppen. en de 5v/low current kant van de arduino.
toegevoegd de auteur Chad G, de bron

De meeste irrigatiekleppen worden AC-gestuurd, gebruikelijk 24VAC bij ongeveer 250mA (verdubbel dat tot 500mA voor de inschakelstroom). De beste manier om deze te besturen is via een triac. Als u isolatie tussen uw controller en de klepspanning wilt, is een optokoppelstuk met een triac-uitgang de beste manier om te gaan. Een goede keus gezien de typische irrigatieklep is de Vishay VO3023: 5mA LED-ingangsstroom en 1A uitgangsstroom en slechts ongeveer $ 0,50 per eenheid. Triacs zijn behoorlijk zware apparaten en hebben geen bewegende delen zoals relais, dus ze zijn vrij betrouwbaar.

3
toegevoegd

Er zijn 2 draden naar een magneetventiel en 2 manieren om ze te bedienen:

1- Het sluiten van een relais zendt 24V uit, met retourdraden naar 0 volt.

2-24V Gaat altijd uit en een relais kan de retourdraad kortsluiten tot 0 volt.

Hoe dan ook, test 2 door de draden naar een besturingskaart te leiden en handmatig elektromagneten in te schakelen. Wanneer dat werkt, voeg Arduino relaisbesturing toe zoals andere voorstellen.

Het houden van de schakelaars zal helpen, als u een magneetventiel met de hand wilt bedienen OF u vermoedt dat u een gebroken relais/solenoïde heeft.

2
toegevoegd

Ja, je hebt iets nodig om 24 volt-solenoïdes aan te sturen, omdat de Arduino het niet alleen kan.

Mijn voorkeursmethode zou zijn om een ​​ULN2803-apparaat te gebruiken, waarmee je al die acht solenoïden kunt rijden (ervan uitgaande dat ze minder dan 500 mA of stroom verbruiken) en heeft ingebouwde bescherming tegen de spanningspiek wanneer de solenoïde uitschakelt.

http://www.ti.com/lit/ds/symlink/uln2803a. pdf

Deze apparaten zijn beschikbaar op eBay.

De software zal vrij eenvoudig zijn voor deze toepassing en moet ruim binnen de mogelijkheden vallen van iedereen die een Arduino-zelfstudie leest.

2
toegevoegd

Een Arduino-bord is slechts een microcontroller met het spul eromheen dat nodig is om het draaiende te houden. Door stufff bedoel ik denk aan de spanningsregelaar die het vermogen levert, de oscillator die de frequentie voor de controller levert, de GPIO-pins, enzovoort.

Dit is een zeer eenvoudige applicatie en zou gemakkelijk door een Arduino kunnen worden gedaan. De programmering hoeft niet snel te verlopen. Je doet maar één ding tegelijk.

Ik vond een 8-kanaals relaymodule die zou moeten doen wat je nodig hebt. Je zou er vier nodig hebben, maar ze zijn slechts ongeveer $ 11 per stuk. Ik heb dit apparaat nog nooit gebruikt, dus ik weet niet hoe goed het werkt, maar de specificaties lijken goed. Ze kunnen worden bestuurd door vrijwel elke computer met uitvoerpinnen die 5 volt hebben. Je zou dus een Arduino met 5V-uitgangsspelden moeten gebruiken.

Je zult waarschijnlijk meer outputpins nodig hebben dan een standaard Arduino, maar dat is eenvoudig genoeg om met de Mega-versie te doen.

1
toegevoegd
Dat maakt het nog eenvoudiger. De module die ik heb gekoppeld, kan 30 V DC aan 10 ampère aan. Het kan ook AC tot 250V aan. En nu is er maar één nodig.
toegevoegd de auteur Matt, de bron
het zijn geen 24 kleppen. het is 8 kleppen van 24V :-)
toegevoegd de auteur Juraj, de bron

Ja, Arduino kan acht transistors besturen.

Elke solenoïde heeft een transistor nodig.

Ideaal zou zijn om N-kanaal MOSFET's met logisch niveau te gebruiken die de Arduino 0/5V-uitgang direct kan aansturen. IRFL540 wordt veel genoemd, je kunt ze krijgen op digikey.com. Stuur de poort door een weerstand van 150 ohm, en heb een 10K-weerstand van de poort naar Gnd, zodat de transistor uit staat terwijl de Arduino wordt gereset (en de IO-pinnen keren allemaal terug naar ingangen).

Afhankelijk van de huidige trekkracht, kunt u mogelijk een schuifregister gebruiken met Open Drain-uitgangen. TPIC6C595, 100mA. TPIC6B595, 150mA. TPIC6595 en TPIC6A595 zijn zelfs onderdelen met een hogere stroomcapaciteit.

Voeg een diode toe met dezelfde stroomsterkte over de solenoïdespoel, kathode tot + 24V, zodat de stroomstoot die door de spoel wordt gegenereerd wanneer de transistor sluit, ergens moet verdwijnen. (stroom in een spoel wil blijven stromen als het magnetische veld in de spoel inzakt, het kan niet door de uitgezette transistor gaan, dus het gaat door de spoel en verdwijnt in de draadweerstand van de spoel).

1
toegevoegd
De solenoïden die ik onlangs voor mijn irrigatiesysteem installeerde, waren 24V AC-gevoed waardoor een MOSFET- of BJT-transistor niet geschikt zou zijn. Een Triac is in dit geval misschien beter.
toegevoegd de auteur Nick Gammon, de bron
Uw opmerking klopt niet. Arduino controlerende transistors is een primaire functie van wat het kan doen.
toegevoegd de auteur CrossRoads, de bron
dit is geen electronics.stackexchange
toegevoegd de auteur Juraj, de bron
waarom geen relaismodules gebruiken? of een andere actuator of sensor die je kunt gebruiken als module met ondersteunend circuit dat in de fabriek is gesoldeerd met zo kleine componenten? Wat kan hij meer gespecialiseerd maken voor de toepassing en vervolgens het van de plank relaisbord? de vragen zijn niet retorisch. Ik wil echt weten wat het nadeel is.
toegevoegd de auteur Juraj, de bron
@Juraj weten hoe het elektronische gedeelte van een systeem aan te sluiten op een Arduino is een integraal onderdeel van het kiezen/gebruiken van Arduino-apparaten. Waarom denk je dat het misschien buiten het onderwerp van deze SE lag?
toegevoegd de auteur ammmaday, de bron

Een alternatieve methode is om een ​​I2c-poortuitbreider te gebruiken, zoals een PCF8574. Deze zijn beschikbaar als break-outborden. Door een ander I2C-adres te selecteren op elke breakout-kaart kunnen maximaal 64 relais worden beheerd met behulp van opto-geïsoleerde relaismodules. Dus 64 0puts of ingangen met slechts twee Arduino-pinnen.

0
toegevoegd
Je hebt dat nauwelijks voor 8 nodig
toegevoegd de auteur rossp, de bron