三个档位控制的小风扇。一个停止档位,剩下三个分别为低速,中速和高速档位。

uml diagram

# 部署

1.开关Button1-Button4分别连接到OSEPP UNO的A0-A4引脚。
2.LED1-LED3分别连接到OSEPP UNO的13-11号引脚。
3.马达小风扇INA连接到OSEPP UNO的3号引脚。
连线图

# 程序搭建

  • oseppBlock程序

  • Arduino程序
void setup()
{
    //button1
    pinMode(A0, INPUT); //定义开关1
    //button2
    pinMode(A1, INPUT); //定义开关2
    //button3
    pinMode(A2, INPUT); //定义开关3
    //button4
    pinMode(A3, INPUT); //定义开关4
    //led1
    pinMode(13, OUTPUT); //定义LED1
    //led2
    pinMode(12, OUTPUT); //定义LED2
    //led3
    pinMode(11, OUTPUT); //定义LED3
    //fan1
    pinMode(3, OUTPUT); //定义风扇引脚
    pinMode(5, OUTPUT);
}

void loop()
{
    if (digitalRead(A0) == LOW) //如果开关1按下
    {
        analogWrite(3, 0); //风扇停止运行
        analogWrite(5, 0);
        digitalWrite(13, LOW); //LED1熄灭
        digitalWrite(12, LOW); //LED2熄灭
        digitalWrite(11, LOW); //LED3熄灭
    }
    else if (digitalRead(A1) == LOW) //如果开关2按下
    {
        analogWrite(3, 50); //风扇低速运行
        analogWrite(5, 0);
        digitalWrite(13, HIGH); //LED1点亮
        digitalWrite(12, LOW);  //LED2熄灭
        digitalWrite(11, LOW);  //LED3熄灭
    }
    else if (digitalRead(A2) == LOW) //如果开关3按下
    {
        analogWrite(3, 120); //风扇中速运行
        analogWrite(5, 0);
        digitalWrite(13, HIGH); //LED1点亮
        digitalWrite(12, HIGH); //LED1点亮
        digitalWrite(11, LOW);  //LED3熄灭
    }
    else if (digitalRead(A3) == LOW) //如果开关4按下
    {
        analogWrite(3, 255); //风扇高速运行
        analogWrite(5, 0);
        digitalWrite(13, HIGH); //LED1点亮
        digitalWrite(12, HIGH); //LED1点亮
        digitalWrite(11, HIGH); //LED1点亮
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

# 运行结果

Button2按下风扇低速同时点亮1个LED,Button3按下风扇中速同时点亮2个LED,Button4按下风扇高速同时点亮3个LED,Button1按下风扇停止同时LED熄灭。

# 操作视频