Arduino Polska Forum
Wysyłanie tekstu - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Wysyłanie tekstu (/watek-wysy%C5%82anie-tekstu)



Wysyłanie tekstu - szymekmichal - 27-12-2019

Witam chce mój problem polega na tym ze chce wysyłać tekst pin2 i pin3 inny tekst w programie poniżej tekst jest wysyłany ale raz  ten a raz drugi a ja chce np. x raz naciśnięty pin2 x wysłany tekst i analogicznie pin 3 co mam zmienić w moim kodzie 



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

void loop() {
  // put your main code here, to run repeatedly:
if(digitalRead(3)==LOW);
else
Serial.println("SIEMA");
while(digitalRead(3)==HIGH);
delay(25);


if(digitalRead(2)==LOW);
else
Serial.println("ELO");
while(digitalRead(2)==HIGH);
delay(25);
}


RE: Wysyłanie tekstu - Agregacik - 27-12-2019

Poczytaj o funkcji "if". Poznaj co to warunek a co ciało funkcji. W Twoim kodzie brak ciała funkcji. Ponadto trzeba zrobić "zatrzask", aby dopiero po ponownym naciśnięciu przycisku możliwe było wysłanie tekstu. Podpowiem, trzeba użyć dodatkowych zmiennych ustawianych np na HIGH przy naciśnięciu przycisku a na LOW przy puszczeniu i dodać ich do warunku w "if". Trzeba jeszcze opanować programowo drgania styków poczytaj o tym.


RE: Wysyłanie tekstu - szymekmichal - 27-12-2019

Szczerze mówiąc chodziło mi o jakiś konkretny przykład


RE: Wysyłanie tekstu - Robson Kerman - 27-12-2019

Najpierw trzeba się nauczyć języka C/C++, a dopiero potem opanowywać przykłady programowania mikroprocesorów.
Można niby to robić jednocześnie, ale szanse na sukces będą znikome.
Odpowiadając na problem: Ten "kod" nie przypomina mi nic co znałem do tej pory.
W jakim języku programujesz?


RE: Wysyłanie tekstu - Agregacik - 27-12-2019

Poniżej masz przykład:
Kod:
byte p1 = HIGH;
byte p2 = HIGH;

void setup() {

  pinMode(3, INPUT_PULLUP);
  pinMode(2, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {

  if (digitalRead(3) == LOW)  //jak naciśniemy przycisk (pin 3)
  { //to dzieje się to co w nawiasie klamrowym, czyli ciało funkcji 1
    delay(20);//opóźnienie na drganie styków może trzeba dobrać
    if (digitalRead(3) == LOW && p1 == HIGH) // jeżeli po odczekaniu 20 milisekund nadal jest LOW i zmienna p1 jest HIGH
    { // to wykonuje się to co jest w nawiasie klamrowym czyli ciało funkcji 2
      p1 = LOW;
      Serial.println("SIEMA");
    } // tu koniec ciała funkcji 2
  } // tu koniec ciała funkcji 1
  if (digitalRead(3) == HIGH)
  {
    p1 = HIGH;
  }


  if (digitalRead(2) == LOW)
  {
    delay(20); //opóźnienie na drganie styków może trzeba dobrać
    if (digitalRead(2) == LOW && p2 == HIGH)
    {
      p2 = LOW;
      Serial.println("ELO");
    }
  }
  if (digitalRead(2) == HIGH)
  {
    p2 = HIGH;
  }
}
Działa?


RE: Wysyłanie tekstu - szymekmichal - 27-12-2019

Dzięki


RE: Wysyłanie tekstu - szymekmichal - 27-12-2019

Generalnie nie zajmuje się tym wcale ale chyba poczytam więcej dzięki wielkie