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

TODAY143 TOTAL270,659
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


▼ BASIC4MCU 후원업체 최신 정보 ▼

▲ BASIC4MCU 후원업체 최신 정보 ▲

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

페이지 정보

작성자 kimhk 작성일2018-05-14 00:49 조회781회 댓글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

조회수 781

등록된 댓글이 없습니다.

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.

ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 아두이노를 이용한 RGB LED 전등 제어 새글 위우위우 00:17 1
질문 SoftwareSerial을 이용한 버튼 및 LED 작동 댓글[1] 새글 깅깅 18-10-19 6
답변 답변글 답변 : SoftwareSerial을 이용한 버튼 및 LED 작동 새글 master 18-10-19 3
질문 PIR 센서 감도조절 질문 새글 master 18-10-19 2
질문 저번에 초음파와 dc모터 관련 질문했던 사람입니다. 아직 문제가 잘 해결되지 않아서 올립니다. 새글 재갈이 18-10-19 6
답변 답변글 답변 : 저번에 초음파와 dc모터 관련 질문했던 사람입니다. 아직 문제가 잘 해결되지 않아서 올립니다. 댓글[3] 새글 master 18-10-19 8
질문 Nrf24 양방향 송수신 진동모터 작동관련 질문입니다! 댓글[1] 새글 A반장 18-10-19 8
질문 아두이노 조도센서 반응을 반대로 하고 싶어요! 댓글[2] 새글 코코포도 18-10-19 11
질문 아두이노 LED랑 스피커 동시에 작동하는 법 질문 새글 master 18-10-19 10
질문 원래 나와야하는 시리얼 모니터 사진 올립니다. 새글 찰스백작 18-10-19 8
질문 GPS추적기 소스주신거 안되서 문의드립니다. 소스첨부합니다. 댓글[3] 이미지새글첨부파일 찰스백작 18-10-19 15
질문 STM32 공부방법 댓글[2] 새글 DrVoid 18-10-19 14
질문 gps 소스1으로는 안될까해서 문의드립니다.. 댓글[1] 새글 찰스백작 18-10-19 12
질문 아두이노에서 서보모터와 dc모터 두가지를 함께 이용하고 싶습ㄴ다. 댓글[2] 새글 김주리 18-10-19 19
질문 gps 추적기 다시문의드립니다. 다시 소스좀 부탁드립니다..ㅠㅠ 댓글[2] 새글 찰스백작 18-10-18 23
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017