Как использовать шаговый двигатель в тинкеркад
Перейти к содержимому

Как использовать шаговый двигатель в тинкеркад

  • автор:

What is steps in tinkercad?

What is steps in tinkercad?

What is steps in tinkercad? – The answer is in this article! Finding the right TinkerCAD tutorials and even more, for free, is not easy on the internet, that’s why our CAD-Elearning.com site was created to offer you the best answers to your questions about TinkerCAD software.
Millions of engineers and designers in tens of thousands of companies use TinkerCAD. It is one of the most widely used design and engineering programs. It is used by many different professions and companies around the world because of its wide range of features and excellent functionality.
And here is the answer to your What is steps in tinkercad? question, read on.

Introduction

Steps are the segments that fit into the radius parameter. You need to set the Radius parameter to be able to visualize what Steps is doing.

Also, what is segments in Tinkercad? The way tinker cad and most other 3D design websites make cylinders or rounded shapes is by making a series of squares or other shapes to achieve a round look. Adding or removing “segments makes the cylinder more rounded or less rounded giving it a smooth and even look or a rough and rigid look.

Similarly, what are the features of Tinkercad?

  1. Transformation. The way you move, scale and rotate objects in Tinkercad is really intuitive and nice.
  2. Workplane. This is one of the more original features in Tinkercad.
  3. Shapes and Object Modification.
  4. Align.
  5. Smart Duplicate.
  6. 2D and 3D Import.

As many you asked, is Tinkercad good for beginners? Tinkercad is probably one of the simplest and most intuitive 3D modeling tools available. It runs in your web-browser and is free, a combination that makes it the go-to software for beginners. In order to learn the basics of Tinkercad, we’ll design a simple wrench.

Как использовать шаговый двигатель в тинкеркад

Шаговый двигатель Ардуино: схема подключения, управление,

Шаговый двигатель (stepper motor) предназначен для точного позиционирования или перемещения объекта на заданное количество шагов вала. Плата Arduino может управлять шаговым двигателем с помощью драйвера и библиотеки stepper.h или accelstepper.h. Рассмотрим принцип работы и схему подключения шагового двигателя к Arduino Uno / Nano, а также разберем скетч для управления шаговым мотором.

Принцип работы шагового двигателя

В зависимости от конструкции, сегодня применяются три вида шаговых двигателей: с постоянным магнитом, с переменным магнитным сопротивлением и гибридные двигатели. У двигателей с постоянным магнитом число шагов на один оборот вала доходит до 48, то есть один шаг соответствует повороту вала на 7,5°. Гибридные двигатели обеспечивают не меньше 400 шагов на один оборот (угол шага 0,9°).

Устройство шагового мотора Ардуино

Фото. Устройство шагового мотора в разрезе

Подсчитав количество сделанных шагов, можно определить точный угол поворота ротора. Таким образом, шаговый двигатель является сегодня идеальным приводом в 3D принтерах, станках с ЧПУ и в другом промышленном оборудовании. Это лишь краткий обзор устройства и принципа работы stepper motor, нас больше интересует, как осуществляется управление шаговым двигателем с помощью Ардуино.

Драйвер шагового двигателя Ардуино

Шаговый двигатель — это бесколлекторный синхронный двигатель, как и все двигатели, он преобразует электрическую энергию в механическую. В отличие от двигателя постоянного тока в которых происходит вращение вала, вал шаговых двигателей совершает дискретные перемещения, то есть вращается не постоянно, а шагами. Каждый шаг вала (ротора) представляет собой часть полного оборота.

Драйвера для управления шаговым двигателем

Фото. Виды драйверов для управления шаговым двигателем

Вращение вала двигателя осуществляется с помощью сигнала, который управляет магнитным полем катушек в статоре драйвера. Сигнал генерирует драйвер шагового двигателя. Магнитное поле, возникающее при прохождении электрического тока в обмотках статора, заставляет вращаться вал, на котором установлены магниты. Количество шагов задаются в программе с помощью библиотеки Arduino IDE.

Схема подключения шагового двигателя 28BYJ-48 к Arduino Uno через драйвер ULN2003 изображена на рисунке ниже. Основные характеристики мотора 28BYJ-48: питание от 5 или 12 Вольт, 4-х фазный двигатель, угол шага 5,625°. Порты драйвера IN1 — IN4 подключаются к любым цифровым выводам платы Arduino Mega или Nano. Светодиоды на модуле служат для индикации включения катушек двигателя.

