RISING, FALLING

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

RISING, FALLING

HozzászólásSzerző: LErvin » 2017. május 24. szerda, 20:42

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;

}

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3232
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: RISING, FALLING

HozzászólásSzerző: kapu48 » 2017. május 24. szerda, 22:56

Ez a példa minden lehetőséget bemutatott.

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");
    }
  }

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: RISING, FALLING

HozzászólásSzerző: LErvin » 2017. május 25. csütörtök, 4:05

Így van, pontosan. Köszönöm szépen! Be is építem ezt a kódrészletet a programomba.

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: RISING, FALLING

HozzászólásSzerző: LErvin » 2017. május 26. péntek, 6:13

Köszönöm szépen, működik.


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég