• 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
Wysyłanie tekstu
#1
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);
}
 
Odpowiedź
#2
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.
 
Odpowiedź
#3
Szczerze mówiąc chodziło mi o jakiś konkretny przykład
 
Odpowiedź
#4
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?
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#5
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?
 
Odpowiedź
#6
Dzięki
 
Odpowiedź
#7
Generalnie nie zajmuje się tym wcale ale chyba poczytam więcej dzięki wielkie
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości