Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define UP_VAL 1000
- #define DW_VAL 25
- #define RX_VAL 1000
- #define SX_VAL 25
- #define VRX_PIN A0
- #define VRY_PIN A1
- #define SW_PIN A2
- // Usiamo una enumerazione per identificare le azioni eseguite con il joystick
- enum direzione{ BUTTON, UP, DOWN, RIGHT, LEFT, NOT };
- direzione joystick(void){
- unsigned int X,Y;
- X = analogRead(VRX_PIN); // Destra - Sinistra
- Y = analogRead(VRY_PIN); // Su - Giù
- delay(50);
- if(digitalRead(SW_PIN) == LOW){
- delay(50); // Semplice antirimbalzo per il pulsante
- return BUTTON;
- }
- else if(Y >= UP_VAL)
- return UP;
- else if(Y <= DW_VAL)
- return DOWN;
- else if(X >= RX_VAL)
- return RIGHT;
- else if(X <= SX_VAL)
- return LEFT;
- else
- return NOT;
- }
- void setup() {
- pinMode(SW_PIN, INPUT_PULLUP);
- Serial.begin(9600);
- }
- void loop() {
- switch(joystick()){
- case BUTTON:
- Serial.println("Button pressed");
- break;
- case UP:
- Serial.println("Up");
- break;
- case DOWN:
- Serial.println("Down");
- break;
- case LEFT:
- Serial.println("Left");
- break;
- case RIGHT:
- Serial.println("Right");
- break;
- case NOT:
- break;
- }
- }
Add Comment
Please, Sign In to add comment