• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zatrzymanie pętli
#1
Jestem początkujący ale kiedyś programowałem w FORTRAN


int i=0;

void setup() {
  // put your setup code here, to run once:
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
Serial.begin(9600);
Serial.print(i);
}

void loop() {
  // put your main code here, to run repeatedly:

while(i<=255&&digitalRead(2)==LOW){
  analogWrite(9, i);
  if(digitalRead(2)==LOW)(i=i+1);
  delay(10);
  }

while(i>=0&&digitalRead(3)==LOW){
  analogWrite(9, i);
  if(digitalRead(3)==LOW)(i=i-1);
  delay(10);
  }
}


Jeżeli na pinie 2 mam stan niski program mi ładnie rozjaśnia żarówkę jeśli podczas rozjaśniania zdejmę LOW z pin 2 to proces się zatrzymuje. Jeśli na pinie 3 dam stan niski proces zachodzi odwrotnie. Dzięki warunkowi "while" mogłem "wizualnie" zatrzymać efekt ale pętla loop cały czas działa. Gdzie należy umieścić "Serial.print(i)" aby wyświetlić aktualną wartość "i" po zatrzymaniu. Czy da się zapisać tak kod aby program wykonał operację tylko raz?
 
Odpowiedź
  


Wiadomości w tym wątku
Zatrzymanie pętli - przez JWydra - 08-05-2019, 00:31
RE: Zatrzymanie pętli - przez kaczakat - 08-05-2019, 19:24
RE: Zatrzymanie pętli - przez es2 - 09-05-2019, 17:37
RE: Zatrzymanie pętli - przez bukkit - 17-07-2019, 15:37

Skocz do:


Przeglądający: 1 gości