Arduino多个按钮按下控制发光二极管

12个视图(30天)
拉尔斯克里安
拉尔斯克里安 2022年12月31日
评论道: 沃尔特·罗伯森 2022年12月31日
嘿,
圣诞节我收到一封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);
结束
结束
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年12月31日
你想要每个按钮打开一个特定的领导,或者按钮的数量应该控制led开启的数量吗?

登录置评。

答案(0)

类别

找到更多的在计数器和定时器的输入和输出帮助中心文件交换

下载188bet金宝搏


释放

R2021b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!