Using matlab support package for arduino with any motor shield

5 views (last 30 days)
I have an L298N motor shield that I wish to use to drive a DC motor with the help of the MATLAB support package for arduino (NOT the Simulink support package). Browsing on the internet for an example code, all I've found are examples using the ADAFRUIT MOTOR SHIELD which is not the motor shield I would like to use. So my question is, is it possible to drive a DC motor directly in MATLAB without any DC motor shield on the market other than the ADAFRUIT MOTOR SHIELD ? If yes please help me with an example code.

Accepted Answer

Menghan on 31 Jul 2017
Edited: Menghan on 31 Jul 2017
Hi Derick,
From what I find about this L298N motor shield online, it seems to only need digital IO and PWM signal for direction and speed control. To drive it in MATLAB, simply replace digitalWrite to writeDigitalPin and analogWrite to writePWMVoltage or writePWMFrequency to convert any existing Arduino examples. Please refer to the MATLAB Documentation for correct input parameters to writeDigitalPin/writePWMVoltage/writePWMFrequency.
Hope this helps.
Madhu Govindarajan
Madhu Govindarajan on 6 Feb 2018
From the above code the ones that are used to read the speed value in rpm are -
clear; clc; close all; a = arduino('COM5','Uno','Libraries','rotaryEncoder') encoder1 = rotaryEncoder(a,'D2','D3',64)
rpm = readSpeed(encoder1)
You should be able to do that as long as the two channels of the quadrature encoder are on pins D2 and D3. Post a separate question if this does not work for your specific sensor or if you get error messages, once you try this out.

Sign in to comment.

More Answers (0)


More Answers in the  Power Electronics Control

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!