• 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
SandBox 5 - MenuBackend - strach ma wielkie oczy?
#3
Witam
Gdzieś lub kiedyś popełniłem to :-)
Kod:
// --- Poniżej definicje funkcji obsługi kilku różnych klawiatur ------------------------------------/
// --- klawiatura analogowa podpięta pod pin A0 np moduł LCD + 5 key firmy DFRobot ------------------/
int czytaj_1()
{
  int pinAnalog=0;
  int stan_Analog = analogRead(pinAnalog);delay(30);//Serial.println(stan_Analog);
  if (stan_Analog > 1000) return -1; // dla wartosci poza zakresem
  if (stan_Analog < 50)   return 0;  // w prawo  
  if (stan_Analog < 150)  return 1;  // do gĂłry
  if (stan_Analog < 300)  return 2;  // w dół
  if (stan_Analog < 500)  return 3;  // w lewo  
  if (stan_Analog < 700)  return 4;  // OK
  return -1;                         // nic nie wcisnieto
}
// --- popularny joystick z allegro za ok 20 zł. -----------------------------------------------------/
int czytaj_2()
{
  int poziom=0;int pion=1;int pinD=4;
 // poziom - nr wejścia analogowego do którego podłączona jest manetka joysticka dla ruchu lewo-prawo
 // pion   - nr wejścia analogowego do którego podłączona jest manetka joysticka dla ruchu góra-dół
 // pinD   - nr pinu cyfrowego do którego podłączony jest przycisk OK w joysticku
  int stan1= analogRead(pion); {delay(60);if(stan1>0)stan1=(stan1+50)/1024+1;}  
  int stan2= analogRead(poziom); {delay(60);if(stan2>0)stan2=(stan2+50)/1024+1;}
  int stanD=digitalRead(pinD);
  if(stanD==LOW) return 4;           // OK
  if(stan1==0) return 2;             // w dół
  if(stan1==2) return 1;             // do gĂłry
  if(stan2==0) return 3;             // w lewo
  if(stan2==2) return 0;             // w prawo
  return -1;                         // nic nie wcisnieto
}
// --- wersja dla 5-ciu przycisków cyfrowych --- (np. 2,4,5,6,8 ) -------------------------------------/
int czytaj_3()
{
 int gora=2, lewo=4, ok=5, prawo=6,dol=8;
 // gora   - nr pinu cyfrowego do którego podłączony jest przyciski góra
 // lewo   - nr pinu cyfrowego do którego podłączony jest przyciski lewo
 // ok     - nr pinu cyfrowego do którego podłączony jest przyciski OK
 // prawo  - nr pinu cyfrowego do którego podłączony jest przyciski prawo
 // dol    - nr pinu cyfrowego do którego podłączony jest przyciski dół
 if(digitalRead(gora)==LOW) return 1;
 if(digitalRead(lewo)==LOW) return 3;
 if(digitalRead(ok)==LOW) return 4;
 if(digitalRead(prawo)==LOW) return 0;
 if(digitalRead(dol)==LOW) return 2;
 return -1;
}
Masz tu 3 różne funkcje do obsługi trzech różnych typów klawiatur. 
W Twoim przypadku najlepiej będzie pasować czytaj_3()... jest dla 5 klawiszy ale przecież nie musisz wszystkiego używać.
Dla 4 standardem jest: OK, WSTECZ, GÓRA, DÓŁ (lub prawo lewo).
Pozdrawiam
 
Odpowiedź
  


Wiadomości w tym wątku
RE: SandBox 5 - MenuBackend - strach ma wielkie oczy? - przez wojtekizk - 15-02-2016, 21:57

Skocz do:


Przeglądający: 1 gości