Stap 2: Software
Ik hoop reacties zijn uitputtende:
costants:
Const int sm = 2; beweging sensor
Const int buttonPin_t3 = 5; omhoog knoop
Const int buttonPin_t2 = 4; knop ingedrukt
Const int ledPin = 13; LED voor selectievakje knoppen
Const int d1 = 11; motor omhoog
Const int d0 = 12; motor omlaag
variabelen
int ContatoreSensoreMovimento = 0; teller beweging sensor
int Contatore_t3_t2 = 0;
int RegistroOutputd1 = 0;
int RegistroOutputd0 = 0;
variabelen sm:
int State_sm = 0; staat
int lastState_sm = 0; laatste status
variabili t3:
int buttonState_t3 = 0; staat
int lastButtonState_t3 = 0; laatste status
variabili t2:
int buttonState_t2 = 0; staat
int lastButtonState_t2 = 0; laatste status
VOID Setup {}
initialisatie invoer pin:
pinMode (sm, INPUT);
pinMode (buttonPin_t2, INPUT);
pinMode (buttonPin_t3, INPUT);
initialisatie uitgang pins:
pinMode (d1, OUTPUT);
pinMode (d0, OUTPUT);
pinMode (ledPin, OUTPUT);
iinitialize seriële communicatie 9600 bps:
Serial.begin(9600);
}
void loop {}
SM
Lees pin:
State_sm = digitalRead(sm);
Vergelijk de buttonState om de vorige versie
Als (State_sm! = lastState_sm) {}
Als de status is veranderd, de teller ophogen
Als (State_sm == LOW) {}
Als de huidige status laag vervolgens is
wend van korting aan op:
Als (RegistroOutputd1 == 1) {}
ContatoreSensoreMovimento ++;
}
Als (RegistroOutputd0 == 1) {}
ContatoreSensoreMovimento--;
}
Serial.println("on_sm");
Serial.Print ("ContatoreSensoreMovimento:");
Serial.println (ContatoreSensoreMovimento, DEC);
}
else {}
wend van korting aan op:
Serial.println("off_sm");
}
}
opslaan van de huidige status als de laatste staat
voor de volgende keer door de lus
lastState_sm = State_sm;
Als (ContatoreSensoreMovimento % 4 == 0) {}
digitalWrite (ledPin, hoge);
}
else {}
digitalWrite (ledPin, laag);
}
T3
Lees pin:
buttonState_t3 = digitalRead(buttonPin_t3);
Vergelijk de buttonState om de vorige versie
Als (buttonState_t3! = lastButtonState_t3) {}
Als de huidige toestand dan hoog is:
Als (buttonState_t3 == HIGH) {}
Als de teller is < 1:
Als (Contatore_t3_t2 < 1) {}
_ / / verhogen de teller
wend van korting aan op:
Contatore_t3_t2 ++;
Serial.println("on_t3");
Serial.Print ("Contatore_t3_t2:");
Serial.println (Contatore_t3_t2, DEC);
}
}
else {}
Als de huidige status laag vervolgens is
wend uit aan uit
Serial.println("off_t3");
}
}
opslaan van de huidige status als de laatste staat
voor de volgende keer door de lus
lastButtonState_t3 = buttonState_t3;
stabilimento massimo contatore 1
T2
Lettura del pin:
buttonState_t2 = digitalRead(buttonPin_t2);
Vergelijk de buttonState om de vorige versie
Als (buttonState_t2! = lastButtonState_t2) {}
Als de huidige toestand dan hoog is:
Als (buttonState_t2 == HIGH) {}
Als de teller > -1:
Als (Contatore_t3_t2 > -1) {}
_ / / verhogen de teller
wend van korting aan op:
Contatore_t3_t2--;
Serial.println("on_t2");
Serial.Print ("Contatore_t3_t2:");
Serial.println (Contatore_t3_t2, DEC);
}
}
else {}
Als de huidige status laag vervolgens is
wend van bij af:
Serial.println("off_t2");
}
}
opslaan van de huidige status als de laatste staat
voor de volgende keer door de lus
lastButtonState_t2 = buttonState_t2;
Als (ContatoreSensoreMovimento < 35 & & Contatore_t3_t2 == 1) {}
digitalWrite (d1, hoge);
RegistroOutputd1 = 1;
}
else {}
digitalWrite (d1, laag);
RegistroOutputd1 = 0;
Als (ContatoreSensoreMovimento == 35 & & Contatore_t3_t2 == 1) {}
Contatore_t3_t2 = 0;
}
}
Als (ContatoreSensoreMovimento > 0 & & Contatore_t3_t2 == -1) {}
digitalWrite (d0, hoge);
RegistroOutputd0 = 1;
}
else {}
digitalWrite (d0, laag);
RegistroOutputd0 = 0;
Als (ContatoreSensoreMovimento == 0 & & Contatore_t3_t2 == -1) {}
Contatore_t3_t2 = 0;
}
}
}