我需要使用Arduino模拟输入作为A0 A1 A2 A3 A4 A5的数字输出。 通常,当我使用arduino程序时,digitalWrite(A0,0)正在完成它的工作,但是在matlab中我找不到这样做的方法。我试过将A0视为14 digitalWrite(14,0)并且没有工作。 你知道如何在Matlab中做这个引脚映射的事情吗?简单来说,matlab中的数字写入(A0,0)的等价是什么?
function test_OpeningFcn(hObject, eventdata, handles, varargin)
% Choose default command line output for test
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
global a;
set(handles.pushbutton1, 'UserData', 0);
a=arduino('COM3');
a.pinMode(2,'output');
a.pinMode(3,'output');
a.pinMode(4,'output');
a.pinMode(5,'output');
a.pinMode(6,'output');
a.pinMode(7,'output');
a.pinMode(8,'output');
a.pinMode(9,'output');
a.pinMode(10,'output');
a.pinMode(11,'output');
a.pinMode(12,'output');
a.pinMode(13,'output');
a.pinMode(14,'output');
function pushbutton1_Callback(hObject, eventdata, handles)
global a;
global counter;
counter = get(hObject, 'UserData') + 1
set(hObject, 'UserData', counter);
if(counter==1)
a.digitalWrite(14,1);This doesnt work
a.digitalWrite(7, 0);
a.digitalWrite(13, 0);
a.digitalWrite(8, 1);
a.digitalWrite(12, 0);
a.digitalWrite(9,0);
a.digitalWrite(11, 0);
a.digitalWrite(10, 0);
a.servoStatus(2)
end
答案 0 :(得分:0)
你认为A0相当于引脚14是正确的,所以你的代码应该可行。也许你忘了设置引脚模式?你能发布你的代码和你得到的错误吗?
以下代码适用于我:
a = arduino('COM4');
a.pinMode(14,'output'); % pin 14 is equivalent to analog pin A0
tic;
while toc/60 < 0.25 % Run for 15 seconds
a.digitalWrite(14,1); % setting A0 to HIGH
end
delete(a);
clear a;