BASIC4MCU | 질문게시판 | 답변 : 아두이노 코일 금속감지 코드 해석 부탁드립니다 ㅠㅠ
페이지 정보
작성자 master 작성일2022-12-05 18:04 조회125회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=22058
본문
https://dream-hacker.tistory.com/21
이 글도 읽어보고 다른 글도 웹검색으로 찾아서 읽어보세요
(연결핀 위치는 다르겠지만) 이 회로와 유사하다고 가정하면//#define pulse A0#define cap A1#define buz A3//unsigned long valsum=0;int val[8];int minval=10000,maxval=0;//void setup(){Serial.begin(9600);pinMode(cap,INPUT);pinMode(pulse,OUTPUT); pinMode(buz,OUTPUT);}//void loop(){unsigned long minsum=0,maxsum=0;unsigned int valsum=0,temp;//for(int i=0;i<8;i++){pinMode(cap,OUTPUT); digitalWrite(cap,0); delayMicroseconds(20); // 20us 동안 0을 출력해서 CAP을 방전시킴pinMode(cap,INPUT);///////////////////////////////////////////////////for(int j=0;j<21;j++){ // 펄스 21개 출력digitalWrite(pulse,1); delayMicroseconds(3); digitalWrite(pulse,0); delayMicroseconds(3);}///////////////////////////////////////////////////val[i]=analogRead(cap); // cap 전압 입력 받아서 배열에 저장}//for(int i=0;i<7;i++){ // 오름차순 정렬for(int j=0;j<7-i;j++){if(val[j]>val[j+1]){ temp=val[j]; val[j]=val[j+1]; val[j+1]=temp; }}}//valsum=val[2]+val[3]+val[4]+val[5]; // 중간값 4개를 더해서valsum/=4; // 4로 나누어서, 중간값 4개의 평균값을 구함maxval=max(valsum,maxval); // 더 큰 값을 읽고if(maxval>valsum+2)digitalWrite(buz,1); // 평균값이 최대값보다 2이하의 값이라면 부저 ONelse digitalWrite(buz,0);delay(1);//// Serial.print(valsum); Serial.print(" "); Serial.print(maxval); Serial.println(" ");}
댓글 0
조회수 125등록된 댓글이 없습니다.