void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(3, OUTPUT); //总开关指示灯
pinMode(4, OUTPUT); //刹车开关指示灯
pinMode(5, OUTPUT); //增升开关指示灯
pinMode(6, INPUT_PULLUP); // 刹车按钮
pinMode(7, INPUT_PULLUP); // 增升按钮
pinMode(8, INPUT_PULLUP); // 摇杆按钮
pinMode(9, INPUT_PULLUP); // 开关按钮
pinMode(10, OUTPUT); //主燃烧室指示灯
pinMode(11, OUTPUT); //双变燃烧室指示灯
pinMode(12, OUTPUT); //加力燃烧室指示灯
pinMode(A0, INPUT); //主燃烧室油门杆
pinMode(A1, INPUT); //双变燃烧室油门杆
pinMode(A2, INPUT); //加力燃烧室油门杆
pinMode(A3, INPUT); //摇杆航向角变化值
pinMode(A4, INPUT); //摇杆俯仰角变化值
}
void loop() {
// put your main code here, to run repeatedly:
int button = digitalRead(9); //总控制开关
if(button)
{
digitalWrite(3, HIGH); //总指示灯亮
//三个油门杆的位置读取
int throttle1Value = analogRead(A0) / 1023.0 * 100.0;
int throttle2Value = analogRead(A1) / 1023.0 * 100.0;
int throttle3Value = analogRead(A2) / 1023.0 * 100.0;
//摇杆参数
int joystickXValue = 5-analogRead(A3) / 1023.0 * 10.0;
int joystickYValue = 5-analogRead(A4) / 1023.0 * 10.0;
int joystickButton = digitalRead(8); //摇杆开关
//
int brakeButton = digitalRead(6); //刹车开关
int liftButton = digitalRead(7); //增升开关
Serial.print("主燃烧室油门位置:"); Serial.println(throttle1Value);
Serial.print("双变燃烧室油门位置:"); Serial.println(throttle2Value);
Serial.print("加力燃烧室油门位置:"); Serial.println(throttle3Value);
Serial.print("航向角变化量:"); Serial.println(joystickXValue);
Serial.print("俯仰角变化量:"); Serial.println(joystickYValue);
Serial.print("摇杆开关:"); Serial.println(joystickYValue);
//是否刹车
if(brakeButton) // 假设阈值是10
{
digitalWrite(4, HIGH);
}
else
{
digitalWrite(4, LOW);
}
//是否增升
if(liftButton) // 假设阈值是10
{
digitalWrite(5, HIGH);
}
else
{
digitalWrite(5, LOW);
}
//主燃烧室油门指示灯控制
if(throttle1Value >= 1) // 假设阈值是10
{
digitalWrite(10, HIGH);
}
else
{
digitalWrite(10, LOW);
}
//双变燃烧室油门指示灯控制
if(throttle2Value >= 1) // 假设阈值是10
{
digitalWrite(11, HIGH);
}
else
{
digitalWrite(11, LOW);
}
//加力燃烧室油门指示灯控制
if(throttle3Value >= 1) // 假设阈值是10
{
digitalWrite(12, HIGH);
}
else
{
digitalWrite(12, LOW);
}
//delay(200);
// 移除delay,以便更实时地响应
}
else
{
digitalWrite(3, LOW); //总指示灯灭
digitalWrite(4, LOW); //总指示灯灭
digitalWrite(5, LOW); //总指示灯灭
digitalWrite(10, LOW); //总指示灯灭
digitalWrite(11, LOW); //总指示灯灭
digitalWrite(12, LOW); //总指示灯灭
}
}