• 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
Biblioteka keyboard i odczyt z pinu analogowego.
#1
Oto kod:
Kod:
#include <Keyboard.h> //Biblioteka używana

int skret = 0;// zmienna regulowana potencjometrem

void setup() {
 Serial.begin(9600); //Monitor szeregowy
 pinMode(7, INPUT_PULLUP); // przycisk uruchamiający aby arduino nie wciskało od razu klawiszy
 }
void loop() {
  skret = analogRead(0); //odczyt z pinu A0
 Serial.println(skret);
 if (digitalRead(7) == LOW){ //jeżeli przycisk załączony do GND
 if (skret > 0 && skret < 34)//jeżeli wartość odczytana będzie między 0, a 34
   Keyboard.press('4'); //naciśnij klawisz 4
   Serial.println(skret); //wydrukuj wartość skret
   delay(250); //czekaj 250ms
   }
   if (skret > 35 && skret < 68){
   Keyboard.press('5');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 69 && skret < 102){
   Keyboard.press('6');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 103 && skret < 136){
   Keyboard.press('7');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 137 && skret < 170){
   Keyboard.press('8');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 171 && skret < 204){
   Keyboard.press('9');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 205 && skret < 238){
   Keyboard.press('z');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 239 && skret < 272){
   Keyboard.press('x');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 273 && skret < 307){
   Keyboard.press('c');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 308 && skret < 340 ){
   Keyboard.press('v');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 341 && skret < 374){
   Keyboard.press('b');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 375 && skret < 408){
   Keyboard.press('n');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 409 && skret < 442){
   Keyboard.press('m');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 443 && skret < 476){
   Keyboard.press('a');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 477 && skret < 510){
   Keyboard.press('s');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 511 && skret < 516){
   Keyboard.press('d');
   Serial.println(skret);
   delay(250);
   }
//---------------------------------------
   if (skret > 517 && skret < 561){
   //wyrównanie
   Keyboard.press('f');
   Serial.println(skret);
   delay(250);
   }
//---------------------------------------
   if (skret > 562 && skret < 578){
   Keyboard.press('g');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 579 && skret < 612){
   Keyboard.press('h');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 613 && skret < 646){
   Keyboard.press('j');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 647 && skret < 681){
   Keyboard.press('k');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 682 && skret < 725){
   Keyboard.press('l');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 726 && skret < 759){
   Keyboard.press('q');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 760 && skret < 793){
   Keyboard.press('w');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 794 && skret < 827){
   Keyboard.press('e');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 828 && skret < 861){
   Keyboard.press('r');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 862 && skret < 895){
   Keyboard.press('t');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 896 && skret < 929){
   Keyboard.press('y');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 930 && skret < 953){
   Keyboard.press('u');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 954 && skret < 987){
   Keyboard.press('i');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 988 && skret < 1022){
   Keyboard.press('o');
   Serial.println(skret);
   delay(250);
   }
   if (skret > 1022 && skret < 1024){
   Keyboard.press('p');
   Serial.println(skret);
   delay(250);
   }
   }
}
 
Odpowiedź
#2
PS.zabrakło mi miejsca. Smile

Witam chcę stworzyć do moich potrzeb taki projekt: podłączyłem potencjometr do arduino i tak to wygląda: W programie odczytuję wartość 0-1024 i w zależności jaką wartość odczytam taki klawisz będzie miało arduino wciskać. I po uruchomieniu programu przez ~ 3s wszystko działa jak należy ale po nich zmienna nadal się zmienia przy kręceniu potencjometrem, a przyciski nie chcą się inne wciskać.
Że zmienna się zmienia to dobrze ale litera się inna nie wciska i to jest problemem.
 
Odpowiedź
#3
w tej linijce masz brak klamerki

if (skret > 0 && skret < 34)//jeżeli wartość odczytana będzie między 0, a 34

powinno być tak

if (skret > 0 && skret < 34){ //jeżeli wartość odczytana będzie między 0, a 34
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości