Чи можна зробити нормальний шпильки діяти, як наземні шпильки?

Так що саме я намагаюся зробити, це керувати двигуном і мати можливість повернути його в обох напрямках без додаткових деталей.

Так що, якщо hmp був на (плюс полюс) і Хмм (мінус полюс) діяв як земля, двигун повинен почати повертатися вправо.

Але якщо hmp діяв у цьому випадку як земля і Хмм, як плюс полюс він повинен почати поворот в іншу сторону.

Я знаю, що це, ймовірно, не буде працювати. Я просто експериментую.

int Hmp=12;//the plus pole
int Hmm=11;//the minus pole

while (HR=0 || Sr > Sl+300) { 
  pinMode(Hmp, OUTPUT);
  digitalWrite(Hmp, HIGH);
  pinMode(Hmm, INPUT);
}

while (HR=1 || Sl > Sr+300) {
  pinMode(Hmp, INPUT);
  pinMode(Hmm, OUTPUT);
  digitalWrite(Hmm, HIGH); 
}
4
@dannyf - ні, він не працюватиме, і користувач уже заявив, що не працює . Це пояснюється тим, що хоча топологічно подібне до половинного мосту FET, вихідні драйвери на мікросхемі не відповідають завданням керування двигуном. Ви розробили дуже погану звичку розміщувати невідповідність і, як наслідок, вводить в оману такі речі, хоча, на щастя, принаймні на цей раз ви не зловживали формою відповіді.
додано Автор rossp, джерело
"Я знаю, що це, ймовірно, не буде працювати". він працюватиме. це називається комутацією з низькою стороною. більшість двонаправлених двигунів частково керуються таким чином, наприклад.
додано Автор dannyf, джерело

5 Відповіді

Ні, це не спрацює - ще гірше, ви ризикуєте смажити свій Arduino - з наступних причин:

  1. Накопичувачі даних Arduino не можуть виходити (ні раковина) достатньою для роботи.

  2. Індуктивний віддача електродвигуна може підсмажити шпильки Arduino.

Правильний спосіб зробити те, що ви хочете зробити, це використання H-моста, контрольованого за допомогою наборів даних Arduino . Є багато модулів драйверів двигуна PCB для Arduino (більшість з них засновані на неефективному L298 драйвера IC, які ви повинні ігнорувати і замість цього дивитися на тих, які засновані на TB6612FNG драйвер IC або аналогічні, тому що це було б набагато краще рішення), що реалізувати цю функцію.

10
додано
L298 і L293 є дуже застарілими пристроями з високими втратами, яких найкраще уникати. Особливо в застосованому від батареї додатку, одна клітина батарейного блоку піде в основному на підживлення втрат цих мікросхем водія, а не на поворот двигуна. Вони дійсно повинні перестати згадуватися за замовчуванням - замість цього використовуйте FET рішення, наприклад, TB6612FNG замінює L29x на кращі моторні щити.
додано Автор rossp, джерело
Дякуємо за ваш коментар, @ChrisStratton. Я погоджуюся з вами, і я буду відповідати відповідним чином.
додано Автор Arperum, джерело

I just tried what you suggest, and it works fine, with only one (big) caveat: you can only power this way very low power motors. I did this to drive the linear motor that moves an HDD head assembly. This motor works perfectly fine with less than 18 mA.

Зауважте, що я перемикаю контакти Arduino між HIGH і LOW станами, не проходить через INPUT . Налаштування PIN-коду на INPUT надішле індуктивний відкат електродвигуна через захисні діоди штифта. На з іншого боку, індуктивність цього двигуна, імовірно, крихітна ...

For anything that can draw more than 40 mA, I would use an H-bridge. For something between 20 and 40 mA, I may take the risk of driving it directly if it's for an experiment where I am not too much concerned about the risk of loosing my Arduino.

3
додано
> Я просто спробував те, що ви пропонуєте, і він працює відмінно, ... Це не повинно нікого дивувати, що він працював. Тому що структура типового контакту GPIO є h мостом або низьким бічним перемикачем. Тому він повинен працювати. Це просто основна електроніка.
додано Автор dannyf, джерело
> тільки з одним (великим) застереженням ... І це не дивно. Всякий раз, коли ви керуєте вантажем, ви повинні розуміти його обмеження. І в цьому випадку обмеження є суворим з точки зору струму і напруги приводу.
додано Автор dannyf, джерело
Великою перевагою є те, що ці штирі зазвичай мають затискні діоди. Для індуктивних навантажень вони діють як вільні диоди.
додано Автор dannyf, джерело

Ви повинні помістити обидва шпильки в режим OUTPUT. Ви digitalWrite() "позитивний" контактний HIGH і "негативний" контакт LOW.

Але в даному випадку це не дуже гарна ідея:

  1. Вимога до потужності двигуна перевищує струм цифрового вихідного висновку 40 мА.
  2. Назад EMF. Кожен раз, коли ви зупиняєте двигун, виникає короткий імпульс струму назад до контактів. Погано.

Правильний спосіб керування двигуном - це:

Arduino controlled motor

Це дозволить керувати лише одним напрямком. Для зміни напрямків потрібен H-Bridge. Міст H - це електронна схема, яка може керувати двигуном в обох напрямках.

3
додано
Це також неналежне - ви не повинні живити двигун від Arduino. Крім того, біполярні транзистори, як ви намалювали робити погану роботу управління двигуном в порівнянні з сучасними FET's, і за допомогою резистора 2.2K база, ймовірно, обмежити речі далі. Коли використовуються біполярні транзистори, ефективні «двоступеневі» дарлінгтони є нормою.
додано Автор rossp, джерело
Ні, ретрансляція не є хорошим способом зробити це. Як вже було сказано, слід використовувати драйвер FET.
додано Автор rossp, джерело
Можливо, наступного разу, якщо ви чекаєте до , ви зможете побачити його. Я приїхав сюди зі сторінки перегляду запитань, що має намір розмістити відповідь, але враховуючи весь шум, який був зроблений навколо фактичної теми, яку треба було вирішити першим, фактичне питання просто не відчуває себе достатньо цікавим, щоб більше турбувати.
додано Автор rossp, джерело
@Chris. Ти правий. Правильний спосіб зробити це, використовуючи оптоизолятор для керування реле, підключеного до належного джерела живлення. Дякуємо за цінну інформацію.
додано Автор user31481, джерело
@Chris. Очікуйте правильної відповіді на це питання.
додано Автор user31481, джерело
Добре дякую, сер. :)
додано Автор Brent, джерело

Я не думаю, що це буде працювати.

Вам буде краще скористатися дешевим модулем, подібним Pololu Pololu DRV8838 , який реалізує MOSFET H - міст.

(Примітка: я ніяк не пов'язаний з Pololu.)

2
додано

Чи можна робити звичайні штирі, як наземні шпильки?

відповідь так: я дивлюся прямо зараз на миготливий світлодіод, який straddles між двома GPIOs з одним з них постійно (через код) заземлені так що я можу блимати його через інший контактний GPIO.

Очевидно, що звичайні обмеження, які застосовуються до гнізда GPIO, застосовуються тут.

0
додано
Це погана, погана порада. Світлодіод, який ви дивитеся, швидше за все, досягає максимуму 30 мА. Навіть невеликий двигун постійного струму залучить багато разів таку кількість, і набагато більше, ніж гніздо GPIO.
додано Автор M Katz, джерело