arduino做一个表白程序
所需材料,配置
最基础的arduino主板(我用的盗版)
面包线n根
面包板一个
一位数显示器
四个灯泡
一个有源蜂鸣器
硬件组装
(⊙o⊙)…什么东西??
把那个无源蜂鸣器去掉,因为我不会用
其实很简单,整个电路就是由一个显示器,四个灯泡,一个无源蜂鸣器,所有的面包线也是围绕这几个来实现的
我把3到GND口全部占用了,其中2口是蓝的控制器,7口是红的控制器
可以看到这个显示器由8个灯管组成
2到6口就是这上面一个o字形四个灯管控制器
同理,我设的8口到11口是下面三个灯管与那个点号
12口是有源蜂鸣器的控制器
13口是无源蜂鸣器的控制器(但我没用,因为我不会 )
上面那红条是蓝的控制器,与2口相接
上面蓝条是GND,接地,再接下面的蓝条
下面的红条是红的控制器,与7口相接
这样,红蓝灯管就可以分别接相应的控制器与接地线
那个显示器,一共有10个针脚,意味着可以接10根线,上面左边两个右边两个我分别与3456相接,而中间的是接地线,接到上方蓝条(也就是接地线)
同理,下面我也只接四根线,中间不接,四根接891011
蜂鸣器的话11口与GND连
至此,所有硬件配置完毕
软件编写
首先我会在setup中吧所有针管初始化
void setup() {
int pinnum=3;
while(pinnum<=13){
pinMode(pinnum,OUTPUT);
pinnum++;
}
}
然后进入主循环,当务之急我是要把显示器按照一定的顺序排列出来,包装成函数方便调用
void c()
{
digitalWrite(2,HIGH);
digitalWrite(7,HIGH);
digitalWrite(5,HIGH);
digitalWrite(3,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
}
void z()
{
digitalWrite(2,HIGH);
digitalWrite(7,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
}
void q5()
{
digitalWrite(5,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(11,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
}
void q2()
{
digitalWrite(5,HIGH)