2013-10-31 4 views
0

미리 답변 해 주셔서 감사합니다!Arduino의 기본 코드가 혼동 스럽습니다

Arduino Mega 2560을 사용하여 Poor Man 's Oscilloscope를 만들려고합니다. 모든 것을 올바르게 연결했다고 가정 할 때 코드와 출력을 이해하는 데 도움이 필요합니다.

#define ANALOG_IN 0 

void setup() { 
    Serial.begin(9600); 
    //Serial.begin(115200); 
} 

void loop() { 
    int val = analogRead(ANALOG_IN);            
    Serial.write(0xff);               
    Serial.write((val >> 8) & 0xff);            
    Serial.write(val & 0xff); 
} 

아두 이노 기본적인 타이머 (555)의 출력에서의 전압을 측정한다 : 여기

아두 이노에 업로드하는 코드이다. 시리얼 모니터를 볼 때 이것은 내가받은 것입니다.

ÿ ÿ!ÿ!ÿÿ_ÿ]ÿ^ÿ^ÿ^ÿ]ÿ\ÿ\ÿ[ÿ\ÿZÿZÿYÿYÿYÿYÿZÿZÿZÿZÿYÿXÿYÿSÿPÿXÿXÿWÿUÿMÿRÿXÿWÿUÿMÿOÿWÿWÿUÿ_ÿ\ÿdÿeÿcÿaÿYÿ]ÿcÿbÿ_ÿXÿYÿbÿ`ÿ^ÿXÿVÿ]ÿ_ÿ]ÿ[ÿSÿYÿ^ÿ\ÿZÿRÿSÿ\ÿZÿYÿSÿPÿWÿYÿXÿGÿ@ÿFÿKÿJÿIÿAÿCÿLÿKÿJÿEÿBÿLÿLÿLÿJÿBÿHÿNÿLÿKÿCÿEÿNÿ\ÿZÿUÿRÿZÿZÿYÿXÿOÿTÿYÿXÿVÿNÿPÿYÿWÿUÿOÿMÿTÿUÿTÿRÿJÿQÿTÿSÿQÿIÿKÿTÿRÿQÿKÿIÿ@ÿCÿCÿAÿ9ÿ@ÿEÿDÿCÿ;ÿ=ÿGÿEÿDÿ?ÿ=ÿFÿFÿFÿDÿ=ÿCÿHÿGÿFÿ>ÿOÿWÿVÿTÿOÿLÿTÿUÿTÿRÿJÿOÿTÿSÿQÿIÿKÿTÿRÿPÿKÿHÿOÿQÿPÿNÿFÿLÿPÿOÿMÿEÿGÿPÿNÿMÿ8ÿ6ÿ=ÿ@ÿ?ÿ>ÿ6ÿ=ÿBÿAÿ@ÿ8ÿ;ÿCÿBÿAÿ<ÿ:ÿCÿDÿCÿAÿ:ÿ@ÿEÿDÿQÿIÿKÿTÿRÿQÿKÿHÿPÿQÿPÿNÿFÿKÿPÿOÿMÿEÿGÿPÿNÿMÿGÿEÿKÿMÿLÿJÿBÿIÿMÿKÿIÿAÿDÿLÿ<ÿ;ÿ5ÿ4ÿ;ÿ=ÿ=ÿ;ÿ4ÿ:ÿ?ÿ?ÿ=ÿ5ÿ8ÿAÿ@ÿ?ÿ9ÿ8ÿ@ÿAÿAÿ?ÿ7ÿKÿQÿPÿNÿFÿHÿQÿOÿMÿGÿEÿMÿNÿMÿJÿCÿHÿMÿLÿJÿBÿDÿMÿKÿIÿCÿAÿHÿJÿIÿGÿ?ÿFÿJÿHÿFÿ>ÿ2ÿ;ÿ:ÿ9ÿ3ÿ2ÿ<ÿ;ÿ;ÿ9ÿ2ÿ8ÿ=ÿ<ÿ;ÿ3ÿ6ÿ>ÿ>ÿ<ÿ7ÿ6ÿ>ÿ?ÿ?ÿKÿDÿIÿNÿMÿKÿCÿEÿNÿKÿJÿDÿCÿJÿJÿJÿGÿ@ÿGÿJÿIÿGÿ?ÿAÿJÿHÿFÿ@ÿ?ÿFÿGÿFÿDÿ=ÿCÿFÿEÿ6ÿ-ÿ0ÿ9ÿ8ÿ7ÿ2ÿ1ÿ:ÿ9ÿ9ÿ7ÿ1ÿ6ÿ;ÿ;ÿ9ÿ2ÿ4ÿ=ÿ<ÿ;ÿ5ÿ4ÿ=ÿKÿKÿIÿAÿFÿKÿJÿHÿ@ÿBÿKÿIÿGÿAÿ@ÿGÿGÿGÿEÿ=ÿDÿGÿFÿDÿ<ÿ?ÿGÿEÿDÿ>ÿ<ÿCÿEÿCÿAÿ:ÿ1ÿ5ÿ5ÿ3ÿ,ÿ/ÿ7ÿ7ÿ5ÿ0ÿ/ÿ8ÿ8ÿ7ÿ5ÿ/ÿ5ÿ:ÿ9ÿ8ÿ0ÿ3ÿ;ÿ:ÿ9ÿ3ÿAÿIÿIÿHÿFÿ?ÿDÿHÿGÿFÿ=ÿ@ÿIÿGÿEÿ?ÿ=ÿEÿEÿEÿBÿ;ÿBÿDÿDÿBÿ:ÿ<ÿDÿCÿBÿ;ÿ:ÿAÿBÿAÿ0ÿ)ÿ0ÿ4ÿ4ÿ3ÿ+ÿ.ÿ6ÿ5ÿ4ÿ.ÿ.ÿ7ÿ6ÿ6ÿ4ÿ.ÿ4ÿ8ÿ8ÿ6ÿ.ÿ1ÿ:ÿ9ÿFÿ@ÿ?ÿGÿGÿFÿCÿ<ÿBÿFÿEÿCÿ;ÿ>ÿFÿDÿBÿ<ÿ;ÿCÿCÿBÿ?ÿ9ÿ@ÿBÿAÿ@ÿ7ÿ:ÿBÿAÿ?ÿ9ÿ8ÿ?ÿ0ÿ1ÿ.ÿ(ÿ/ÿ3ÿ3ÿ1ÿ*ÿ,ÿ5ÿ4ÿ3ÿ-ÿ-ÿ6ÿ5ÿ5ÿ2ÿ,ÿ3ÿ7ÿ6ÿ5ÿ-ÿ0ÿGÿEÿDÿ=ÿ=ÿDÿDÿCÿ@ÿ:ÿ?ÿDÿBÿAÿ9ÿ;ÿDÿAÿ@ÿ:ÿ9ÿ@ÿ@ÿ@ÿ=ÿ7ÿ>ÿ@ÿ?ÿ=ÿ5ÿ8ÿ@ÿ>ÿ=ÿ6ÿ'ÿ.ÿ0ÿ0ÿ-ÿ'ÿ.ÿ2ÿ1ÿ0ÿ(ÿ,ÿ4ÿ3ÿ2ÿ,ÿ,ÿ5ÿ4ÿ4ÿ1ÿ+ÿ2ÿ6ÿ5ÿBÿ;ÿ>ÿFÿDÿBÿ<ÿ;ÿCÿCÿBÿ?ÿ9ÿ>ÿBÿAÿ@ÿ7ÿ:ÿCÿ@ÿ?ÿ9ÿ8ÿ?ÿ?ÿ?ÿ;ÿ5ÿ=ÿ?ÿ>ÿ<ÿ4ÿ7ÿ?ÿ=ÿ-ÿ'ÿ'ÿ.ÿ/ÿ/ÿ-ÿ'ÿ.ÿ2ÿ1ÿ0ÿ(ÿ+ÿ4ÿ2ÿ1ÿ+ÿ+ÿ4ÿ4ÿ3ÿ0ÿ+ÿ1ÿCÿCÿAÿ9ÿ<ÿEÿBÿAÿ:ÿ:ÿAÿAÿ@ÿ=ÿ7ÿ=ÿ@ÿ?ÿ>ÿ5ÿ8ÿAÿ>ÿ=ÿ6ÿ6ÿ=ÿ=ÿ=ÿ9ÿ4ÿ;ÿ=ÿ<ÿ:ÿ2ÿ5ÿ/ÿ.ÿ,ÿ&ÿ&ÿ1ÿ/ÿ/ÿ,ÿ'ÿ.ÿ1ÿ0ÿ/ÿ(ÿ+ÿ3ÿ2ÿ1ÿ*ÿ+ÿ4ÿ3ÿ3ÿ0ÿ9ÿ@ÿCÿAÿ@ÿ8ÿ;ÿCÿAÿ?ÿ8ÿ8ÿ@ÿ?ÿ?ÿ;ÿ5ÿ;ÿ?ÿ>ÿ<ÿ4ÿ7ÿ?ÿ=ÿ;ÿ5ÿ5ÿ<ÿ<ÿ;ÿ8ÿ2ÿ:ÿ<ÿ;ÿ*ÿ#ÿ&ÿ/ÿ-ÿ,ÿ&ÿ&ÿ0ÿ.ÿ.ÿ+ÿ&ÿ.ÿ1ÿ0ÿ/ÿ'ÿ+ÿ2ÿ1ÿ0ÿ*ÿ*ÿ3ÿ2ÿAÿ=ÿ8ÿ>ÿAÿ@ÿ>ÿ6ÿ9ÿBÿ?ÿ>ÿ7ÿ7ÿ?ÿ>ÿ=ÿ:ÿ4ÿ:ÿ>ÿ=ÿ;ÿ3ÿ6ÿ>ÿ<ÿ;ÿ4ÿ4ÿ;ÿ;ÿ:ÿ6ÿ1ÿ9ÿ,ÿ+ÿ*ÿ#ÿ&ÿ/ÿ-ÿ,ÿ&ÿ&ÿ0ÿ.ÿ.ÿ+ÿ&ÿ-ÿ1ÿ0ÿ/ÿ'ÿ*ÿ2ÿ1ÿ0ÿ)ÿ*ÿBÿ@ÿ?ÿ<ÿ6ÿ=ÿ@ÿ?ÿ=ÿ5ÿ8ÿ@ÿ>ÿ<ÿ5ÿ5ÿ>ÿ=ÿ<ÿ8ÿ3ÿ9ÿ=ÿ;ÿ9ÿ1ÿ5ÿ<ÿ:ÿ9ÿ2ÿ2ÿ:ÿ9ÿ8ÿ5ÿ!ÿ)ÿ,ÿ+ÿ*ÿ"ÿ&ÿ.ÿ-ÿ,ÿ%ÿ&ÿ0ÿ.ÿ.ÿ+ÿ&ÿ-ÿ0ÿ/ÿ.ÿ'ÿ*ÿ2ÿ1ÿ0ÿ7ÿ8ÿAÿ?ÿ>ÿ:ÿ5ÿ;ÿ?ÿ>ÿ;ÿ4ÿ7ÿ?ÿ<ÿ;ÿ4ÿ4ÿ=ÿ;ÿ:ÿ7ÿ1ÿ:ÿ;ÿ:ÿ8ÿ0ÿ3ÿ;ÿ9ÿ8ÿ1ÿ1ÿ9ÿ8ÿ)ÿ&ÿ!ÿ)ÿ,ÿ+ÿ*ÿ"ÿ&ÿ.ÿ,ÿ,ÿ%ÿ&ÿ0ÿ.ÿ-ÿ*ÿ&ÿ-ÿ0ÿ/ÿ.ÿ'ÿ*ÿ@ÿ?ÿ=ÿ6ÿ6ÿ?ÿ=ÿ=ÿ9ÿ4ÿ:ÿ>ÿ<ÿ:ÿ2ÿ6ÿ=ÿ;ÿ:ÿ2ÿ3ÿ;ÿ:ÿ9ÿ5ÿ0ÿ9ÿ:ÿ8ÿ7ÿ/ÿ2ÿ:ÿ8ÿ6ÿ/ÿ0ÿ)ÿ)ÿ)ÿ%ÿ!ÿ)ÿ+ÿ+ÿ)ÿ"ÿ&ÿ.ÿ,ÿ+ÿ$ÿ%ÿ0ÿ-ÿ-ÿ)ÿ%ÿ,ÿ/ÿ.ÿ-ÿ4ÿ8ÿ?ÿ=ÿ<ÿ4ÿ5ÿ>ÿ<ÿ;ÿ7ÿ2ÿ9ÿ<ÿ;ÿ9ÿ1ÿ5ÿ<ÿ:ÿ8ÿ1ÿ1ÿ:ÿ9ÿ8ÿ4ÿ/ÿ8ÿ9ÿ8ÿ6ÿ.ÿ2ÿ9ÿ6ÿ'ÿ ÿ!ÿ)ÿ)ÿ)ÿ%ÿ! 

내 보드 율이 모두 9600이고 아날로그 핀이 작동하는지 다시 확인했습니다. 나는 아날로그 입력을 읽기위한 좀 더 기본적인 스크립트를 작성했고, 직렬 모니터에 올바르게 출력했다.

이 코드를 작성하지 않았고 C에 익숙하지 않았기 때문에 잘못된 정보가있을 수 있다는 의견을 얻을 수 있기를 기대했습니다. 감사!

+0

"이 코드를 작성하지 않았기 때문에 C에 익숙하지 않습니다."- 그래서 C 언어를 배우기 시작합니다. –

+0

@MitchWheat 지금 C를 배우고 있는데 실제로 "별로 없습니다. 익숙한". 나는보다 건설적인 피드백에 감사 할 것입니다. C에 익숙하다면이 코드는 꽤 기본적인 것처럼 보일 것입니다. – SuperCritical

답변

1

아마도 제대로 작동합니다. 수신 측에서 출력을 올바르게 해석하지 못하고 있습니다. 많은 숫자 입력을 받고 문자로 인쇄하고 있습니다.

ÿ0xff입니다. 또한 val이 낮 으면 val & 0xff은 거의 항상 0xff이거나 ... ÿ이됩니다. 그래서 ÿ - (일부 문자) - ÿ이 표시됩니다.

정수에서 문자열로 변환하려면 itoa 함수를 조사하십시오. 제대로 표시하려면 송신 측 또는 수신 측에서이 작업을 수행해야합니다.

+0

나는 그것을 들여다 볼 것이다! – SuperCritical

+0

낮은'val'은 모든 비트가 설정되어 있습니까? –

관련 문제