arduino控制两个激光灯亮灭,当读取到单片机发来的低电平时,读取数组中的值,如果读到1让左边灯亮,读到0右边灯亮,数组内容读完从头读
时间: 2024-04-12 17:30:33 浏览: 71
Arduino-MotorControl-v2.1_两相四线步进电机-Arduino-编程_4321_
5星 · 资源好评率100%
你可以在Arduino中使用一个输入引脚来读取单片机发来的低电平信号,并根据数组内容控制两个激光灯的亮灭。下面是一个示例代码:
```C++
int laserPinLeft = 2; // 左边激光灯连接到Arduino的2号引脚
int laserPinRight = 3; // 右边激光灯连接到Arduino的3号引脚
int inputPin = 4; // 单片机发来的低电平信号连接到Arduino的4号引脚
int laserArray[] = {1, 0, 1, 0}; // 激光灯亮灭的数组
int arraySize = sizeof(laserArray) / sizeof(laserArray[0]); // 数组长度
int currentIndex = 0; // 当前数组索引
void setup() {
pinMode(laserPinLeft, OUTPUT); // 将2号引脚设为输出模式
pinMode(laserPinRight, OUTPUT); // 将3号引脚设为输出模式
pinMode(inputPin, INPUT); // 将4号引脚设为输入模式
}
void loop() {
int inputState = digitalRead(inputPin); // 读取4号引脚的状态
if (inputState == LOW) { // 如果读取到低电平
int laserState = laserArray[currentIndex]; // 获取当前数组索引对应的值
if (laserState == 1) {
digitalWrite(laserPinLeft, HIGH); // 打开左边激光灯
digitalWrite(laserPinRight, LOW); // 关闭右边激光灯
} else if (laserState == 0) {
digitalWrite(laserPinLeft, LOW); // 关闭左边激光灯
digitalWrite(laserPinRight, HIGH); // 打开右边激光灯
}
currentIndex++; // 增加当前数组索引
if (currentIndex >= arraySize) {
currentIndex = 0; // 如果数组索引超过数组长度,则重置为0
}
}
阅读全文