BASIC4MCU | 질문게시판 | 아두이노 우노 피아노코딩 잘된건지 확인좀 해주세요!!!
페이지 정보
작성자 KAUL01 작성일2020-12-09 20:11 조회17,650회 댓글7건본문
저번에 글을 올린 이후로 피드백들과 여러 자료들을 찾아서 참고한 끝에 거의 다 완성했다고 생각했습니다.
사진과 같이 연결을 하였고 코딩은 아래와 같이 헀습니다.
void setup()
{
pinMode(13, INPUT);
pinMode(2, OUTPUT);
pinMode(12, INPUT);
pinMode(11, INPUT);
pinMode(10, INPUT);
pinMode(9, INPUT);
pinMode(8, INPUT);
pinMode(7, INPUT);
pinMode(6, INPUT);
pinMode(5, INPUT);
pinMode(4, INPUT);
pinMode(3, INPUT);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
}
void loop()
{
if (digitalRead(13) == 1) {
tone(2, 523, 100);
}
if (digitalRead(12) == 1) {
tone(2, 493, 100);
}
if (digitalRead(11) == 1) {
tone(2, 466, 100);
}
if (digitalRead(10) == 1) {
tone(2, 440, 100);
}
if (digitalRead(9) == 1) {
tone(2, 415, 100);
}
if (digitalRead(8) == 1) {
tone(2, 392, 100);
}
if (digitalRead(7) == 1) {
tone(2, 367, 100);
}
if (digitalRead(6) == 1) {
tone(2, 349, 100);
}
if (digitalRead(5) == 1) {
tone(2, 329, 100);
}
if (digitalRead(4) == 1) {
tone(2, 311, 100);
}
if (digitalRead(3) == 1) {
tone(2, 293, 100);
}
if (digitalRead(A0) == 1) {
tone(2, 277, 100);
}
if (digitalRead(A1) == 1) {
tone(2, 261, 100);
}
delay(10);
}
이렇게 코딩하고 Thinkercad프로그램으로 잘 실행이 되는것가지 확인하고 아두이노에 직접 연결하고 코딩을 적는데 업로드도 잘되는데 소리가 안나서요...뭐가문제인지 정말 모르겠습니다ㅜㅠㅠㅠㅠ
댓글 7
조회수 17,650master님의 댓글
master 작성일
void setup(){
pinMode(2,OUTPUT);
}
//
void loop(){
if (digitalRead(13))tone(2,523);
else if(digitalRead(12))tone(2,493);
else if(digitalRead(11))tone(2,466);
else if(digitalRead(10))tone(2,440);
else if(digitalRead(9))tone(2,415);
else if(digitalRead(8))tone(2,392);
else if(digitalRead(7))tone(2,367);
else if(digitalRead(6))tone(2,349);
else if(digitalRead(5))tone(2,329);
else if(digitalRead(4))tone(2,311);
else if(digitalRead(3))tone(2,293);
else if(digitalRead(A0))tone(2,277);
else if(digitalRead(A1))tone(2,261);
else noTone(2);
}
이 코드로 돌려보시고
부저가 패시브(능동이 아닌 수동) 부저인지 다시 체크해보세요
KAUL01님의 댓글
KAUL01
댓글 달아주신 코드로돌려봤는데도 되질 않더군요..ㅜㅜ그리고 부저는 패시브(수동)부저가 맞는데 왜 자꾸 안될까 모르겠네요...
master님의 댓글
master
void setup(){
pinMode(2,OUTPUT);
}
//
void loop(){
tone(2,523);
}
부저를 2번핀을 사용하고 있는데요
핀을 변경하면서 정상적으로 소리가 발생하는 핀을 찾아보세요
KAUL01님의 댓글
KAUL01 작성일
void setup()
{
pinMode(13, INPUT);
pinMode(2, OUTPUT);
pinMode(12, INPUT);
pinMode(11, INPUT);
pinMode(10, INPUT);
pinMode(9, INPUT);
pinMode(8, INPUT);
pinMode(7, INPUT);
pinMode(6, INPUT);
pinMode(5, INPUT);
pinMode(4, INPUT);
pinMode(A0, INPUT);
digitalWrite(A0, HIGH);
pinMode(A1, INPUT);
digitalWrite(A1, HIGH);
pinMode(A2, INPUT);
digitalWrite(A2, HIGH);
}
void loop()
{
if (digitalRead(13) == HIGH) {
tone(2, 523);
}
else if (digitalRead(12) == HIGH) {
tone(2, 493);
}
else if (digitalRead(11) == HIGH) {
tone(2, 466);
}
else if (digitalRead(10) == HIGH) {
tone(2, 440);
}
else if (digitalRead(9) == HIGH) {
tone(2, 415);
}
else if (digitalRead(8) == HIGH) {
tone(2, 392);
}
else if (digitalRead(7) == HIGH) {
tone(2, 367);
}
else if (digitalRead(6) == HIGH) {
tone(2, 349);
}
else if (digitalRead(5) == HIGH) {
tone(2, 329);
}
else if (digitalRead(4) == HIGH) {
tone(2, 311);
}
else if (analogRead(A0) == HIGH) {
tone(2, 293);
}
else if (analogRead(A1) == HIGH) {
tone(2, 277);
}
else if (analogRead(A2) == HIGH) {
tone(2, 261);
}
else{
noTone(2);
}
}
우선 이렇게 코딩을 한 후, 아두이노 연결에 이상이 없는지 다 확인 한 후에 실행을 한 결과, A0, A1, A2를 제외한 모든 핀들과 패시브부저는 잘 작동이 되었습니다.
A0, A1, A2에는 왜 소리가 안날까요..? 어떻게하면 소리를 낼 수 있을까요...?ㅠㅠㅠㅠㅠ
master님의 댓글
master
void setup(){
pinMode(2,OUTPUT);
}
//
void loop(){
if (digitalRead(13)){ tone(2,523); }
else if(digitalRead(12)){ tone(2,493); }
else if(digitalRead(11)){ tone(2,466); }
else if(digitalRead(10)){ tone(2,440); }
else if(digitalRead( 9)){ tone(2,415); }
else if(digitalRead( 8)){ tone(2,392); }
else if(digitalRead( 7)){ tone(2,367); }
else if(digitalRead( 6)){ tone(2,349); }
else if(digitalRead( 5)){ tone(2,329); }
else if(digitalRead( 4)){ tone(2,311); }
else if(digitalRead(A0)){ tone(2,293); }
else if(digitalRead(A1)){ tone(2,277); }
else if(digitalRead(A2)){ tone(2,261); }
else { noTone(2); }
}
KAUL01님의 댓글
KAUL01
답변해주신 코드들로 계속 시도를 해보았지만, 다른 핀들은 소리가 잘 나오나, A0, A1, A2만 소리가 안나왔습니다.....
master님의 댓글
master
풀업저항을 연결했나요?
안될 이유가 없습니다.