arduino engineering kit invalid i2c address formatt
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Kevin Graebner
am 15 Apr. 2019
Bearbeitet: Sourabh Karmakar
am 26 Jul. 2022
hello! i am trying to complete the arduino engineering kit using matlab 2019 and simulink
here is a link to where i currently am, down in the section of that page where you connect the arduino board to matlink to control that little geared motor.
"As you switched the MKR1000 board's power source from USB to LiPo battery, you must re-establish your MATLAB connection to Arduino. Run the following commands to do so:
>> clear a
>> a = arduino
Now let's create a second MATLAB object to provide access to the MKR Motor Carrier. Use the following command to create a Carrier object in the MATLAB Workspace that is associated with the Arduino object a :
>> carrier = addon(a, 'Arduino/MKRMotorCarrier')
Just as the MKR Motor Carrier provides a physical interface between the motor drive wiring and the MKR1000 board, the carrier object is an intermediary between the Arduino object and the DC and servo motors we may connect.
The Motor Carrier allows you to drive your motors with a relatively powerful battery. This can provide much larger currents than the Arduino board itself, which derives all its power from the USB connection to your computer. The USB port cannot provide enough current to drive motors at the necessary voltage, and it can be dangerous to attempt to do so.
Now let's create a third object to give you control of the motor connected to M3 in MATLAB. Use the following command to create a DC Motor object that is associated with the Carrier object, and examine the displayed object properties in theCommand Window :
>> dcm = dcmotor(carrier,3)
when i follow these directions exactly and even copy and paste the commands from the tutorial it gives me this error when trying to access the MKRMotorCarrier library.
>> clear a
>> a = arduino
a =
arduino with properties:
Port: 'COM8'
Board: 'MKR1000'
AvailablePins: {'D0-D14', 'A0-A6'}
AvailableDigitalPins: {'D0-D14', 'A0-A6'}
AvailablePWMPins: {'D0-D8', 'D10', 'A3-A4'}
AvailableAnalogPins: {'A0-A6'}
AvailableI2CBusIDs: [0]
Libraries: {'Arduino/MKRMotorCarrier', 'I2C', 'RotaryEncoder', 'SPI', 'Servo', 'Ultrasonic'}
>> carrier = addon(a, 'Arduino/MKRMotorCarrier')
Invalid I2C address format. The address must be a scalar integer (or hex character vector or string) between 0
and 127.
what am i doing wrong? or has something been updated to make this tutorial invalid?
0 Kommentare
Akzeptierte Antwort
Madhu Govindarajan
am 18 Apr. 2019
Thanks for sending the output, the problem arises from the fact that you are using the old Arduino_Engineering_Kit_Hardware_Support instead of Arduino_Engineering_Kit_Hardware_Support_19a. To fix this I recommend the following:
1) Make a copy of any modifications you made inside this toolbox that are important to you (ideally you did not use this folder as most users don't, but just to be sure)
2) Uninstall Arduino_Engineering_Kit_Hardware_Support Add-on by going to Add-Ons > Manage Add-Ons and clicking on the vertical ellipsis right next to the file
3) Go to Add-Ons > Get Add-Ons. Search for Arduino_Engineering_Kit_Hardware_Support_19a and 'Add' this.
Then try arduinosetup and you should not receive any errors.
2 Kommentare
Sourabh Karmakar
am 25 Jul. 2022
Bearbeitet: Sourabh Karmakar
am 26 Jul. 2022
Hi Madhu,
I followed all the instructions and updated the kit in Matlab 2022a on windows 11. I am getting the following error:
>> a = arduino('COM5', 'Due'),
a =
arduino with properties:
Port: 'COM5'
Board: 'Due'
AvailablePins: {'D2-D53', 'A0-A11'}
AvailableDigitalPins: {'D2-D53', 'A0-A11'}
AvailablePWMPins: {'D2-D13'}
AvailableAnalogPins: {'A0-A11'}
AvailableI2CBusIDs: [0, 1]
AvailableSerialPortIDs: [1, 2, 3]
Libraries: {'I2C'}
Show all properties
>> x = scanI2CBus(a,1)
x =
2×1 cell array
{'0x48'}
{'0x49'}
>> deviceObj = device(a,'I2CAddress','0x49')
Invalid I2C device address '0x49'. Use scanI2CBus for a list of devices detected on an I2C bus.
>> deviceObj = device(a,'I2CAddress',0x49)
Invalid I2C device address '0x49'. Use scanI2CBus for a list of devices detected on an I2C bus.
I am not able to figure out what I am doing wrong in the deviceObj creation.
May you please suggest a solution for this?
Weitere Antworten (4)
Madhu Govindarajan
am 16 Apr. 2019
The tutorial is still valid as I am using it in R2019a, so let's try and see where the error is coming from.
Type the following in MATLAB and share the output:
matlabshared.supportpkg.getInstalled
tbx = matlab.addons.toolbox.installedToolboxes
tbx.Name
tbx.Version
0 Kommentare
Kevin Graebner
am 23 Apr. 2019
1 Kommentar
Madhu Govindarajan
am 23 Apr. 2019
Have you tried putting the board in bootloader mode and making Simulink select the COM port Automatically. Here are the steps to try:
1) Double press the reset button on your Arduino board.
2) Open up Device Manager and check if the board is now detected in boot loader mode. If not repeat Step 1 till it changes to boot loader mode.
3) Go to Simulink model, Configuration Parameters > Hardware Implementation > Hardware board settings > Target hardware resources > Host-board connection > Set host COM port > Automatically and click OK.
4) Ensure the mdoel is in external mode and press play.
Siehe auch
Kategorien
Mehr zu Arduino Hardware finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!