Domanda

Così sto facendo uno schizzo che richiede un numero a due cifre dalla porta USB, controlla lo stato del perno che corrisponde al numero, poi alterna il perno di on / off.

Dare uno sguardo alla fonte

Per qualche ragione, quando invio 13 attraverso il monitor di serie Arduino, ottengo questo messaggio di nuovo: Pin number is greater than 14, details: 490 51 541

Il che significa che l'IDE è l'invio di numeri strani, o Arduino sta elaborando loro torto. Qualcuno di voi vedere un problema perché questo non funziona correttamente?

È stato utile?

Soluzione

Se si immette il ASCII i caratteri "1", quindi "3" poi Serial.read() torneranno 49 e 51. Questo perché in ASCII tabella di caratteri "1" e "3" sono rappresentate dai numeri rispettivamente 49 e 51,. Se si desidera trovare il numero che l'utente ha digitato fuori devi convertirlo da ASCII .

Io non sono molto familiare con il linguaggio Arduino, ma ammesso che sia simile a C si possono trovare i cambiamenti necessari Qui .

Ho riscritto il programma in un altro modo, che possono essere più chiaro a Leggi .

Il '0' utilizzato nella sorgente è semplicemente un altro modo di dire "il numero utilizzato per rappresentare il carattere '0'", così è 48. In C-come le lingue '0' == 48, '1' == 49, ecc, ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top