Как подключить 12 вольтовое реле к ардуино

от admin

Arduino.ru

Купил я реле для дуны на 12 вольт.Подал отдельное питание 12 вольт.Землю от бп подсоеденил к плате и к реле.Как ставлю контакт IN к любой из ноги,слышу как реле щелкает(то есть оно открывается),но я даже не написал скетч.Кладу к любой ножке дуны и реле щелкает.Написал самый простой скетч:

Но ничего не происходит.Как сказал реле щелкает даже без скетча,если подключить к любой ноге дуны.При касании ножки IN пальцем,вижу как диод немного моргает.Реле брак или я что-то делаю не так?

  • Войдите на сайт для отправки комментариев

  • Войдите на сайт для отправки комментариев

ЕвгенийП аватар

я что-то делаю не так?

В случае с ногами без скетча и пальцем — нормальное поведение — не суйте куда попало.

В случае со скетчем, да, делаете не так. Начнём с того, что скетч мало написать, его ещё надо загрузить в контроллер. Вы этого не сделали по очень простой причине — он у Вас не компилируется. Изучите, исправьте первую строку Вашей программы, загрузите скетч в контроллер и будет Вам много счастья.

  • Войдите на сайт для отправки комментариев

Упс,не тот скетч загрузил сюда.Скетч в дуне верный.Это я дурак.

Дело не в define(правильный вариант #define REL 8).Пробовал и напрямую писать номер контактов.На сколько я знаю через цифровой контакт идет 1 и 0(т.е 1-это 5 вольт,0-это 0).Мультиметром проверил,что через 8 контакт выходит 5 вольт на 2 секунды и потом на 2 секунды выключается.Значит скетч верный.Думаю,что-то с реле.

  • Войдите на сайт для отправки комментариев

xDriver аватар

земля с дуни на плату реле точно есть ?

  • Войдите на сайт для отправки комментариев

Не художник я в пейнт.Сделал я вот так

  • Войдите на сайт для отправки комментариев

xDriver аватар

фото это не рисунок !

реле другое, порядок выводов непонятен, управление на 3 ноге вместо 8

ну как тут прикажите помогать?

  • Войдите на сайт для отправки комментариев

trembo аватар

VCC — 12 Вольт
GND — земля блока питания и Ардуины.
IN — вход ( к выходу Ардуины).
А у вас что?

  • Войдите на сайт для отправки комментариев

Картинка с инета.Редактировал быстро.Нога стоит 8(на картинке просто 3)

VCC к БП 12 вольт и от него же запитывается ардуино

GND беру от бп и от бп подключен к ардуино

IN на 8 ноге(на картинке просто 3,а в скетче 8)

  • Войдите на сайт для отправки комментариев

xDriver аватар

у вас телефон с камерой ? ну дык приложите фото своего художества.

  • Войдите на сайт для отправки комментариев

ЕвгенийП аватар

  • Войдите на сайт для отправки комментариев

xDriver аватар

Ну дык он же в «отпуске» 🙂

  • Войдите на сайт для отправки комментариев

  • Войдите на сайт для отправки комментариев

ЕвгенийП аватар

Картинка с инета.

Вас по-русски просили фото, а не картинку с Инета. На порнхабе знаете сколько картинок? И что их все сюда тащить? Мы же просим ВАШЕ изделие которое не работает, а не с инета, где у автора работает!

Упс,не тот скетч загрузил сюда.

Может Вы всё-таки ТОТ покажете? Или нам на слово верить, что у Вас «всё правильно, только не работает«?

Вы посмотрите на себя со стороны: мужики, у меня что-то не работает. Вот Вам левый скетч и картинко не имеющая отношения к делу с левыми пинами и не теми соединениями — помогайте!

  • Войдите на сайт для отправки комментариев
  • Войдите на сайт для отправки комментариев

ЕвгенийП аватар

Светодаоды светстя, но реле не щёлкает — так?

Замечательно. От чего всё это великолепие питается?

  • Войдите на сайт для отправки комментариев

xDriver аватар

подключено все правильно, желтый провод от 8 вывода отсоедините и на — (землю)

реле должно включится

  • Войдите на сайт для отправки комментариев

Да оно щелкает,когда на землю замыкаешь.

  • Войдите на сайт для отправки комментариев

xDriver аватар

повесте его на 13 пин, и скеч поправте

на пладе дуни должен заморгать светодиод

  • Войдите на сайт для отправки комментариев

ЕвгенийП аватар

Мультиметром проверил,что через 8 контакт выходит 5 вольт на 2 секунды и потом на 2 секунды выключается.

И когда «выключается (т.е. 0 там) реле не щёлкает? Так не бывает. 0 — эт отоже самое, что на землю завести.

Шевелите все «земляные провода». Вопробуйте в другие дырки воткнуть. Похоже, где-то неконтакт на макетке

И да, я спросил Вас что за БП. Ток у него какой? Хотя, 100мА-то точно есть, а больше не надо. Так что ищите неконтакт.

  • Войдите на сайт для отправки комментариев

xDriver аватар

не ну если щелкает и не тухнет дуня да и сам шилд, тока там полюбасу хватает

  • Войдите на сайт для отправки комментариев

xDriver аватар

так, мой ХШ подсказывает что есть проблемы с заливкой скеча

а был ли мальчик ?

  • Войдите на сайт для отправки комментариев

Диод моргает,а реле не щелкает.Один щелчок есть когда отключаешь питание от ардуино и снова врубаешь

  • Войдите на сайт для отправки комментариев

ЕвгенийП аватар

Какой диод? На плате Ардуино? Значит 100 пудов — ищите соплю в проводах. У меня как-то такой проводок вообще не контачил. Ищите.

  • Войдите на сайт для отправки комментариев

Не знаю почему,но убрал я землю БП от ардуины,подсоединил к компу,оставил контакт VIN 12 вольт и он начал щелкать

  • Войдите на сайт для отправки комментариев

xDriver аватар

я ничего не понимаю :(((

  • Войдите на сайт для отправки комментариев

  • Войдите на сайт для отправки комментариев

ЕвгенийП аватар

Ээээ. Можете замерять ток от пина ардуины к пину модуля реле. В обоих случаях (и включено, и выключено)?

  • Войдите на сайт для отправки комментариев

xDriver аватар

если вы подсоединяете к компу, дуня питается от него и контакт VIN 12 вольт желательно убрать а землю оставить

а блок питания нам всетаки покажите ?

  • Войдите на сайт для отправки комментариев

  • Войдите на сайт для отправки комментариев

xDriver аватар

остается все разобрать, и собрать заново, у меня больше мыслей нет.

  • Войдите на сайт для отправки комментариев

наткнулся на такие же модули. Суть проблемы — они срабатывают и от низкого уровня и от высокого. Если вход оставить в воздухе — выключаются. Такие же, но на 5 вольт работают нормально (на самом реле написано Low level trigger), т.е. включаются от низкого уровня, от высокого (+5) выключаются. Транзистор в обоих модулях одинаковый, 2TY (pnp), отличия только в резисторах, в 12В версии стоят все по 2к, в 5-вольтовой 1к. Схема элементарная — перед входом базы резистор, остальные 2 резистора на светодиоды. Диод впаян для гашения обратного импульса катушки.

И как назло нет в наличии ни одного оптронного модуля, куча таких и все ведут себя одинаково. Придется впоминать, как работает транзистор, чтобы однозначно заставить его запираться.

  • Войдите на сайт для отправки комментариев

ua6em аватар

  • Войдите на сайт для отправки комментариев

наткнулся на такие же модули. Суть проблемы — они срабатывают и от низкого уровня и от высокого.

И как назло нет в наличии ни одного оптронного модуля, куча таких и все ведут себя одинаково. Придется впоминать, как работает транзистор, чтобы однозначно заставить его запираться.

  • Войдите на сайт для отправки комментариев

ua6em аватар

Да была уже тема с PNP транзистором

  • Войдите на сайт для отправки комментариев

Да была уже тема с PNP транзистором

нет схемы конкретного модуля — нет и объекта обсуждения.

  • Войдите на сайт для отправки комментариев

всех приветствую, схожий вопрос, не вижу смысла создавать тему заново, задам тут

модуль на 4 реле, на кой то бес заказал 12v но уже есть и хотелось бы его реализовать, так вот подключим про мини от блока 5 v, а реле от акума 12v , реле срабатывают от низкого уровня(проверял подав питание 12v на реле, от этого же источника пи тания подаю +12 не включаются, а от -12, загораются светодиоды по щелчку понятно включилось реле) так вот про мини даёт высокий уровень сигнала (светодиод горит реле включено), если же низкий уровень сигнала , реле все так же включено , но светодиод на модуле реле горит ярче, добиться выключения реле не получается, есть подозрение чт овысокий уровень сигнала +5 v что может сгенерировать про мини , для этого блока реле считается всё таки нижким и оно срабатывает, но вроде тоже не вяжется с логикой в голове, хоть и в характеристиках про мини на сайте алика написано питание 3.3-12v запитать от одного источника питания страшно, она у меня осталась одна для экспериментов и лишиться ее не хотелось бы, и что т омне кажется что нет разницы от одного источника питания или от разных, когда они связаны в едино через разные пины GND на плате про мини, если есть какие то мыли или точный ответ , что работать не будет и подойдут только для контроллера у которого управляющий сигнал высокого уровня +12 v, буду благодарен

фото блока реле ниже надеюсь приложиться, фото как подключено будет не понятно из за фарша проводов, но подключение стандарт 5v на про мини, они же идут на сенсоры,12v на релейный модуль, GND все в кучу соединены, если ставить модуль реле на 5 v то всё работает

Connecting a 12V Relay to Arduino

license

homunkoloss

By homunkoloss Follow

How to make your GNOME Desktop even cooler

To connect a 12V relay to the Arduino you need the following things:

— 1 diode for example 1N4007

— 1 NPN transistor for example 2N2222 (in the US) or BC548 (in Europe)

— 1 relay for example one with coil voltage 12V and switching voltage 125VAC/10 A

Step 1: Measure the Coil Resistance

We are going to measure the coil resistance to calculate the current.

First we must find the coil:
On some relays the pins are labeled so you can just measure at pin 2 & 5.

Otherwise you have to measure at every pin:

Between two pins you should have between 100 and 10 000 Ohm. Remember that value. That are the two terminals of the coil. The coil is not polarized so its not important which one goes to V+ or GND.

If you have found those there are only three left. Between two should be a connection (if you measure a few Ohm its okay but everything above 50Ohm is too much). One of them is NC and one is COM. To find out which is which let one probe connected and connect the other to the pin that’s left over. If you connect the coil to 12V DC it should make a clicking noise. If your multimeter now shows a low resistance you have found COM and NO. The one probe you didn’t move is COM the other is NO.

Step 2: Calculate How Much Current Will Flow

The formula you need is a simple one:

(maybe people in England or the US know the Voltage as «V» but I will refer to it as «U» as we call it in here)

OK, but we want the current «I» right ? So just divide through the Resistance «R».

For my relay that would be:

I = 12V / 400Ohm
I = 0.03 A => 30 mA (That is Ic)

The Arduino can handle up to 20mA but its better to use a transistor even if your current is only 20mA. So for 30mA you definitely need one.

Step 3: Choose Your Transistor

First find the Datasheet of your transistor. For example search for «2N2222 datasheet».

Your transistor should comply to the following things:

— It has to be NPN not PNP !!

— Ic should be bigger than the value you calculated in step 2

— Vceo should be bigger than the supply voltage

Step 4: Calculating R1

You can find the value of hfe in your datasheet:
Mine says for BC548 its 75 at 10mA at 10V. Its not very precise cause its very difficult to build transistor with a accurate hfe.

We know hfe and Ic so lets calculate Ib:

Ib = 0.03 A / 75
Ib = 0.0004 A => 0.4 mA

Due to Ohms Law:

R1 = U / Ib
R1 = 5V / 0.0004 A
R1 = 12500 Ohm
This is not very accurate to so we use 10kOhm.

Step 5: Choosing Your Diode

The diode is needed cause the voltage will rise high if you suddenly change the voltage at the inductor. The formula for the voltage is:

Читать:
Почему кикстартер бьет в ногу

U_L = — L * delta i/delta t

So theoretically if delta t equals zero U will be infinite.

But due to the minus in front you can add a diode in the «false direction» parallel to the relay. So the current can flow till its zero so the voltage is also zero.

Step 6: The Schematic

Finally here is the schematic:

Step 7: Assembling the Circuit

Your datasheet says which pins are E, B and C.
Before you connect your Arduino connect a 4.5V Batteries negative terminal to GND and its positive terminal to R1. The relay should make a clicking noise if not, check your circuit.

Step 8: The Program

The test program is just an edited version of the «Blink» example:

  • relaytest |
  • Author: gandalfsz |
  • Date: 18 Jan 2009 |
  • Function: Toggles Pin 13 every 10 Seconds |

void setup()
<
pinMode(outPin, OUTPUT);
>

void loop()
<
digitalWrite(outPin, HIGH);
delay(10000);
digitalWrite(outPin, LOW);
delay(10000);
>

3 People Made This Project!

  • Connecting a 12V Relay to Arduino

Did you make this project? Share it with us!

Recommendations

A Minimalist LED Lamp

Rotating LED Display

AI-assisted Pipeline Diagnostics and Inspection W/ MmWave

The Solar Powered Super Cool Social Networking Hat - Spirit of Invention: National Archives UK

Wear It Contest

Project-Based Learning Contest

Make it Fly Student Design Challenge

71 Comments

AvinashS103

i am using 2n2222a transistor base is connected to digital pin my 4.2v battery negative terminal is connected to collector and positive terminal is connected to analog pin .
when i make digital write high its showing correct voltage of battery but when i making low it is showing some jiter value but it should shoe zero pls tell me the solution

1413

Reply 4 years ago

Because when transistor is OFF, analog pin is left floating as no current is drawn from the battery. So it will pickup stray emf around you. Connect a resistor (any value from 10k to 1M) from analog pin to ground to fix that. The downside is you drain battery a little bit more when checking battery, but nothing to worry since it drain only 4.2V/10k = 0.42mA or 17mW.

AmineS25

Question 5 years ago

i found this and i am confused

Croquis.pngdownload.png

ranjan56

why is the 2n2222 transistor used? can we connect the output pin directly to relay?

StevenB38

Reply 6 years ago

An arduino can only supply so much current, usually around 20mA, enough to drive an LED. Any circuit that needs more than 20mA will need some sort of current amplifier or buffer hence the transistor.

taiphungha

Reply 6 years ago

you need more resistor for down current, why you choose transistor instead of add more resistor?

ktrussell

Reply 5 years ago

The relay requires 30mA to pull-in. If you drove the relay directly from the Arduino pin and simply added resistors to limit the current down to 20mA, you would likely not have reliable operation (or no operation) of the relay. We use the transistor as a switch to switch the 12V supply to the relay coil with as much current as needed (limited by the relay coil resistance).

kizzar

Question 5 years ago on Step 4

What about the Vbe drop usually around 0.7 ?

ktrussell

Answer 5 years ago

You are correct to point out that Vbe theoretically should be accounted for so that his equation for R1 would be:

R1 = (5V-0.7V) / 0.0004 A

As homunkoloss points out, though, hfe is not very precise, so we are dealing with an approximation. The 0.7V doesn’t make much difference. I usually throw it in, though. Note that including the 0.7V actually brings down R1 closer to the value homunkoloss chose (10k). I expect he went down to that value knowing that a lower value would be closer to the correct choice had he included Vbe.

OsvaldoR13

I used the nte123a transistor (NTE equivalent of 2n2222a) and it would not work for me. Datasheet for it gives the same hfe value of 75 @ 10ma @ 10v. But what did work was using the hfe value on the package (200) instead and recalculating. So I ended up using a 33k resistor

chemgreec.

Hello everyone, I am ne wto electronics and I puzzled by somethign at the moment. I want to use my arduino to latch on a relay. I use a 9v battery to power the relay and I want to control it with a 5v arduino mini pro. So WHile i was building the circuit(similar to this but with a latch on addition) the trigger from the arduino was not working. I realized that I have not connected the arduino ground to the battery ground. But then I was really confused. What would the concequence be if you connect two seperate arbitrary grounds? What if their relative state is different and there is flow of current from one to the other? I made an hydraulic parallel to understand that and I concluded that we should not be doing that at all. Let me explain: Imagine having two water tanks and we know that one has 9 metres of water in it and the other one has 3 meters of water in it. BUT we dont know at which height the tanks are..so if you just connect their bottoms together we could potentialy blow them up imagine if one tank with 3m in it is lets say 1km up on a mountain and the other tank with 9m of water in it is at sea level. if you join their bottoms the flow would be so high that would crash the bottom tank!! How do we avoid this with circuits that have different voltages? PLease help it really bugs me!!

StevenB38

Reply 6 years ago

Think about the voltages that you are using as potential differences i.e the arduino is outputting 5V, which is a potential difference between its output pin and its ground line. Your relay needs a potential difference of 5V on its input line relative to its ground line in order to trigger.

If the grounds are not connected then these differences are effectively floating, so 5V from the arduino will not be enough to drive the relay as the potential differences are wrong.

Using your tank analogy the 9m tank cannot flow into the 3m tank if the bases are not on the same level.

hkfanatic

Hi! Thanks for posting this—it’s a huge help for beginners like me.

I’ve been researching on connecting relays to the Arduino and all of the examples I found either used a separate power supply for the 12-Volt relay (using a 9-volt battery) and the Arduino (using a USB cable) OR, the Arduino board itself supplies the power but the relay is only 5 Volts.

If I may ask, would it be possible to use only 1 power supply for the Arduino (via the DC crown jack) and three (3) 12-Volt relays (only 1 relay will operate at a given time)?

hkfanatic

Hi. Thanks for posting this—it’s a huge help for beginners like me.

I’ve been researching on connecting relays with the Arduino and the examples I found either uses a separate power supply for the 12-Volt relay (e.g. 9-Volt battery) and the Arduino (USB cable) OR the Arduino board itself supplies the power but the relay is a 5-Volt one.

If I may ask, would it be possible to use only 1 power supply (e.g. 12-Volts) to power both the Arduino (via the DC Crown Socket) and the 12-Volt relay (e.g. parallel mode)?

chintans

Can some1 post diagram on how to use the relay with arduino with 12V 1A power supply to Arduino and no different power source for the relay.

Also note the protection diode is needed.
I have made the relay work but not with the protection diode.
And engineers, please, in the diagram please display from with pin to which pin the diode is used for newbies like me.

FrancescP2

Reply 6 years ago

The PIN’s are correctly detailed on the diagram, your problem aren’t the PIN’s, your problem is that you don’t know how to read de diagram to do the correct connections.

Only 3 PIN’s to be connected, and only 1 goes to Arduino, the Digital Port 13, the rest of the PIN’s was connected like the blue connectors on this video: https://www.youtube.com/watch?v=S-QddCWt5l4

exzibit29

I have a relay that has 12V DC spule, but its 6A/250VAC, can use it this circuit without changing other components? Thanks in advance.

mayur.phadte

I used a 2N4401 and the transistor blew up. Checked all connections, could the transistor be at fault here ? Was an old one.

skumar231

Hi i make a video how to connect and use relay module with arduino uno.

codes and diagram is in link of video

ams31

The most commonly used 12 Volt cube relay has 400ohm coil resistance. So the current required is 12V/400 = 30ma . But this is the holding current the pull in current is a bit larger than that so you normally design with assumption that current required atleast 1.5 times of calculated current.

You should use 1N4148 diode instead of 1N4007 as 4148 is a fast switching diode with maximum forward current of 300ma.

If you have relays with lesser coil resistance so the current required for relay is more then you can add a pull up resistor to the arduino pin. A pull up resistor is basically a resistor between the controller pin and the Vcc. If you use pullup resistor you can use the above relay driver circuit for interfacing with any microcontroller

Подключение реле к Arduino

Выводы микроконтроллера, установленного в Arduino, способны выдавать совсем небольшой ток – до 20 мА, не говоря уж про напряжение, которое не превышает 5 В.

С помощью транзисторов можно поднять этот порог до десятка-другого ампер и до 100 В постоянного напряжения, но как поступить, если необходимо подключать переменное напряжение относительно большого тока, да ещё и безопасно для Arduino? Решение есть – реле!

Для реализации проекта из этой статьи нам потребуются следующие компоненты:

Краткий обзор модуля

Стандартное реле для Arduino представляет собой законченный модуль, для коммутации нагрузки через который необходимо лишь подключить разрыв силового провода в силовую винтовую гребёнку.

На плате установлены светодиоды-индикаторы, показывающие текущее состояние катушки, и необходимая схема согласования (на биполярном транзисторе), чтобы модуль корректно отрабатывал замыкание и размыкание.

Максимальное напряжение, коммутируемое реле – 250В, ток – до 10А.

Подключение реле к Arduino

Схема подключения к Arduino

Реле, установленное на модуле, имеет 2 типа контактов, к которым подключается коммутируемая нагрузка – это нормально-открытый и нормально-закрытый. NO-контакт разомкнут, пока на реле не приходит управляющий сигнал, и замкнут, когда логический уровень сигнала – высокий. NC-контакт – наоборот, размыкается при подаче сигнала.

Подключение реле к Arduino

Подключение реле к Arduino

Чтобы правильно подключить нагрузку, один провод идёт от источника питания непосредственно к ней, другой – к контакту COM на реле (средний в винтовом клеммнике). На нагрузку второй провод выходит или с NO-, или с NC-контакта в зависимости от задачи.

Для подключения управляющего сигнала нужно 3 провода Dupont – земля (GND), +5В (Vcc) и сигнал (который можно подключить на любую ногу Arduino).

Подключение реле к Arduino

Работа с модулем в Arduino IDE

Реле управляется как любая маломощная нагрузка, подключаемая к пинам Arduino – например, как тот же светодиод. Если вы подключите реле к 13 пину и загрузите Blink, то услышите щелчки переключения реле через каждую секунду. Не забудьте сконфигурировать ногу на выход функцией pinMode(номер пина, OUTPUT); , иначе работать конструкция не будет:

Реле крайне не рекомендуется переключать с помощью ШИМа на любых частотах – практически единственный параметр, определяющий его ресурс – количество переключений. После его окончания реле начнёт «залипать», переключаться медленнее и с трудом, либо же не переключаться вовсе. Чем чаще вы «дёргаете» реле, тем меньше у него срок службы.

Надеюсь, теперь вы понимаете, как работать с реле. Помните, что не стоит перегружать его токами, большими чем половина максимального (то есть больше, чем 5А) в течение длительного времени. Тогда реле прослужит долго! Удачи вам в ваших проектах!

Похожие публикации