Pregunta

Así que estoy haciendo un boceto que toma un número de dos dígitos desde el puerto USB, comprueba el estado del pin que coincide con el número, a continuación, cambia la clavija de encendido / apagado.

es una oportunidad única la fuente

Por alguna razón, cuando envío 13 a través del monitor serie de Arduino, me sale este mensaje de nuevo: Pin number is greater than 14, details: 490 51 541

Lo que significa que el IDE es el envío de números extraños, o el Arduino está procesando que están equivocados. ¿Alguno de ustedes ven un problema de por qué esto no está funcionando bien?

¿Fue útil?

Solución

Si se introduce la ASCII caracteres "1" y luego "3", entonces Serial.read() volverán 49 y 51. Esto se debe a que en el ASCII tabla de caracteres "1" y "3" se representan por los números 49 y 51, respectivamente. Si usted quiere encontrar el número que el usuario escribió a cabo hay que convertirlo de ASCII .

No estoy muy familiarizado con el lenguaje de Arduino, pero asumiendo que es similar a C se pueden encontrar los cambios necesarios Aquí .

He reescrito el programa de otra manera, que pueden Leer .

El '0' usado en la fuente es simplemente otra forma de decir "el número que se usa para representar el carácter '0'", por lo que es 48. En las lenguas '0' == 48 C-como, '1' == 49, etc, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top