Arduino多个按钮按下控制发光二极管
12个视图(30天)
显示旧的评论
嘿,
圣诞节我收到一封arduino uno,现在我尝试不同的控制4 led与4按钮。目标是新闻,因此按钮打开,因此led。原来这wasen不简单,我的第一个念头。现在正在我的代码,但这似乎是很多代码对于这样一个简单的任务。
我的问题是我怎样才能improfe短我的代码,让它更有效率吗?
我珍惜每一个回答我试图improfe matlab技能:)
clc
清除所有
% %设置
一个= arduino (“COM3”、“Uno”);
%的发光二极管
blau_LED = " D10”;
configurePin (a、blau_LED DigitalOutput);
rot_LED =“这里”;
configurePin (a、rot_LED DigitalOutput);
gelb_LED = " D12”;
configurePin (a、gelb_LED DigitalOutput);
gruen_LED = " D9”;
configurePin (a、gruen_LED DigitalOutput);
%按钮
blau_Button = D4”;
configurePin (a、blau_Button DigitalInput);
rot_Button =“D5”;
configurePin (a、rot_Button DigitalInput);
gelb_Button = " D6”;
configurePin (a、gelb_Button DigitalInput);
gruen_Button = " D7”;
configurePin (a、gruen_Button DigitalInput);
led = [blau_LED;rot_LED;gelb_LED;gruen_LED];
按钮= [blau_Button;rot_Button;gelb_Button;gruen_Button];
% %的主要程序
而真正的
f = [readDigitalPin (blau_Button);readDigitalPin (rot_Button);readDigitalPin (gelb_Button);readDigitalPin (gruen_Button)];
n =找到(f = = 1);
disp (n)
如果长度(n) = = 1
而长度(n) = = 1
e = n;
writeDigitalPin(发光二极管(e), 1);
f = [readDigitalPin (blau_Button);readDigitalPin (rot_Button);readDigitalPin (gelb_Button);readDigitalPin (gruen_Button)];
n =找到(f = = 1);
结束
writeDigitalPin(发光二极管(e), 0);
elseif长度(n) = = 2
而长度(n) = = 2
e = n;
writeDigitalPin (a,发光二极管(e (1)), 1);
writeDigitalPin (a,发光二极管(e (2)), 1);
f = [readDigitalPin (blau_Button);readDigitalPin (rot_Button);readDigitalPin (gelb_Button);readDigitalPin (gruen_Button)];
n =找到(f = = 1);
结束
writeDigitalPin (a,发光二极管(e (1)), 0);
writeDigitalPin (a,发光二极管(e (2)), 0);
elseif长度(n) = = 3
而长度(n) = = 3
e = n;
writeDigitalPin (a,发光二极管(e (1)), 1);
writeDigitalPin (a,发光二极管(e (2)), 1);
writeDigitalPin (a,发光二极管(e (3)), 1);
f = [readDigitalPin (blau_Button);readDigitalPin (rot_Button);readDigitalPin (gelb_Button);readDigitalPin (gruen_Button)];
n =找到(f = = 1);
结束
writeDigitalPin (a,发光二极管(e (1)), 0);
writeDigitalPin (a,发光二极管(e (2)), 0);
writeDigitalPin (a,发光二极管(e (3)), 0);
elseif长度(n) = = 4
而长度(n) = = 4
e = n;
writeDigitalPin (a,发光二极管(e (1)), 1);
writeDigitalPin (a,发光二极管(e (2)), 1);
writeDigitalPin (a,发光二极管(e (3)), 1);
writeDigitalPin (a,发光二极管(e (4)), 1);
f = [readDigitalPin (blau_Button);readDigitalPin (rot_Button);readDigitalPin (gelb_Button);readDigitalPin (gruen_Button)];
n =找到(f = = 1);
结束
writeDigitalPin (a,发光二极管(e (1)), 0);
writeDigitalPin (a,发光二极管(e (2)), 0);
writeDigitalPin (a,发光二极管(e (3)), 0);
writeDigitalPin (a,发光二极管(e (4)), 0);
结束
结束