Estoy usando un joystick de pulgar para Arduino UNO, tratando de trabajar con él.
Hay x
y y
valores que obtengo con la entrada analógica A0
y A1
, y un z
valor para el clic que debería haber obtenido de la entrada digital D7
, pero desafortunadamente lo conecté a otra entrada analógica ( A3
).
Este es el cableado de la especificación.
Entonces, ahora que arreglé mi error, obtengo x
from A1
y y
from A2
, pero z
siempre es cero. ¿Existe la posibilidad de que la parte del joystick esté dañada físicamente? O peor, mi Arduino UNO? ¿Cómo puedo verificar?
int sensorPin = 5;
int value = 0;
void setup() {
pinMode(7, OUTPUT);
Serial.begin(9600);
}
void loop() {
value = analogRead(0);
Serial.print("X:");
Serial.print(value, DEC);
value = analogRead(1);
Serial.print(" | Y:");
Serial.print(value, DEC);
value = digitalRead(7);
Serial.print(" | Z: ");
Serial.println(value, DEC);
delay(100);
}
La especificación específica china está aquí . ¡Ojalá también estuviera disponible en inglés! :-/
¿Daño el clicker del joystick analógico al usar la entrada analógica en lugar de la digital?
No. Ninguno de los modos extraerá cantidades dañinas de corriente a través del dispositivo.
Pero parece que ha configurado el pin 7 para que sea una salida y está tratando de leer los valores digitales de ese pin. ¿Es eso lo que pretendías? :)
En su lugar, conviértalo en una entrada y, en general, analice de cerca su código línea por línea.
Más información: configurar un pin para que sea una entrada configurará su microcontrolador para usar el modo "High-Z" en ese pin en particular. Esto significa que el pin se convierte en una entrada de alta impedancia ("Z" es la letra estándar para impedancia). Esto significa que casi ninguna corriente puede extraerse o sumergirse en ese pin.
Mientras está en estado High-Z (también conocido como "tri-estado", o simplemente como "entrada"), este pin puede hacer lecturas de entrada digital (niveles lógicos... 0 y 1) o lecturas analógicas (un 8- la entrada analógica de bits puede darle un valor entre 0x00 y 0xff), que puede escalar matemáticamente a un voltaje entre 0V y VCC.
pinMode(7, OUTPUT)
y luego digitalRead(7)
. ¿No es el caso?
vladimir cravero
Ho1
digitalRead(7)
. ¿No es el caso? Por cierto, el traductor de Google hizo un buen trabajo al traducirme del chino al inglés; Desafortunadamente después del hecho. :-/wesley lee
vladimir cravero
Ho1
Ho1
sw
que no pude entender, pero es la única opción paraz
. Parece que es "interruptor".