en gl es ca gl gl gl gl es gl en gl es en pt ceb pt pt gl gl gl gl gl gl gl gl gl pt gl gl pt gl gl gl gl en gl gl gl gl gl gl ja gl en gl gl gl gl en gl es es gl gl gl pt es gl gl gl pt pt en gl ar es gl en en en gl gl gl ca gl ca gl gl gl gl gl gl gl gl it gl gl gl gl gl gl gl gl gl gl en it es es gl es gl es es gl pt en gl gl ca fr fr gl gl gl pt es sv es gl sv pt en gl hu en gl gl en gl it it es uk pt gl gl gl gl gl en gl gl es gl gl vi gl gl gl gl es es gl gl gl gl gl it gl es en en en gl en en en en gl en en en en gl
Un Joystick ou panca de mando é un dispositivo de control de dous ou tres eixos moi utilizado nos xogos de ordenador e de consola. Ademais dos pulsadores de acción, posúen un sistema para detectar a dirección do movemento:
Os analóxicos constan de dous potenciómetros, un para o eixe X e outro para o eixe Y, cuxo movemento marca as coordenadas de posición ou o movemento. Son, por exemplo, os que se usan no mando da Play Station.
Os dixitais len o estado de catro micro-interruptores situados na base para detectar a dirección do movemento.
O que imos utilizar aquí é un Joystick analóxico dos que venden para conectar co Arduíno, pero podes reciclar algún dos que tes por casa.
Pode resultarnos útil para o control do movemento dos servos dun brazo robótico, dun vehículo, etc.
GND e VCC: Son os pins de alimentación.
X e Y: Son os potenciómetros. Conectámolos a entradas analóxicas. No noso caso X a A0 e Y a A1.
SW ou KEY: É o pulsador. Conectarémolo a unha entrada dixital, no noso caso ao pin2. Debes engadir unha resistencia de 10 kΩ para conectalo como vimos nas prácticas de pulsadores. Dependendo do modelo de joystick, podemos atopar que o pulsador conecta entre VCC e o pin SW, ou entre GND e o pin SW (Podes comprobalo cun polímetro). No primeiro caso a conexión sería Pull-Down (Temos un 0 por defecto  e un 1 ao premer) e no segundo caso sería Pull-Up (temos un 1 por defecto e un 0 cando prememos)
O Joystick do que dispoño ten o pulsador conectado a GND, polo que utilizarei a conexión pull-up.
O primeiro que cómpre facer é ver que datos nos dan os potenciómetros segundo a súa posición e a orientación do Joystick. Imos ver os valores na consola.
Este programa fai que o servo1 se mova segundo o movemento do potenciómetro do eixe X. Antes podes mirar nesta páxina como se conecta un servo.
Como cada vez que soltamos o joystick volve a posición central de repouso, imos programar un aumento e unha diminución do xiro segundo movamos o cursor, e no rango próximo á posición de repouso non ordenamos facer nada.
#include   // Importamos a librería servo // Declaración de variables: Servo servo1; int eixeX = A0; int eixeY = A1; int pulsador = 2; int LED = 13; int pot1; // variable que le o valor do potenciómetro do eixe X, entre 0 e 1023 int xiro1=90; // variable que enviamos ao servo1, entre 0 e 180 int variacion=3; // O valor que sumamos ou restamos ao xiro cada vez que se move o potenciómetro. // Configuración: void setup() { servo1.attach(6); // Servo1 conectado no pin 6 pinMode(LED, OUTPUT); Serial.begin(9600); } // Programa: void loop() { // Control do servo1 co potenciómetro do eixe X // A valores do EixeX menores que 400 desconta graos e a maiores de 600 aumenta os graos de xiro. pot1 = analogRead(eixeX); // Asignamos a variable "pot1" ao valor lido en A1 if (pot1 600){ xiro1=xiro1+variacion; if (xiro1>180){ // Evitamos que o xiro que envíe sexa maior que 180 xiro1=180; } } Serial.println("Xiro1="+String(xiro1)); servo1.write(xiro1); delay(50); // Control do LED if (digitalRead(pulsador) == HIGH){ digitalWrite(LED, HIGH); } else{ digitalWrite(LED, LOW); } }
Segundo servo: Engade o necesario para que se mova un segundo servo co movemento do potenciómetro do eixe Y.
Matriz de LEDs: Controla mediante un joystick a posición do LED que está aceso nunha matriz 8×8, desde a posición (0,0) ata a posición (7,7).
Deseña un soporte para o joystick e imprímeo en 3D. Exemplo:
[By sgfx CC-BY from thingiverse]
Deixa un comentario Cancelar a resposta
Nome Correo electrónico Sitio web
Gardar o meu nome, correo electrónico e web neste navegador para a próxima vez que faga un comentario.
Descrición de Arduíno UNO
O IDE de Arduíno
Entradas e saídas dixitais
Condicional if … else
Sinais PWM e lectura serial
Array de LEDs e funcións
A posición dun servo
Servos de xiro continuo
Motor de corrente continua
Motores paso a paso
Sensor de Luz LDR
Sensor de temperatura LM35 e TMP36
Sensor de temperatura e humidade DHT11
Sensor de temperatura DS18B20
Sensor de movemento PIR
Sensor de cor TCS3200
Sensor de cor TCS34725 RGB
Sensor de auga no solo
Medindo o tempo 1
Medindo o tempo 2: RTC
Bluetooth mestre + escravo
O tanque de auga
Reloxo de area dixital
A máquina máis inútil
Clasificador M&M’s por cor
Alarma para a cortadora láser
© 2022 Arduino • Creado con GeneratePress
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.