Prog Shield XY Joystick
Et Joystick kan anvendes til at styre noget i både en X- og en Y-retning.
Joysticket er i princippet analogt, da man kan kontrollere spændingen i begge akser mellem 0 og 5V (0-1023 læst med analogRead()). I praksis er hvile-positionen på ca. 2,5V (ca. 512), dog med en vis variation. Mekanisk skal knoppen bevæges noget før der kommer en variation, og variationen op til 5V eller ned til 0V sker over et ret begrænset område, hvorefter resten at bevægelsen giver samme værdi.
Oprindeligt er Joysticket ikke tænkt ind i shieldet, men stikket til I2C-displayet giver forsyning de rigtige steder og X og Y spændingerne passe med at gå ind på A4 og A5, så man kan aflæse den analoge værdi. Der er dog nogle ulemper ved at bruge dette stik. Dels så blokerer man alle andre I2C moduler, fordi de skal anvende A4 og A5 til kommunikation, og man blokerer rent mekanisk for at få et display på.
Joysticket har også en trykknap indbygget, men den er heller ikke tilgængelig, da der ikke er ben i stikket til det.
Joysticket er købt i Kina[1]
Software
Softwaren herunder er et simpelt program, der aflæser de to kanaler og sender dem serielt, så de kan aflæses i Serial Monitor.
/*
* Lille test-program til Joy-stick, der aflæser værdierne og printer dem
* på den serielle port.
*
* Programmet fungerer ikke sammen med I2C komponenter, da de udnytter A4 og A5
*
* Bent Arnoldsen, Holstebro HTX - bar@ucholstebro.dk
*/
void setup() {
// Initialiser den serielle port
Serial.begin(9600);
}
void loop() {
// Aflæs de to akser, analogt på A4 og A5
int x = analogRead(A4);
int y = analogRead(A5);
// Print tekst og værdier på den serielle monitor
Serial.print("X = ");
Serial.print(x);
Serial.print(" \tY = ");
Serial.println(y);
// Lille pause for at give luft til seriel-porten
delay(50);
}
Layout
XY-Joystick modulets placering på programmerings-shieldet kan ses her:
Placering af XY-Joystick modulet
Referencer
- ↑ Aliexpress Købsside