Otázka:
Jak (snadno) napájím 5 V 3kolíkový ventilátor?
Arseni Mourzenko
2018-06-30 00:18:40 UTC
view on stackexchange narkive permalink

Mám 3kolíkový ventilátor 5 V. Chci být schopen:

  1. napájet jej z desky Arduino Uno nebo Seeeduino Lotus a v ideálním případě;
  2. být schopen změnit její rychlost.

Většina zdrojů, které najdu na webu, vysvětluje, jak připojit standardní 12 V ventilátor, a navíc to komplikuje vysvětlením, jak dosáhnout rychlosti ventilátoru nebo ovládat více ventilátorů. To je pro mě příliš složité.

Pokud chápu správně, nemohu jen připojit ventilátor k analogovým výstupním pinům, protože absolutní maximální výkon na pin je 40 mA (doporučeno: 20 mA) zatímco ventilátor používá 100 mA.

Místo toho musím nějakým způsobem připojit dva ze tří vývodů ventilátoru k externímu napájení a použít třetí kolík k ovládání rychlosti. Mám použít zem a 5 V piny umístěné na levé straně desky nad ANALOG IN?

Pokud ne, jaké jsou mé další možnosti? Deska je napájena kabelem USB a nevidím způsob, jak rozdělit energii na této úrovni mezi desku a jiné zařízení, aniž by hrozilo poškození desky.

Dva odpovědi:
Greenonline
2018-06-30 00:43:04 UTC
view on stackexchange narkive permalink

Máte pravdu ve svém předpokladu, že nemůžete napájet ventilátor z Arduina přímo.

Použijte tranzistor, například 2N2222 nebo BC548, který je přepíná Arduino, pomocí jednoduchý kolík, aby ventilátor poskytoval dostatečný proud.

Například tento jednoduchý obvod (všimněte si, že zdroj 12V by ve vašem případě byl 5V):

Transistor powering a fan

Zdroj: Řízení ventilátoru počítače - tranzistor s nebo bez optočlenu? 1

Jak však zdůraznil chrisl, váš fanoušek má tři piny a ne dva. Výše uvedený obvod bude fungovat pouze pro dvoukolíkový ventilátor. Ve vašem případě z důvodů uvedených v odpovědi Chrisl, jeden pin jde na napájení 5 V, jeden na GND a třetí jde přímo na Arduino - řekněme pin 3. Pak můžete použít kód níže.

Za předpokladu, že je ventilátor připojen ke kolíku 3, bude kód vypadat takto:

  const int fan = 3; void setup ( ) {pinMode (fan, OUTPUT);} void loop () {int fanSpeed ​​= 255; analogWrite (fan, fanSpeed);}  

Tím se ventilátor spustí na plný proud. Poté však můžete svůj kód upravit, abyste změnili hodnotu fanSpeed.

Dále přečtením analogového vstupního kolíku (předpokládejme, že potenciometr visí na A0 ) pomocí analogRead () můžete použít hodnotu pro čtení k přímé úpravě hodnoty fanSpeed ​​ (dělením hodnoty vrácené z analogRead () čtyřmi 2 a následným odesláním do analogWrite () , například takto:

  int potPin = A0; fanSpeed = analogRead (potPin) / 4; analogWrite (fan, fanSpeed);  

nebo ještě stručněji: fanSpeed ​​ zcela odstraňte a použijte:

  int potPin = A0; analogWrite (fan, analogRead (potPin) / 4);  

1 Upozorňujeme, že kód v odkazu je nesprávný, protože se pokouší pomocí analogWrite () zapsat hodnoty větší než 255. Jak je uvedeno zde, Arduino reference - analogWrite (), analogWrite () přebírá hodnoty 0-255 , zatímco analogRead () vrací hodnoty 0-1023

2 Viz funkci loop () v Arduino reference - analogWrite () pro další příklad.

OP má 3kolíkový ventilátor pro 5V, ne 12V. Třetí kolík je již interně připojen k ovladači (pravděpodobně MOSFET), který lze ovládat pomocí PWM. Zde tedy není potřeba extra MOSFET.
@chrisl - ach ano, máte úplnou pravdu. Přečetl jsem otázku příliš rychle. Vaše odpověď je správnější. Upravím svůj, abych si všiml, že napětí je 5 a ne 12V. dík
Omlouváme se, ale příkaz zpět>.
@chrisl - hm? Bože Teď jsem trochu zaneprázdněn, abych to pochopil. Obnovte prosím odpověď, protože je to pravděpodobně užitečné, a přesto si ji chci znovu přečíst. V případě potřeby jej můžete kdykoli odstranit. Měli jste pravdu s výstupem `255` a stejně ne` 1023`. :-)
fyi: Takoví fanoušci jsou často bezkartáčoví, kteří již mají interní ovladač „pwm“. Nelze je ovládat externím signálem pwm, nebo alespoň je jejich rychlost trochu nestabilní / nepředvídatelná.
@ctrl-d - ok díky. Znamená to, že řídí svou vlastní rychlost? To znamená, že stačí připojit napájení a zem a nechat to udělat zbytek? TBH by se zdálo, že bez jasné specifikace (kterou odkaz na produkt neposkytuje) je docela obtížné to zjistit.
Ano, řídí svou vlastní rychlost tím, že mají Hallovy senzory, které detekují polohu rotoru a přivedou napětí na konkrétní cívku ve správný čas. Pokud je váš signál pwm v daném okamžiku nízký, nefunguje to. Otáčky lze řídit pomocí analogového napětí v těchto motorech.
chrisl
2018-06-30 02:36:44 UTC
view on stackexchange narkive permalink

EDIT:

Jak VE7JRO zdůraznil, ventilátor, který používáte, nemá nativní PWM pin. Třetí kolík ve skutečnosti hlásí zpětné otáčky ventilátoru. Musíte tedy sledovat odpověď Greenonline pomocí MOSFET. Prozatím zde nechám svou odpověď pro referenci. Pokud budu chtít, později jej smažu.


3kolíkový ventilátor je ovládán jako servo. Proud pro skutečné řízení motoru protéká napájecími kolíky (5 V a uzemněním). Třetí kolík přijímá signál PWM (modulace šířky impulzu) k určení požadované rychlosti ventilátoru. Jedná se pouze o signální vedení, pouze velmi malý tok proudu, aby nedošlo k poškození pinu Arduinos. Ovladač motoru je tedy již zahrnut.

Na straně programování můžete použít analogWrite () , který vydává signál PWM na jednom z pinů podporujících PWM. Rychlost ventilátoru je řízena pracovním cyklem signálu. 100% (hodnota 255 pro UNO) znamená plnou rychlost, 0% (hodnota 0) zastaví motor.

O napájení: Protože váš ventilátor používá 100 mA při plné rychlosti (předpokládám), je stále je možné jej napájet přes 5V pin Arduina. Můžete přes něj získat přibližně 500 mA (včetně proudu pro samotné Arduino). Při napájení vyšších proudů přes USB konektor bude polyfuse smažena. Toto je hodnota pro UNO r3. Nano může dodávat pouze 200 mA, protože dioda bude smažená.

Takže buďte opatrní, kolik proudu odebíráte z 5V pinu Arduina. Nebo pokud máte vyšší proudové požadavky, musíte k napájení ventilátoru dodávat další napětí.

3. pin na tomto konkrétním ventilátoru může být signál rychlosti otáček, nikoli vstupní signál PWM. Viz: https://noctua.at/en/support/faq/general-faqs/category/Fans a hledejte „Jakou konfiguraci pinů používají fanoušci Noctua 5V?“ na stránce.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 4.0, pod kterou je distribuován.
Loading...