用Arduino switch串口设计一个成绩判断
时间: 2023-05-24 22:06:19 浏览: 172
本设计采用了Arduino UNO和一个维护器开发板,通过软件开发,实现了成绩评测器的功能。具体实现方法为:
1. 代码初始化:
首先,在Arduino IDE中,打开Serial Monitor。然后,将代码写入Arduino:
```
int score = 0; // 学生成绩
void setup() {
pinMode(13, OUTPUT); // LED灯控制引脚
Serial.begin(9600); // 串口初始化
}
```
代码中,`score`是学生的成绩变量,`setup()`函数用于GPIO和串口初始化。
2. 设计串口交互:
为了方便用户输入学生的成绩,我们将使用串口通信。当用户在计算机上输入数字,并按下回车键时,该数字将发送到Arduino端口(`Serial`)并存储在score变量中:
void loop() {
if (Serial.available()) { // 如果串口上有可用数据
char input = Serial.read(); // 读取输入数据并将其转换为char型
if (isDigit(input)) { // 判断输入输入是否为数字
score = input - '0'; // 将char型转换为数字(ASCII码)
if (score >= 0 && score <= 100) { // 判断输入数字是否在成绩范围内
digitalWrite(13, HIGH); // 点亮LED灯
delay(2000); // 等待两秒钟
digitalWrite(13, LOW); // 关闭LED灯
Serial.println("学生的成绩为:" + String(score)); // 输出学生的成绩
if (score >= 90) {
Serial.println("优");
} else if (score >= 80) {
Serial.println("良");
} else if (score >= 60) {
Serial.println("及格");
} else {
Serial.println("不及格");
}
} else {
Serial.println("输入的成绩无效,请输入0到100之间的数字。"); // 输出错误信息
}
} else if (input == '\n') { // 判断输入是否为回车键
Serial.println("学生的成绩为:" + String(score)); // 输出学生的成绩
if (score >= 90) {
Serial.println("优");
} else if (score >= 80) {
Serial.println("良");
} else if (score >= 60) {
Serial.println("及格");
} else {
Serial.println("不及格");
}
} else {
Serial.println("输入无效,请输入0到100之间的数字。"); // 输出错误信息
}
}
}
```
代码中,如果串口上有可用数据,则调用`Serial.read()`函数读取输入的字符,并将其转换为数字。如果输入的成绩在有效范围内(即0-100之间),则LED灯将点亮两秒钟,然后关闭。Arduino将输出学生的成绩以及相应的成绩等级。如果输入的成绩不在有效范围内,则Arduino将输出错误信息。
3. 完整代码:
```
int score = 0; // 学生成绩
void setup() {
pinMode(13, OUTPUT); // LED灯控制引脚
Serial.begin(9600); // 串口初始化
}
void loop() {
if (Serial.available()) { // 如果串口上有可用数据
char input = Serial.read(); // 读取输入数据并将其转换为char型
if (isDigit(input)) { // 判断输入输入是否为数字
score = input - '0'; // 将char型转换为数字(ASCII码)
if (score >= 0 && score <= 100) { // 判断输入数字是否在成绩范围内
digitalWrite(13, HIGH); // 点亮LED灯
delay(2000); // 等待两秒钟
digitalWrite(13, LOW); // 关闭LED灯
Serial.println("学生的成绩为:" + String(score)); // 输出学生的成绩
if (score >= 90) {
Serial.println("优");
} else if (score >= 80) {
Serial.println("良");
} else if (score >= 60) {
Serial.println("及格");
} else {
Serial.println("不及格");
}
} else {
Serial.println("输入的成绩无效,请输入0到100之间的数字。"); // 输出错误信息
}
} else if (input == '\n') { // 判断输入是否为回车键
Serial.println("学生的成绩为:" + String(score)); // 输出学生的成绩
if (score >= 90) {
Serial.println("优");
} else if (score >= 80) {
Serial.println("良");
} else if (score >= 60) {
Serial.println("及格");
} else {
Serial.println("不及格");
}
} else {
Serial.println("输入无效,请输入0到100之间的数字。"); // 输出错误信息
}
}
}
```
阅读全文