• 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
Pomóżcie mi zrozumieć ten kod
#1
To jest podstawowy kod służący do włączania i wyłączania diody LED za pomocą przycisku… ale nie rozumiem, dlaczego to działa… proszę, niech mi ktoś w tym pomoże…

Kod:
int ledPin = 12;
int buttonPin =8;
int ledstate = 0;
int swi_old = 1;
int swi_new;
int dt = 100;

void setup() {
  // put your setup code here, to run once:
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);

}

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

  swi_new = digitalRead(buttonPin);

  if(swi_old == 0 && swi_new == 1)
  {
    if(ledstate == 0)
    {
      digitalWrite(ledPin, HIGH);
      ledstate = 1;
    }
    else
    {
      digitalWrite(ledPin, LOW);
      ledstate = 0;
    }


  }
  swi_old = swi_new;
  delay(dt);

}
...
 
Odpowiedź
#2
(26-06-2026, 08:20)comeonSAy napisał(a): To jest podstawowy kod służący do włączania i wyłączania diody LED za pomocą przycisku… ale nie rozumiem, dlaczego to działa… proszę, niech mi ktoś w tym pomoże…

Kod:
int ledPin = 12;
int buttonPin =8;
int ledstate = 0;
int swi_old = 1;
int swi_new;
int dt = 100;

void setup() {
  // put your setup code here, to run once:
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);

}

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

  swi_new = digitalRead(buttonPin);

  if(swi_old == 0 && swi_new == 1)
  {
    if(ledstate == 0)
    {
      digitalWrite(ledPin, HIGH);
      ledstate = 1;
    }
    else
    {
      digitalWrite(ledPin, LOW);
      ledstate = 0;
    }


  }
  swi_old = swi_new;
  delay(dt);

}
A czego nie rozumiesz - kod jest dość prosty, zmienna swi_old pamięta stan przycisku a ledstate - czy led jest włączony. Za każdym razem gdy ktoś puści przycisk (swi_old == 0 && swi_new = 1) stan led zmieniany jest na przeciwny.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości