Ведутся технические работы. Это может временно повлиять на скорость работы сайта. Приносим извинения за неудобства и благодарим за ваше понимание!

Н-мост — как подключить коллекторный мотор к Arduino и Iskra JS. H-Bridge. Железки Амперки

Хватай Н-мост (Troyka-модуль) — https://goo.gl/k3fSUX

Представляем Н-мост, драйвер коллекторных двигателей в формате одноюнитового Troyka-модуля.

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

Микроконтроллеры не предназначены для работу с мощной нагрузкой, сила тока на GPIO измеряется всего десятками миллиампер. Даже слабым моторам нужно в разы больше.
Если в проекте мотор всегда должен вращаться в одном направлении, можно использовать силовой ключ. Но если понадобится реверсировать двигатель, придётся менять местами провода. Или подключить мотор через Н-мост.

Модуль построен на базе чипа TB6612FNG компании Тошиба. Изначально чип рассчитан на управление сразу двумя потребителями тока. Но мы решили, что возможность управлять более мощными моторами важнее и поэтому запаралелили каналы. Теперь модуль без перегрева работает с током в 1,2 Ампера, и не сгорает от пиков до 2,3.

К управляющей электронике модуль подключается двумя шлейфами. Нижняя тройка ног задаёт направление вращения мотора и питает модуль. Верхняя — служит для управления скоростью вращения мотора.

Подключите пин E к выходам микроконтроллера, поддерживающими ШИМ. Изменяя частоту импульсов мы сможем регулировать скорость вращения моторов. Для этого нам нужно указать скорость вращения, а контроллер обработает команду с помощью специальных библиотек и выдаст сигнал нужной скважности.

Н-мост — это фактически две параллельные цепи с четырьмя выключателями. Схема похожа на букву Н или латинскую H — отсюда и название устройства.

Если попарно открывать и закрывать ключи в Н-мосте, мы сможем менять направление вращения электромотора, не переподключая мотор.

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

Чтобы проверить модуль в деле, мы добавили моторы, аккумулятор и колёса от #Робоняши к обычному Slot Shield-у, добавили BlueTooth-модуль HC-05 и запустили Slot Bota-а погонять по складу. Что из этого получилось — смотрите в ролике и на wiki.

_____________________________________________________________________

Закажи Н-мост в Амперке — https://goo.gl/k3fSUX

Техническое описание, документация и скетчи —
https://goo.gl/wWaepu

В ролике использовались:

Arduino Uno — https://goo.gl/CdppS4
Коллекторный мотор — https://goo.gl/wD9Emw
H-bridge — https://goo.gl/k3fSUX
BlueTooth HC-05 — https://goo.gl/cRUsC3
Power Bank — https://goo.gl/gGp2m4
Slot Shield — https://goo.gl/QNAFPP

И детали #Робоняши — https://goo.gl/hVx93V

_____________________________________________________________________

#arduino #js #espruino #amperka # железкиамперки #h-bridge

( ! ) Warning: Invalid argument supplied for foreach() in /home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php on line 44
Call Stack
#TimeMemoryFunctionLocation
10.0000350344{main}( ).../index.php:0
20.0000350624require( '/home/domains/malitikov.ru/public_html/wp-blog-header.php ).../index.php:17
30.16378507640require_once( '/home/domains/malitikov.ru/public_html/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.16558511848include( '/home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php ).../template-loader.php:106

Мы рекомендуем


( ! ) Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 16777216 bytes) in /home/domains/malitikov.ru/public_html/wp-includes/class-wpdb.php on line 2322
Call Stack
#TimeMemoryFunctionLocation
10.0000350344{main}( ).../index.php:0
20.0000350624require( '/home/domains/malitikov.ru/public_html/wp-blog-header.php ).../index.php:17
30.16378507640require_once( '/home/domains/malitikov.ru/public_html/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.16558511848include( '/home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php ).../template-loader.php:106
50.352122758736WP_Query->__construct( $query = ['post_type' => 'post', 'post_status' => 'publish', 'fields' => 'ids', 'posts_per_page' => -1, 'no_found_rows' => TRUE, 'orderby' => 'none'] ).../single.php:65
60.352122758736WP_Query->query( $query = ['post_type' => 'post', 'post_status' => 'publish', 'fields' => 'ids', 'posts_per_page' => -1, 'no_found_rows' => TRUE, 'orderby' => 'none'] ).../class-wp-query.php:4081
70.352122758736WP_Query->get_posts( ).../class-wp-query.php:3949
80.352522770600wpdb->get_col( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ', $x = ??? ).../class-wp-query.php:3300
90.352522770600wpdb->query( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ' ).../class-wpdb.php:3107
104.5620603812176mysqli_fetch_object( $result = class mysqli_result { public $current_field = 0; public $field_count = 1; public $lengths = [0 => 7]; public $num_rows = 1516847; public $type = 0 } ).../class-wpdb.php:2322

( ! ) Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 16777216 bytes) in /home/domains/malitikov.ru/public_html/wp-includes/class-wp-recovery-mode.php on line 173
Call Stack
#TimeMemoryFunctionLocation
10.0000350344{main}( ).../index.php:0
20.0000350624require( '/home/domains/malitikov.ru/public_html/wp-blog-header.php ).../index.php:17
30.16378507640require_once( '/home/domains/malitikov.ru/public_html/wp-includes/template-loader.php ).../wp-blog-header.php:19
40.16558511848include( '/home/domains/malitikov.ru/public_html/wp-content/themes/malitikov/single.php ).../template-loader.php:106
50.352122758736WP_Query->__construct( $query = ['post_type' => 'post', 'post_status' => 'publish', 'fields' => 'ids', 'posts_per_page' => -1, 'no_found_rows' => TRUE, 'orderby' => 'none'] ).../single.php:65
60.352122758736WP_Query->query( $query = ['post_type' => 'post', 'post_status' => 'publish', 'fields' => 'ids', 'posts_per_page' => -1, 'no_found_rows' => TRUE, 'orderby' => 'none'] ).../class-wp-query.php:4081
70.352122758736WP_Query->get_posts( ).../class-wp-query.php:3949
80.352522770600wpdb->get_col( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ', $x = ??? ).../class-wp-query.php:3300
90.352522770600wpdb->query( $query = 'SELECT wp_posts.ID\n\t\t\t\t\t FROM wp_posts \n\t\t\t\t\t WHERE 1=1 AND wp_posts.post_type = \'post\' AND ((wp_posts.post_status = \'publish\'))\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t ' ).../class-wpdb.php:3107
104.5620603812176mysqli_fetch_object( $result = class mysqli_result { public $current_field = 0; public $field_count = 1; public $lengths = [0 => 7]; public $num_rows = 1516847; public $type = 0 } ).../class-wpdb.php:2322
114.5711603812544WP_Fatal_Error_Handler->handle( ).../class-wp-fatal-error-handler.php:0
124.5712603813256WP_Recovery_Mode->handle_error( $error = ['type' => 1, 'message' => 'Allowed memory size of 536870912 bytes exhausted (tried to allocate 16777216 bytes)', 'file' => '/home/domains/malitikov.ru/public_html/wp-includes/class-wpdb.php', 'line' => 2322] ).../class-wp-fatal-error-handler.php:55