Szervusztok!
kontroller: UNO
fejlesztő környezet: Arduino IDE
Probléma: RISING, FALLING használata
Relékontaktust fogadunk. Azt szeretném, hogy ha az érintkező zárva marad, ne befolyásolja a továbbiakban a program futását, csak a bekapcsolás pillanatára reagáljon, vagyis élvezérlést szeretnék jelen esetben felfutó élre. Induljon el a progam a felfutó élre és a programot a továbbiakban a bemenet állapotától függetlenül hajtsa végre. Mindaddig ne vegyen figyelembe a bemenet állapotát, amíg azon megint nem lesz felfutó él.
Ezt a példaprogramot találtam az élvezérlésre. Az a kérdésem, hogy ezt csak ilyen bonyolultan lehet megcsinálni, vagy van-e egyszerűbb megoldás is az élvezérlésre?
int buttonStateRising=1;
int buttonRisingEdge = 1;
int lastButtonStateRising = 1;
int buttonStateFalling=0;
int buttonFallingEdge = 1;
int lastButtonStateFalling = 0;
void setup(){
Serial.begin(9600);
digitalWrite(11,HIGH);//activation of the pull-up resistor of pin 11
digitalWrite(12,HIGH);//activation of the pull-up resistor of pin 12
}
void loop(){
//Here starts the code for detecting a rising edge on pin 11
buttonStateRising = digitalRead(11);
if (buttonStateRising != lastButtonStateRising) {
if (buttonStateRising == LOW) {
buttonRisingEdge = 0;
Serial.println("There was a rising edge on pin 11");
}
}
else{
buttonRisingEdge = 1;
Serial.println("There was no rising edge on pin 11");
}
lastButtonStateRising = buttonStateRising;
//Here starts the code for detecting a fallng edge on pin 12
buttonStateFalling = digitalRead(12);
if (buttonStateFalling != lastButtonStateFalling) {
if (buttonStateFalling == HIGH) {
buttonFallingEdge = 1;
Serial.println("There was a falling edge on pin 12");
}
}
else{
buttonFallingEdge = 0;
Serial.println("There was no falling edge on pin 12");
}
lastButtonStateFalling = buttonStateFalling;
}
RISING, FALLING
Re: RISING, FALLING
Ez a példa minden lehetőséget bemutatott.
Neked az egészből csak a RISING rész kel:
Neked az egészből csak a RISING rész kel:
Kód: Egész kijelölése
int buttonStateRising=1;
int buttonRisingEdge = 1;
int lastButtonStateRising = 1;
...
//Here starts the code for detecting a rising edge on pin 11
buttonStateRising = digitalRead(11);
if (buttonStateRising != lastButtonStateRising) {
if (buttonStateRising == LOW) {
buttonRisingEdge = 0;
Ide teszed a te feladatid megoldását
Serial.println("There was a rising edge on pin 11");
}
}
Re: RISING, FALLING
Így van, pontosan. Köszönöm szépen! Be is építem ezt a kódrészletet a programomba.
Re: RISING, FALLING
Köszönöm szépen, működik.