Pergunta

Eu estou fazendo um relógio com o Arduino, e eu quero fazer um botão para definir a hora. Assim, apenas para teste, eu pluged um fio no pino de entrada analógica 0 e escreveu duas linhas de código para ler o pino e imprimi-lo via Serial, mas tudo que eu vejo é lixo.

  valm = analogRead(0);
  Serial.println(valm);

E o que eu recebo do monitor serial é esta: ? J? D? ± µ? E ?? jdd? ± µ ??? ºjRd? ± µ ??? ºj? D? ± µ? E ?? j? D? ± µ? E? ªjRd? ± µ ?? ? ÊjRd? ± µ ??? AJ? d? ± µ ???? j? d? ± µ? E ?? j Rd? ± µ ???? j? D? ± µ ??? ºj? D? ± µ? E ?? JRD? ± µ ???? j? D? ± µ? E? ÊjDd? ± µ ?? ? aj? d? ± µ ???? j? d? ± µ? E ?? JRD? ± µ ???? j? d ? ± µ? E? ÂjRd? ± µ ??? eJ? D? ± µ ??? ªj? D? ± µ? E? EJ $ d? ± µ ??? ÂjRd? ± µ ???? j? d d? ± µ ???? jdd? ± µ ???? JRD? ± µ ??? AJ? ± µ? E? ÊjRd? ± µ ???? j? d? ± µ? O? ej? d? ± µ? E? ÂjRd? ± µ ???? j? d? ± µ ???? j? d? ± µ? E ?? JRD? ± µ ??? AJ? d? ± µ ??? eJ? d? ± µ? ?? ªj? D? ± µ ??? eJ? D? ± µ ??? ÂjRd? ± µ ???? j? D? ± µ ???? j? D? ± µ? E ?? JRD? ± µ ??? AJ? d? ± µ? O? ej? d? ± µ? E? ªj? d? ± µ? E? ? JTD? ± µ ??? AJ? D? ± µ ???? j? D? ± µ? E ?? JRD? ± µ ???? j? D? ± µ? E? ÂjRd? ± µ? ?? eJ? d? ± µ? E? ªjRd? ± µ ??? eJ? d? ± µ ??? ºj ? D? ± µ? E ?? JTD? ± µ ???? JRD? ± µ ??? ªj? D? ± µ? E? ÂjTd? ± µ? E? ÊjRd? ± µ ??? ªj? D ? ± µ ??? eJ? d? ± µ ??? ºj? d? ± µ? E ?? JRD ? ± µ ??? eJ? D? ± µ ??? ªj? D? ± µ? E? AJPD? ± µ ??? eJ? D? ± µ ??? ªj? D? ± µ? A? EJ ? d? ± µ? E? ºjRd? ± µ ???? j? d? ± µ? E ?? JRD? ± µ ??? ªj? d? ± µ? E? aj? d? ± µ ??? ÊjRd? ± µ ??? ªj? d? ± µ? O? ej? d? ± µ ??? ºjRd? ± µ ???? j? d? ± µ ??? eJ? d? ± µ? E? ªjdd? ± µ? ?? ÂjRd? ± µ ??? AJ? D? ± µ? E? ªjPd? ± µ ??? eJ? D? ± µ ???? j? D? ± µ? E ?? JRD? ± µ? ?? eJ? d? ± µ? E? ªjdd? ± µ ??? ÂjRd? ± µ ??? AJ? D? ± µ? E? ªjDd? ± µ ??? eJ? D? ± µ? E ?? j? D? ± µ? E ?? JRD? ± µ ??? ÊjRd? ± µ ??? ªj? d? ± µ? E? AJPD? ± µ ??? AJ? d? ± µ ??? ªj ? D? ± µ? E? Êjdd? ± µ? E ?? JRD? ± µ ???? j? D? ± µ? E? EJ $ d? ± µ ??? ªjRd? ± µ ??? AJ ? d? ± µ? A? ÂjTd? ± µ ??? ªj? d? ± µ ??? eJ? d ? ± µ ???? JRD? ± µ ???? j? D? ± µ? E? ÊjTd? ± µ ??? ªjRd? ± µ ??? AJ? D? ± µ ??? AJ? D ? ± µ? E? ªjRd? ± µ ??? ÊjRd? ± µ? o ?? JTD? ± µ ???? j? d? ± µ ??? EJ

Por quê?


Editar:

Eu tinha definido o pino digital 0 a saída, e eu pensei que talvez esse era o problema, então eu fui para o site Arduino e encontrou a página Entrada analógica Pinos .

Então, eu tentei ler a partir de pino 14 que dizem que é o pino de entrada analógica 0, mas eu tenho a mesma saída.

A propósito, eu estou tentando ler a partir do analógico apenas pinos, não o wich também são digitais.

Foi útil?

Solução

Tente executar este código de exemplo encontrados no site Arduino. Você não deve precisar para converter o valm variável ou nada.

/*
  Analog input

    Reads an analog input on analog in 0, and prints the value out.

    Created 24 March 2006
    by Tom Igoe
*/

int analogValue = 0;    // Variable to hold the analog value.

void setup() {
    // open the serial port at 9600 bit/s:
    Serial.begin(9600);
}

void loop() {
    // Read the analog input on pin 0:
    analogValue = analogRead(0);

    // Print it out in many formats:
    Serial.println(analogValue);       // print as an ASCII-encoded decimal
    Serial.println(analogValue, DEC);  // print as an ASCII-encoded decimal
    Serial.println(analogValue, HEX);  // print as an ASCII-encoded hexadecimal
    Serial.println(analogValue, OCT);  // print as an ASCII-encoded octal
    Serial.println(analogValue, BIN);  // print as an ASCII-encoded binary
    Serial.println(analogValue, BYTE); // print as a raw byte value

    // Delay 10 milliseconds before the next reading:
    delay(10);
}

Se a sua saída ainda é jargão, há algo de errado com o seu terminal serial.

Outras dicas

O problema aqui é analógico dispositivo que você pode conectado não são @ mesmos potenciais de terra. Exemplo: Se a sua energização na placa Arduino usando o PC eo sensor é ligado usando outra fonte, mas você tentar ler o valor do porto Arduino, para este instante em que dá acima erro. Tente este poder em arduino e um sensor de fonte de energia Same e tentar ler os dados utilizando a Porta Serial através Docklight você vai ter problema resolvido.

Você precisa definir a taxa de transmissão na janela do monitor de série (canto inferior direito) para o mesmo valor que foi definido em seu código (por exemplo Serial.begin(9600);).

A partir do que sua aparência saída como, parece que você precisa valm convertido em uma string, de modo que você pode imprimir o valor numericamente.

Além disso, é o fio que você conectado a analógica em flutuante? Porque se for, ele só vai agir como uma antena e agarrar ruído aleatório (embora, pode ter um componente de 60Hz forte).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top