Как подключить шаговый двигатель к Ардуино

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • драйвер шагового двигателя ULN2003;
  • шаговый двигатель 28BYJ-48;
  • провода «папа-мама».

Схема подключения шагового двигателя к Arduino UNO

Схема подключения шагового двигателя к Arduino UNO

Arduino и шаговый мотор

Шаговый мотор, в отличие от обычного мотора постоянного вращения, вращается пошагово и позволяет точно установить свой вал на заданный угол. В отличие от сервопривода не имеет обратной связи по углу поворота (не знает, где сейчас находится вал), но зато может вращаться без ограничений. Шаговые моторы используются в ЧПУ станках и прочих устройствах с точным позиционированием частей механизма (2D/3D принтеры, манипуляторы, плоттеры…). В наборе GyverKIT идёт шаговый мотор 28BYJ-48 с драйвером ULN2003:

  • Питание: 5V
  • Шагов на оборот (сам мотор): 32
  • Передаточное отношение редуктора: 1:63.68395
  • Шагов на оборот (на выходном валу): 2038
  • Максимальная скорость (шагов в секунду): 400
  • Максимальная скорость (оборотов в минуту): 12

Фазы мотора выведены следующим образом:

Подключение

Мотор управляется через драйвер, который по сути усиливает сигнал с пинов микроконтроллера (подключать моторы напрямую к пинам нельзя!). Драйвер подключается к питанию 5V, а 4 управляющих входа – к любым цифровым пинам МК. Фаза мотора потребляет около 100 мА, поэтому возможно питание драйвера напрямую от платы Arduino.

Библиотеки

Для шаговых моторов существует несколько библиотек, самые известные из них:

  • Stepper – стандартная (идёт в комплекте с Arduino IDE) библиотека с минимальными возможностями – позволяет вращать мотор с плавным ускорением и торможением – моя библиотека с большим количеством возможностей и эффективными алгоритмами движения, читайте на странице библиотеки. Также есть расширенная документация

В примерах на этом сайте мы будем использовать GyverStepper как самую удобную и функциональную. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию GyverStepper. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.

Примеры

Воспользуемся версией библиотеки GyverStepper2 (входит в набор GyverStepper). Создаём объект GStepper2 , в угловых скобках указываем тип драйвера STEPPER4WIRE , так как используем 4х проводной драйвер. Далее в круглых скобках – количество шагов на один оборот и пины в порядке (фаза А1, фаза А2, фаза В1, фаза В2). Из второй картинки (с описанием проводов мотора) видно, что первая фаза это провода 2 и 4, а вторая – 3 и 1. Драйвер не меняет порядок проводов, поэтому в программе нам нужно будет указать пины в порядке (1, 3, 2, 4), т.е. центральные нужно поменять местами. На схеме я подключил драйвер к пинам D2, D3, D4, D5, и в программе укажу их как (2, 4, 3, 5). Если прописать по порядку пинов – мотор будет работать некорректно!

Данный пример просто крутит мотор на один пол оборота, затем возвращает обратно. Каждый раз ждём, когда мотор приедет на позицию.

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

В этом примере также вывожу позицию мотора в порт, можно открыть плоттер и увидеть график:

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

В библиотеке также есть поддержка движения с ускорением, добавим настройку setAcceleration()

Мотор перестанет дёргаться при смене направления движения, а график будет выглядеть вот так:

Сага о абсолютном энкодере и шаговом двигателе

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

Давно я тут не писал постов про принтеры и электронику, но тут назрела тема использования абсолютного энкодера и попытке сделать вменяемое упралвение шаговым двигателем с рассчётом на точность позиционирования (не путать с повторяемостью).

    AS5048A с разрешением 12bit (если пересчитать в угол по нехитрой формуле 360/2**12

0.028125 градуса), хотя это уже и экстремальный вариант.

  • stm32 имеет прерывания на трех пинах которые подключены к Step/Dir/Enable на плате управления принтером
  • при получении сигналов на Step/Dir/Enable производится stm32 делает шаг через tmc2130
  • после завершения шага (если успевает) считывает положение двигателя через энкодер tle5012b (на валу двигателя помещён магнит)
  • stm32 печатает в UART инфу о количестве шагов, микрошаге, количесве оборотов и текущем угле поворота двигателя (энкодер таки абсолютный и умеет считать обороты)
  • Был выбран набор скоростей: 10, 25, 50, 75, 100, 125, 150, 200, 250 мм/с
  • Для каждой скорости передвижение с X0 до X160 и обратно и ожидание в крайних положения по 2 секунды (это 4 оборота движка в одну строну и в другую) повторялось по 25 раз
  • Данные с энкодера писались в лог (скриптик с сериал консоли всё писал в файлики)

