• 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
klawiatura ps2 i analogowy tv
#1
cześć, celem mojego projektu jest aby po uruchomieniu arduino uno r3 to co napiszę na klawiaturzę ps2 wyświetlało się na analogowym tv. podłączenie klawiatury jest na załączonym obrazie (zdj. wtyczki) kod:

#include <font4x6.h>
#include <font6x8.h>
#include <font8x8.h>
#include <font8x8ext.h>
#include <fontALL.h>

#include <PS2Keyboard.h>  // Do obsługi klawiatury PS/2
#include <TVout.h>        // Do wyświetlania na TV
// Definicja pinów
#define CLK 3
#define DATA 8

// Inicjalizacja obiektów
PS2Keyboard keyboard;
TVout tv;

// Zmienne pomocnicze
char klawisz;

void setup() {
  // Inicjalizacja klawiatury
  keyboard.begin(8,3);

  // Inicjalizacja TV
  tv.begin(PAL, 128, 96); // Dostosuj rozdzielczość do możliwości TV
  tv.clear_screen();
  tv.select_font(font4x6);
  Serial.begin(9600); // Inicjalizacja portu szeregowego dla debugowania (opcjonalne)
}

void loop() {
  // Sprawdzanie czy jest dostępny klawisz
  if (keyboard.available()) {
    klawisz = keyboard.read();

    // Wyświetlanie na TV
    tv.print(0, 0, klawisz); // Wyświetla znak w lewym górnym rogu

    // Debugowanie (opcjonalne) - wyświetlanie w konsoli
    Serial.print("Klawisz: ");
    Serial.println(klawisz);
  }
}

no problem taki że na tv wyświetlają się nie te literki.
z tego co wiem jest coś nie tak z interpretowaniem kodów wysyłanych przez klawiaturę bo na serial monitor wyświetlają się sześciany.

jakby ktoś pomógł to by było fajnie.
 
Odpowiedź
#2
Według inkludów keyboard.read() zwraca int, może zmień deklarację zmiennej klawisz na int. -1 oznacza, że nie ma nic naciśnięte. Normalnie klawiatura wysyła do PC tzw scancody, odpowiadające mniej więcej fizycznej lokalizacji danego klawisza na klawiaturze (Q,W,E,R,T mają kolejne scancody). Moduł od klawiatury ma w sobie mapy klawiatury, żeby zwracać kody ASCII. Domyślnie używany jest US.
 
Odpowiedź
#3
zmieniłem teraz tv wyświetla brak sygnału.
kod:

#include <font4x6.h>
#include <font6x8.h>
#include <font8x8.h>
#include <font8x8ext.h>
#include <fontALL.h>

#include <PS2Keyboard.h> // Do obsługi klawiatury PS/2
#include <TVout.h> // Do wyświetlania na TV
// Definicja pinów
#define CLK 3
#define DATA 8

// Inicjalizacja obiektów
PS2Keyboard keyboard;
TVout tv;

// Zmienne pomocnicze
int klawisz;

void setup() {
// Inicjalizacja klawiatury
keyboard.begin(8,3);

// Inicjalizacja TV
tv.begin(PAL, 128, 96); // Dostosuj rozdzielczość do możliwości TV
tv.clear_screen();
tv.select_font(font4x6);
Serial.begin(9600); // Inicjalizacja portu szeregowego dla debugowania (opcjonalne)
}

void loop() {
// Sprawdzanie czy jest dostępny klawisz
if (keyboard.available()) {
klawisz = keyboard.read();

// Wyświetlanie na TV
tv.print(0, 0, klawisz); // Wyświetla znak w lewym górnym rogu

// Debugowanie (opcjonalne) - wyświetlanie w konsoli
Serial.print("Klawisz: ");
Serial.println(klawisz);
}
}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości