Stap 4: De Code
Haak je arduino op uw computer, brand-up van de arduino programma, vervolgens uittreksel en stijfsel van deze code.Een korte uitleg:
De potentionmeters voeden waarden aan de arduino op basis van hun positie. Deze waarden worden gebruikt om te bepalen van de snelheid en richting van de cursor te verplaatsen. De arduino verzend deze informatie naar de computer. Wanneer de knop is ingedrukt, de status van digitale pin 2 gewijzigd op hoog, en de arduino verzendt een opdracht te klikken van de muis op de computer.
Van arduino.cc:
/*
JoystickMouseControl
Hiermee bepaalt u de muis van een joystick op een Arduino Leonardo of Micro.
Maakt gebruik van een drukknop op en uitschakelen muiscontrole, en
een tweede drukknop te klikken op de linker mouse button
Hardware:
* 2-as joystick aangesloten op pinnen A0 en A1
* druktoetsen aangesloten op pin D2 en D3
De bewegingen van de muis is altijd relatief. Deze sketch leest
twee analoge ingangen die variëren van 0 tot 1023 (of minder aan beide zijden)
en vertaalt ze in reeksen van -6 tot en met 6.
De schets wordt ervan uitgegaan dat de joystick rust waarden rond de
midden van het bereik, maar dat zij binnen een drempelwaarde variëren.
Waarschuwing: Wanneer u de opdracht Mouse.move(), de Arduino neemt
over uw muis! Zorg ervoor dat u controle hebt voordat u de opdracht.
Deze sketch bevat een drukknop om te schakelen van de muis controle staat, dus
u kunt in- en uitschakelen muisbesturing.
gemaakt op 15 Sept 2011
bijgewerkt 28 Mar 2012
door Tom Igoe
Deze code is in het publieke domein
*/
pincodes voor schakelaar, joystick assen en LED instellen
Const int switchPin = 2; schakelaar voor het inschakelen en uitschakelen muiscontrole
Const int muisknop = 3; invoer pin voor de muis-drukknop
Const int xAxis = A0; joystick X as
Const int yAxis = a1 worden verkregen; joystick Y as
Const int ledPin = 5; Muiscontrole LED
parameters voor het lezen van de joystick:
int bereik = 12; Output bereik van X of Y beweging
int netbootAnswerRequests = 5; vertraging van de reactie van de muis, in ms
int drempel = bereik/4; rust drempel
int centrum = bereik/2; rust positiewaarde
Boole mouseIsActive = false; wel of niet om de muis te besturen
int lastSwitchState = laag; vorige schakelaar staat
VOID Setup {}
pinMode (switchPin, INPUT); de schakeloptie-pin
pinMode (ledPin, OUTPUT); de LED-pin
Neem controle van de muis:
Mouse.begin();
}
void loop {}
Lees de schakelaar:
int switchState = digitalRead(switchPin);
Als het gewijzigd, en het is hoog, schakelt de muis staat:
Als (switchState! = lastSwitchState) {}
Als (switchState == HIGH) {}
mouseIsActive =! mouseIsActive;
LED om aan te geven van Muisstatus inschakelen:
digitalWrite (ledPin, mouseIsActive);
}
}
Sla schakelaar staat voor de volgende vergelijking:
lastSwitchState = switchState;
Lees en schaal van de twee assen:
int xReading = readAxis(A0);
int yReading = readAxis(A1);
Als het besturingselement Muisstatus actief is, verplaatst u de muis:
Als (mouseIsActive) {}
Mouse.move (xReading, yReading, 0);
}
Lees de muisknop los en klik of klik niet op:
Als de muisknop wordt ingedrukt:
Als (digitalRead(mouseButton) == HIGH) {}
Als de muis niet is ingeschakeld, drukt u op het:
if (!. Mouse.isPressed(MOUSE_LEFT)) {}
Mouse.Press(MOUSE_LEFT);
}
}
anders zou de muisknop niet is ingedrukt:
else {}
Als de muis is ingedrukt, vrijgeven:
Als (Mouse.isPressed(MOUSE_LEFT)) {}
Mouse.release(MOUSE_LEFT);
}
}
delay(responseDelay);
}
/*
leest een as (0 of 1 voor x of y) en is volledig schaalbaar de
analoge invoerbereik naar een bereik van 0 tot < bereik >
*/
int readAxis (int thisAxis) {}
Lees de analoge ingang:
int lezing = analogRead(thisAxis);
kaart de lezing uit het analoge invoerbereik om het resulterende uitvoerbereik:
lezen = kaart (lezen, 0, 1023, 0, variëren);
Als de uitvoer lezen van buiten de
positie drempel rusten, gebruiken:
int afstand = lezing - centrum;
Als (abs(distance) < drempel) {}
afstand = 0;
}
de afstand voor deze as als resultaat:
retourneren van afstand;
}