Сага о абсолютном энкодере и шаговом двигателе

  • На низких скоростях (до 50 мм/с), у нас повторяемость очень неплохая, на уровне погрешности измерения энкодера
  • На скорости 75мм/с (а это у нас

0.7 градусов (что примерно 7 шагов при дроблении 1/16, или если пересчитать в мм то это будет

0.1 мм в среднем)

То что мы видим при скорости 10мм/с (да довольно медленно)

Сага о абсолютном энкодере и шаговом двигателе

  • Шаги у нас не равномерны (что в целом понятно, исходя из физики двигателя)
  • Какие то шаги у нас почти точно попадают в идеальные значения углов поворота (но не все. совсем не все. )
  • Хотя точность позиционирования у нас не очень высокая, но повторяемость хорошая (синяя линия на картинке это статистика по 25 повторам

Теперь посмотрим что будет если шаговик пойдёт немного быстрее 25 мм/с

Сага о абсолютном энкодере и шаговом двигателе

Картинка в целом не поменялась, но ошибка позиционирования возросла (разница между реальным и идеальным положением)

Теперь 50 мм/с

Сага о абсолютном энкодере и шаговом двигателе

Видно что позиционирование стало ещё хуже.

Теперь 75 мм/с

Сага о абсолютном энкодере и шаговом двигателе

Всё поплыло ещё дальше.

Сага о абсолютном энкодере и шаговом двигателе

Ошибка осталась на прежнем уровне (tmc2130 перешел в другой режим работы)

Сага о абсолютном энкодере и шаговом двигателе

Сага о абсолютном энкодере и шаговом двигателе

Сага о абсолютном энкодере и шаговом двигателе

Сага о абсолютном энкодере и шаговом двигателе

Сага о абсолютном энкодере и шаговом двигателе

  • Что приятно средняя ошибка позиционирования примерно 0. Что означает что шаговик с одинаковой вероятность как проскакивает положение, так и недоходит до него (по этому среднее и есть 0).
  • А вот медиана уже становится большой. На уровне 0.5-0.8 градуса.
  • Разброс ошибок довольно большой, он растёт с примерно 0.2 градусов при 10мм/с до 4 градусов при 250мм/с, что соответсвует разбросу хода от 0.02 до 0.5 мм (хе хе.. кто там хвастался что печатает на скорости 200+мм/с. )
  • Ещё замечу, что всё это измерялось на свободном шаговике без нагрузки. С нагрузкой будет все печальнее (и я это проверю в следующей части)

Что из всего этого следует?

Если хочется повышать качество печати, то надо слегка поменять подход к позиционирования шаговика в прошивках (позицоинирование у него не линейное, и это надо учитывать). По идее надо сделать умный closed-loop шаговик, которые будет в состоянии корректировать нелинейности при перемещении.

Продолжение следует.

Подпишитесь на автора

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

Как использовать шаговый двигатель в тинкеркад

Описание

Четырех фазный шаговый двигатель (28BYJ-48) — это бесколлекторный двигатель, вращение вала осуществляется шагами (дискретное перемещение). На роторе (валу), расположен магнит, а вокруг него расположены катушки, если поочередно подавать ток на эти катушки, создается магнитное поле, которое отталкивает или притягивает магнитный вал, тем самым заставляя двигатель вращаться. Такая конструкция позволяет с большой точностью управлять валом, относительно катушек. Принципиальная схема четырехфазного шагового двигателя 28BYJ-48 приведена ниже.

в двигателе содержится две обмотки, которые в свою очередь разделены на четыре, из-за этого и название 4-х фазный. Центральные отводы катушек подключены вместе и служат для питания двигателя, так-как каждая обмотка подключена к питанию, такие двигатели называют униполярный. На валу 28BYJ-48 расположено 8 магнитов, с чередующими полюсами (то есть, четыре магнита с двумя полюсами). Внутри расположен редуктор, с примерным передаточным числом в 1:63,68395. Это означает, что двигатель за один оборот осуществляет 4075.7728395 шага. Данный двигатель поддерживает полушаговый режим и за один полный оборот может совершать 4076 шага, а точнее за 1° делает примерно 11,32 шага. (4076 / 360 = 11,32).

Режим работы:
Чаще всего, при использовании шагового двигателя 28BYJ 48, используют два режима подключения.
Полношаговый режим — за 1 такт, ротор делает 1 шаг.
Полушаговый режим — за 1 такт, ротор делает ½ шага.

Когда используется полношаговый метод управления, две из четырех обмоток запитываются на каждом шаге. Идущая вместе с Arduino IDE библиотека Stepper использует такой способ. В техническом руководстве к 28BYJ-48 сказано, что предпочтительным является использование метода полушага, при котором сначала запитывается только 1 обмотка, затем вместе первая и вторая обмотки, затем только вторая обмотка и так далее. С 4 обмотками это дает 8 различных сигналов, как показано в таблице ниже.

Модуль шагового двигателя ULN2003:
Цифровой вывод микроконтроллера может выдать ток

40 мА, а одна обмотка 28BYJ-48 в пике потребляем

320 мА, следовательно если подключить двигатель напрямую, микроконтроллер сгорит. Для защиты был разработан «Модуль шагового двигателя ULN2003″, в котором используется микросхема ULN2003A (по сути, состоящая из 7 ключей), позволяющая управлять нагрузкой до 500 мА (один ключ). Данный модуль может работать с 5В и 12В двигателем 28BYJ-48, для переключения необходимо установить или убрать перемычку (по умолчанию перемычка установлена, питание 5В).

Принципиальную схему модуля ULN2003 можно посмотреть на рисунке ниже

Назначение X1
IN1 . . . IN7: Вход 1 … 7

Назначение X2
► 1 — GND: «-» питание модуля
► 2 — Vcc: «+» питание модуля (5В или 12В)
► 3 — Vcc: «+» питание модуля (перемычка, только при 5В)
► 4 — Vcc: «+» питание модуля (перемычка, только при 5В)

Назначение X3
► A: Выход 1
► B: Выход 2
► C: Выход 3
► D: Выход 4
► E: Выход 5
► F: Выход 6
► G: Выход 7

Назначение X3
► 1 — Питание
► 2 — A
► 3 — B
► 4 — C
► 5 — D

Внешний вид платы модуля

Помимо самой микросхемы ULN2003AN, на плате имеется пятиконтактный разъем для подключения к шаговику и четыре светодиода, показывающих, какая из обмоток запитана в текущий момент времени.

Также сбоку расположен джампер (два вывода под четырьмя резисторами), установка которого позволяет подавать питание на шаговый двигатель. Замечу, что питать мотор от 5 В Arduino не рекомендуется, так как мотор может потреблять ток, превышающий возможности Arduino. Лучше использовать внешний 5-12 В источник питания, выдающий ток не менее 1 А. Четыре управляющих входа помечены как IN1-IN4 и должны быть подключены к четырем цифровым выводам Arduino.

Подключите выводы IN1, IN2, IN3 и IN4 к пинам 3, 4, 5 и 6 Arduino Uno. Положительный контакт источника питания необходимо подключить к выводу, помеченному как «+», а землю источника питания к выводу «-» на плате контроллера. Если для питания Arduino и мотора используются различные источники питания, то необходимо объединить выводы «земля» источников вместе.

Подключение:
В данном примере буду использовать модуль ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V. Схема не сложная, необходимо всего шесть провода, сначала подключаем интерфейсные провода, IN1 (ULN2003) в 11 (Arduino UNO), IN2 (ULN2003) в 10 (Arduino UNO), IN3 (ULN2003) в 9 (Arduino UNO) и IN4 (ULN2003) в 8 (Arduino UNO), осталось подключить питание GND к GND и VCC к VIN (не для постоянного использовании), подключаем разъем двигателя в модуль ULN2003.

Стандартная библиотека Stepper, идущая с Arduino IDE, поддерживает только полношаговый метод управления и имеет сильно ограниченные возможности. Использовать ее можно только в очень простых приложениях, в которых используется только один мотор. Применение библиотеки Stepper для управления 28BYJ-48 является не самым эффективным решением.

Библиотека CustomStepper

Для вращения двигателя по часовой и против часовой стрелки, используем библиотеку "CustomStepper". Данная библиотека не входит в стандартную среду разработки Arduino IDE, так что скачиваем и добавляем ее.

#include <CustomStepper.h> // Подключаем библиотеку CustomStepper

CustomStepper stepper(8, 9, 10, 11); // Указываем пины, к которым подключен драйвер шагового двигателя

boolean rotate1 = false; // Переменная для смены режимов

boolean rotatedeg = false; // Переменная для смены режимов

boolean crotate = false; // Переменная для смены режимов

stepper.setRPM(12); // Устанавливаем количество оборотов в минуту

stepper.setSPR(4075.7728395); // Устанавливаем колочество шагов на полный оборот. Максимальное значение 4075.7728395

if (stepper.isDone() && rotate1 == false)

stepper.setDirection(CCW); // Устанавливает направление вращения (по часовой)

stepper.rotate(2); // Устанавливает вращение на заданное количество оборотов

if (stepper.isDone() && rotate1 == true && rotatedeg == false)

stepper.setDirection(CW); // Устанавливает направление вращения (против часовой)

stepper.rotateDegrees(90); // Поворачивает вал на заданное кол-во градусов

if (stepper.isDone() && rotatedeg == true && crotate == false)

stepper.setDirection(CCW); // Устанавливает направление вращения (по часовой)

stepper.rotate(); // Будет вращать пока не получит команду о смене направления или STOP

stepper.run(); // Этот метод обязателен в блоке loop. Он инициирует работу двигателя, когда это необходимо

Скачать библиотеку можно здесь

Библиотека AccelStepper

Эта библиотека очень хорошо работает совместно с шаговым мотором 28BYJ-48 (мотор почти не греется), а также поддерживает ускорение, что позволяет заставить мотор вращаться быстрее. Библиотека использует код, не блокирующий шаги и включает немало других приятных особенностей.

  • Объектно-ориентированный интерфейс для 2, 3 или 4-выводных шаговых двигателей
  • Поддержка ускорения и замедления
  • Поддержка одновременно нескольких шаговых двигателей с независимой работой для каждого мотора
  • Функции API не используют функцию delay и не прерывают работу
  • Поддержка контроллеров шаговых двигателей таких как Sparkfun EasyDriver (основанных на микросхеме драйвера 3967)
  • Поддержка низких скоростей
  • Расширяемый API
  • Поддержка подклассов

Представленный ниже код медленно ускоряет мотор 28BYJ-28 в одном направлении, затем замедляется до остановки и вновь ускоряется, но уже вращаясь в противоположном направлении.

#define HALFSTEP 8

// Определение пинов для управления двигателем

#define motorPin1 3 // IN1 на 1-м драйвере ULN2003

#define motorPin2 4 // IN2 на 1-м драйвере ULN2003

#define motorPin3 5 // IN3 на 1-м драйвере ULN2003

#define motorPin4 6 // IN4 на 1-м драйвере ULN2003

// Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4

// для использования AccelStepper с 28BYJ-48

AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);

// Изменяем направление, если шаговик достигает заданного положения

Скачать библиотеку можно здесь

Переделка 28BYJ-48 из униполярного в биполярный

Интересное заключается в том, вместо 380 гр./см при униполярном подключении, можно получить крутящий момент 800 гр./см при биполярном включении.

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

Драйвер биполярного двигателя отличается от униполярного , теперь например, подойдет драйвер с микросхемой L293D или SN754410.

Tinker Cad Dc Motor Project — Hamza

license

657540

By 657540 Follow

Dual DC Motor Project || Computer Engineering

This instructable will be a guide on how to make a complex Tinkercad circuit. This circuit’s main focus in a dc motor. It is controlled by a Sum Of Products circuit, a temperature sensor and pushbuttons via the H-Bridge Motor chip and a Arduino Uno Module

At the end of this Instructable there is a short 1 min demo vid with a brief explanation of the main components of the circuit

Linked below is a pdf version of the Tinker Cad project

Attachments

Supplies

  1. Arduino Uno R3 — 1
  2. 10000 Ω Resistor — 2
  3. Pushbutton — 1
  4. DC Motor — 1
  5. H-bridge Motor Driver -1
  6. Quad AND gate -1
  7. Quad OR gate -1
  8. Slide Switch — 3
  9. Green LED -1
  10. 320 Ω Resistor -1
  11. Red LED -1
  12. 200 Ω Resistor -1
  13. 250 kΩ Potentiometer -1
  14. Temperature Sensor [TMP36] -1
  15. 1 breadboard or 2 mini breadboards

Linked below is a schematic of the project

Attachments

Step 1: Create the Sum of Products Circuit

Materials Used

  • 1 Quad And Gate
  • 1 Quad Or Gate
  • 3 Slide switches
  • Arduino jumper wires in Black, Red, and 4 other colours (Red is used for Pwr and Black is for Gwd)

Overview:

In this step you will be following either the circuit provided in tinkercad as well as the circuit diagram provided, which is optional as the Tinkercad circuit more than good enough. You are going to follow follow the circuits as shown to form a Sum Of Products circuit operated with the use of 3 slide switches. This SOP circuit will only work with three codes listed down below. I As this is a crucial step please check your work before proceeding onto the next step than you!

Functioning Codes:

(1 meaning the slide switch is on the power side and 0 meaning it’s on the ground side)

  • 111
  • 101
  • 011

Attached to this step is both a screenshot of the tinkercad circuit and a picture of the Circuit schematic made from Logisim

Step 2: Wiring the Motor

Materials Used

  • 1 Dc Motor
  • 1 H bridge Chip
  • 1 Arduino Uno
  • 1 Breadboard
  • Colored breadboard jumper wires (Red and Black are crucial colors)

During this step you are going to wire a DC motor to a H Bridge Motor chip on a breadboard. Utilize the Tinker Cad link and the sources on this step to complete your wiring

Tip — if you are having trouble understanding how to wire some components, search for it on google and click on the linked Arduino site for the tutorial

example: I word for word searched «push button wiring Arduino«

and immediately found the link to the Arduino site — https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button

Step 3: Finishing Up the Wiring

In this step all the wiring should be finished. The components left to be wired in this step are the: Temperature sensor, Potentiometer, Push Buttons, etc. Use the Tinker Cad link provided to finish up the wiring and refer to the code for extra help on understanding where to connect the pins to which port on the Arduino.

Step 4: Code

This step is fairly simple. Just copy the code linked in this step and if needed change the pins of the variables listed at the very top of the code, if you used different pins for the components.

Tech Journal

In this article, we will interface a DC motor with an Arduino UNO using TinkerCAD software. Simulating a circuit before implementing the circuit manually helps to visualize the connections and it also provides the output under different conditions and constraints which would help to cross-check the output of the circuit implemented manually.

What is Tinkercad?

Tinkercad is a free, easy-to-use app for 3D design, electronics, and coding. It’s used by teachers, kids, hobbyists, and designers to imagine, design, and make anything! Since it became available in 2011 it has become a popular platform for creating models for 3D printing, electronics simulation, coding as well as an entry-level introduction to constructive solid geometry in the schools.

Why we are using it?

We are using Tinkercad for saving money, learning & microcontroller coding. In this project, we have used the circuits facility of Tinkercad for simulating our project DC Motor Speed Control Using Arduino.

The DC motor speed in general is directly proportional to the supply voltage, so if reduce the voltage from 9 volts to 4.5 volts then our speed becomes half of what it originally had. But in practice, for changing the speed of a dc motor we cannot go on changing the supply voltage all the time. The speed controller PWM for a DC motor works by varying the average voltage supplied to the motor.

A list of components required to implement the circuit both manually and using TinkerCAD are given below

Hardware Requirements:

  1. Arduino — We can use any Arduino development board for this project whether it is UNO, MEGA, NANO etc.
  2. Motor — We have to use a DC motor for this project to see clear variations.
  3. Breadboard & wires — Use any normal breadboard & Jumper wires, Male-to-Female & Male-to-Male.
  4. Resistor — We will use a 220-ohm resistor in this project.
  5. Diode — We are going to use a diode to prevent reverse current otherwise it will going to damage our circuit.
  6. Transistor — We want an NPN BC-547 transistor in this project

Software Requirements:

  1. Tinkercad: Click Me
  2. Arduino IDE: Click Me

Note: Arduino IDE is optional you can code in Tinkercad also.

Code Description:

Let us learn the code to control the speed of the DC motor.

The Motor pin is set as 3 since we have used the 3rd pin of the PWM signal as the input to the DC motor.

We initialize two integer type variables viz., flag and speed.

void setup is a function and in this, we initiated the serial communication at the baud rate of 9600. Now, the motor pin is defined as the output, and we print the statement Enter value from 50 to 225. If the PWM value is less than 50 then the motor will not rotate due to less current.

Here, we check if the data is available in the serial port or not. If it is available then the data will be parsed into the integer format and will be stored in the speed variable. The Flag variable will be set to zero.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *