질문게시판 > 아두이노 센서 2개 사용 코드 관련 질문

TODAY771 TOTAL375,797
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 아두이노 센서 2개 사용 코드 관련 질문

페이지 정보

작성자 kimhk 작성일2018-05-14 00:49 조회1,107회 댓글0건

본문

	

지식인에서 답변 감사히 받았었는데, 더 궁금한점이 생겨 방문하였습니다.

 

제가 생각하는 것은

 

1. 터치센서로 on / off 를 만든다(구현)

2. on 하면 9개의 led가 켜진다. (구현/답변해주신 코드에선 현재 터치로 on/off가 이루어지지 않음)

2-1. 사운드 센서를 통해 아날로그 입력을 받고, 예를 들어 값이 높게 검출 시, 상위 3개의 led만 느리게 fade된다. 중간값 검출시 중간 3개의 led가 동일하게 fade 실시. 그보다 아래의 값에선 나머지 3개가 fade

 

여기서 2-1이 가장 어려운 점이라 생각합니다. 제 머리로는 이렇게 짜면 될거라 생각이 드는데,

제가 고수는 아니라 간략히 코드를 짤 수가 없어서 제가 생각한 대로 구문을 짜 보자면 이렇습니다.

(써주신 답변에서 loop 부분만 변형)

 

void loop(){
  Serial.println(sound);
  delay(100);  //  사운드센서의 아날로그 검출에 딜레이 100을 할당하여 1/10초로 값 수용

  touchVal=digitalRead(touch);
  if(touchVal==HIGH&&touchPre==LOW){
    run^=1;
    if(!run)target=0// run=0이면 0% OFF.  // 실제 on/off가 안되지만 된다 가정하에.
  }
  touchPre=touchVal;
  //
  if(run){
    target=analogRead(sound)/4; // 0~1023 -> 0~255. // 현재 사운드 센서는 200~800사이값 검출 _ 200-800 -> 50-200. //상시검출은 300-600대가 반복적으로 파형을 그리며 검출.
  }
  //
  if(target>=50 && target<=125){
  analogWrite(led1,brightness)
  analogWrite(led2,brightness)
  analogWrite(led3,brightness)
  brightness = brightness + fadeAmount;
} // 이렇게 고친 경우 뒤에 다시 {}를 사용하여 몇번 LED는 작동하고 몇번은 꺼진다를 적어주는것이 가능한것인가요? 혹은 for구문의 적용은 개별 if문 마다 적용을 하는것인지요?
  if(target>=126 && target<=170) 
  analogWrite(led4,brightness)
  analogWrite(led5,brightness)
  analogWrite(led6,brightness)
  brightness = brightness + fadeAmount;
  if(target>=171 && target<=200)
  analogWrite(led7,brightness)
  analogWrite(led8,brightness)
  analogWrite(led9,brightness)
  brightness = brightness + fadeAmount;

if (brightness <= 0 || brightness >= 255) { 
    fadeAmount = -fadeAmount;
  }
  delay(50);
  //
}

 

 

답변해주신 코드는 아래와같습니다.

 

 

int touch=12;
int sound=A0;
int led[]={2,3,4,5,6,7,8,9,10};
//
int run=0,touchVal,touchPre=0;
int       target=0,soundPre=0;
//
void setup(){
}
//
void loop(){
  touchVal=digitalRead(touch);
  if(touchVal==HIGH&&touchPre==LOW){
    run^=1;
    if(!run)target=0// run=0이면 0% OFF // run이 0이라면 다 꺼지는것으로 제가 이해하는데, 실제로 터치센서를 만져도 on/off가 진행되지 않습니다.(다른 코드에선 정상작동합니다.)
  }
  touchPre=touchVal;
  //
  if(run){
    target=analogRead(sound)/4; // 0~1023 -> 0~255 
  }
  //
  if(soundPre<target)soundPre++; 
  if(soundPre>target)soundPre--; 
  for(int i=2;i<=10;i++)analogWrite(led[i],1);// UNO로 테스트 중이라 상기 led에서 pwm포트만 살려두고 i=3, i<=10 으로 수정 후 작업하면 사운드 센서와의 연동이 안되고 있습니다.  
  //
  delay(10); // fade 속도
}

 

공부한 바가 적어 읽으시기 다소 불편하실수도 있으리라 생각합니다.

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 0

조회수 1,107

등록된 댓글이 없습니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 25
공지 사이트 이용 안내 댓글[4] master 17-10-29 4675
질문 마스터님 봐주세요~ 댓글[2] 이미지새글첨부파일 현이꽃 19-01-22 13
답변 답변글 답변 : 마스터님 봐주세요~ 댓글[5] 새글 master 09:50 12
질문 c언어 조언 해주세요. 댓글[2] 새글 c린이 19-01-22 13
질문 손문일 새글 손문일 19-01-22 15
답변 답변글 답변 : 손문일 새글 master 19-01-22 8
답변 답변글 답변 : 손문일 새글 손문일 19-01-22 5
답변 답변글 답변 : 답변 : 손문일 새글 master 19-01-22 8
질문 블루투스 조이스틱 질문좀요 새글 현이꽃 19-01-22 9
답변 답변글 답변 : 블루투스 조이스틱 질문좀요 댓글[1] 새글 master 19-01-22 12
질문 atmega128 풀업 스위치 댓글[2] 새글 c린이 19-01-22 13
질문 master님 스테핑 모터 3개 제어 관련 문의드립니다. 이미지새글첨부파일 원스타 19-01-22 20
답변 답변글 답변 : master님 스테핑 모터 3개 제어 관련 문의드립니다. 댓글[4] 새글 master 19-01-22 12
답변 답변글 답변 : 답변 : master님 스테핑 모터 3개 제어 관련 문의드립니다. 새글 원스타 19-01-22 8
답변 답변글 답변 : 답변 : 답변 : master님 스테핑 모터 3개 제어 관련 문의드립니다. 댓글[1] 새글 master 19-01-22 11
질문 아두이노 스케치 반복문 질문 master 19-01-20 16
질문 스위치 회로 댓글[2] 이미지 동지 19-01-19 26
질문 LCD 회로가 바뀌었는데 이미지첨부파일 Lami 19-01-19 20
답변 답변글 답변 : LCD 회로가 바뀌었는데 master 19-01-20 14
질문 C언어 댓글[4] c린이 19-01-18 32
질문 아두이노 하나로 2개의 센서 데이터 받기 질문 master 19-01-18 16
질문 ATmega128에서 TWI(I2C)에 대한 코딩 질문입니다!! 댓글[2] 이미지첨부파일 질문Y 19-01-15 36
질문 아두이노 소프트웨어 시리얼 질문 댓글[2] 이미지첨부파일 hktsakura 19-01-15 26
답변 답변글 답변 : 아두이노 소프트웨어 시리얼 질문 댓글[5] 이미지 master 19-01-15 35
답변 답변글 답변 : 답변 : 아두이노 소프트웨어 시리얼 질문 댓글[4] master 19-01-15 32
답변 답변글 답변 : 답변 : 답변 : 아두이노 소프트웨어 시리얼 질문 댓글[3] master 19-01-16 28
질문 아두이노 적외선센서 2개를 이용해서 출입인원 카운팅을 하려고 합니다. 배우러왔습니다 19-01-14 25
답변 답변글 답변 : 아두이노 적외선센서 2개를 이용해서 출입인원 카운팅을 하려고 합니다. 댓글[1] master 19-01-15 19
답변 답변글 답변 : 답변 : 아두이노 적외선센서 2개를 이용해서 출입인원 카운팅을 하려고 합니다. 댓글[1] 배우러왔습니다 19-01-15 12
게시물 검색

2019년 1월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2017
모바일버전으로보기