Skip to content

Update msr3-controlling-dc-motor.md with correct duty range #1821

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ There are several ways we can control a DC motor, perhaps the easiest one is jus

But if we want to do a bit more than just making a motor spin full speed in two directions, we need a **motor control circuit.** More specifically, the dual full-bridge driver [L298P](https://www.st.com/resource/en/datasheet/l298.pdf), which we can find on the Motor Shield Rev3.

With this IC, we can set the work duty (0-100), enable brakes (HIGH, or LOW), and set the direction (HIGH or LOW). Each of these features can be controlled using a different set of pins. As we are going to control a DC motor in this tutorial, let's take a look at the pins that are used:
With this IC, we can set the work duty (0-255), enable brakes (HIGH, or LOW), and set the direction (HIGH or LOW). Each of these features can be controlled using a different set of pins. As we are going to control a DC motor in this tutorial, let's take a look at the pins that are used:

Channel A:
- **D12** - Direction
Expand Down Expand Up @@ -83,7 +83,7 @@ First, let's take a look at some key commands in the code. We are actually not u
- `int brakePin = 9;` - assign brake pin.
- `digitalWrite(directionPin, state)` - sets the direction of the pin by using HIGH or LOW states.
- `digitalWrite(brakePin, state)` - release or activate brakes, using HIGH or LOW states.
- `analogWrite(pwmPin, 30)` - write a value between 0-100 to set the work duty.
- `analogWrite(pwmPin, 30)` - write a value between 0-255 to set the work duty.
- `directionState = !directionState` - a boolean that switches every time the loop is run.

The sketch can be found in the snippet below. Upload the sketch to the board.
Expand Down
Loading