질문게시판 > 코딩 질문이요

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

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


BASIC4MCU | 질문게시판 | 코딩 질문이요

페이지 정보

작성자 운동 작성일2020-05-20 23:03 조회75회 댓글3건

본문

	

#include <SoftwareSerial.h>
#define r0 A12
#define r1 A0
#define r2 A1
#define r3 A2
#define r4 A3
#define r5 A4
#define r6 A5
int due;
int state1 =0;
int state2 =0;
int state3 =0;
int state4 =0;

 

 void setup() {

 
Serial.begin(115200);
Serial1.begin(115200);
Serial2.begin(115200);


pinMode(r0,OUTPUT);
pinMode(r1,OUTPUT);
pinMode(r2,OUTPUT);
pinMode(r3,OUTPUT);
pinMode(r4,OUTPUT);
pinMode(r5,OUTPUT);
pinMode(r6,OUTPUT);

}


 void loop()
{
   if(Serial1.available())
  {
    int data = Serial1.read();    ////블루투스에서 받아오는 값
    int Fre_data_state=0;        ///상황 변수
    int Fre_data_old;          
    int Fre_Green;

 

    if(Fre_data_state ==0)                
    {
      Fre_data_old = data;
      Fre_data_state =1;
    }
 
    int fabs_Fre = Fre_data_old - data;
   
    if (fabs_Fre <10){
     
    Fre_data_state =0;
   
    }

  
  
    if (fabs_Fre>20 &&state1==0)       
    {
      digitalWrite(r0,HIGH);
      digitalWrite(r1,LOW);
      digitalWrite(r2,HIGH);
      digitalWrite(r3,HIGH);
      digitalWrite(r4,HIGH);
      digitalWrite(r5,HIGH);
      digitalWrite(r6,HIGH);
      Serial.println("노랑1");

       state1++;
       Fre_data_state=0;
     }
     else if(fabs_Fre>20 &&state1==1)
    {
      digitalWrite(r0,HIGH);
      digitalWrite(r1,HIGH);
      digitalWrite(r2,LOW);
      digitalWrite(r3,HIGH);
      digitalWrite(r4,HIGH);
      digitalWrite(r5,HIGH);
      digitalWrite(r6,HIGH);
      Serial.println("노랑1");

       state1++;
       Fre_data_state=0;
     }
     else if(fabs_Fre>20 &&state1==2)
    {
      digitalWrite(r0,HIGH);
      digitalWrite(r1,HIGH);
      digitalWrite(r2,HIGH);
      digitalWrite(r3,LOW);
      digitalWrite(r4,HIGH);
      digitalWrite(r5,HIGH);
      digitalWrite(r6,HIGH);
      Serial.println("노랑1");

       state1=0;
       Fre_data_state=0;
     }
    
  }

 

}

위 코드에서 제가 원하는 동작을 안해서 질문 드려요

제가 하려는게 블루투스로 색깔센서의 값이 들어오면  처음값과 나중값을 비교하여 연산해 그값을 이용하여 if문이 돌아가도록 코딩을 하려하는데 위 코딩에서 Fre_data_old이 처음값 그다음 나중에 들어오는 data값을 빼서 연산을 하게되면 계속 0이나와서 확인해보니 둘다 계속 같은 값이 들어 가는데 이걸 어떻게 해결할까요?

위에 코딩은 블루투스 수신부코딩이고 아래부분은 블루투스 송신부 코딩입니다.

 

#include <SoftwareSerial.h>


SoftwareSerial BTSerial(8, 9); //블루투스의 Tx, Rx핀을 2번 3번핀으로 설정
int s0=3,s1=4,s2=5,s3=6;
int OutPut=2;
unsigned int frequency = 0;


void setup() {

  Serial.begin(115200);
  BTSerial.begin(115200);
  pinMode(s0, OUTPUT);
  pinMode(s1, OUTPUT);//PINS 3, 4, 5, 6 as OUTPUT
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  pinMode(OutPut, INPUT);//PIN 10 as input
  digitalWrite(s0,HIGH);
  digitalWrite(s1,LOW);//setting frequency selection to 20%

}


void loop() {
 
    Serial.print("Freq=");
    digitalWrite(s2,LOW);
    digitalWrite(s3,LOW);
    frequency = pulseIn(OutPut, LOW);//reading frequency
    Serial.print(frequency);//
    Serial.print("  ");
    Serial.println();
   
 

   BTSerial.write(frequency);//write를 사용하여 값을 아스키코드로 변한하지않고 그대로 전송
   delay(500);
}

 

 

 

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

댓글 3

조회수 75

master님의 댓글

master 작성일

처음 1회 실행해서 기준값을 읽는 것은
셋업함수에서 실행해야 합니다.
셋업함수는 1회만 실행됩니다.

운동님의 댓글

운동 댓글의 댓글 작성일

기준값이 계속 바뀌는 경우는 어떻게 해야할까요?
색깔센서가 움직이면서 기준값이 계속 바뀌고 그 기준값하고 다음값을 연산하는 방법이 필요합니다.

master님의 댓글

master 댓글의 댓글 작성일

기준이 왜 계속 바뀔까요?
뭐..기준이 바뀌더라도
어느 조건에서 기준을 바꾼다는 조건만 명확히 한다면
해당 조건에서 기준값을 변경하면 그만이겠죠

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 1697
공지 사이트 이용 안내댓글[11] master 17-10-29 11198
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [2013.02.07]댓글[1] 이미지첨부파일 master 18-01-23 4215
질문 아두이노 7세그먼트댓글[1] 새글 Cordingplz 20-06-02 7
질문 atmega128 uart0사용법댓글[6] 새글 jiseok 20-06-02 10
질문 아두이노 우노 외부전원 9v댓글[1] 새글 helpme 20-06-02 8
질문 솔레노이드 벨브를 이용한 가스벨브제어댓글[2] 새글 밀키스 20-06-02 11
질문 아두이노 모터 센서 오류댓글[1] 새글 박지성룡 20-06-02 14
질문 아두이노 인터럽트 led 새글 옹아 20-06-02 17
답변 답변글 답변 : 아두이노 인터럽트 led 새글 master 20-06-02 9
질문 avr 블루투스, 초음파, LED 설계댓글[1] 새글 전과자14학번 20-06-02 18
답변 답변글 답변 : avr 블루투스, 초음파, LED 설계 새글 master 20-06-02 8
질문 진동센서값 오류잡아주세요,,,댓글[1] 새글 팬다 20-06-02 12
질문 공부방향 문의댓글[1] 새글 갈비야 20-06-02 12
질문 질문 하나 드리겠습니다... 제발 도와주십시오 제발... ㅠㅠ댓글[1] 이미지새글 아두이노어려워 20-06-01 27
질문 타이머/카운터 1을 10비트 분해능의 Fast PWM 모드로 설정, 문제좀 알려주세요댓글[1] 새글 Tani 20-06-01 18
질문 AVR 코드로 7세그먼트 4자리 불 들어오는법이요!!댓글[1] 이미지새글첨부파일 dslaks 20-06-01 21
질문 아두이노 시리얼 통신 새글 눈의궁전 20-06-01 17
답변 답변글 답변 : 아두이노 시리얼 통신 새글 master 20-06-01 18
질문 아두이노 소스코드 합치기 질문 드립니다.댓글[2] 새글 하기싫다 20-06-01 25
질문 키패드설정값 문자표기 릴레이작동댓글[2] 왕왕초a 20-06-01 19
질문 아트메가와 아두이노 통신 하는방법! jiseok 20-06-01 20
답변 답변글 답변 : 아트메가와 아두이노 통신 하는방법!댓글[3] 새글 master 20-06-01 17
질문 atmega128을 이용하여 PORTA에 2진수 패턴이 출력되도록 하는 C프로그램 작성 혀스석 20-05-31 29
답변 답변글 답변 : atmega128을 이용하여 PORTA에 2진수 패턴이 출력되도록 하는 C프로그램 작성댓글[2] 새글 master 20-06-01 23
질문 센서 평균값 구하기댓글[2] 팬다 20-05-31 26
답변 답변글 답변 : 센서 평균값 구하기 새글 master 20-06-01 9
질문 Atmega128P BLDC 모터관련 질문좀할게요(3)댓글[1] 차니 20-05-30 38
답변 답변글 답변 : Atmega128P BLDC 모터관련 질문좀할게요(3) master 20-05-30 36
질문 (질문)atmega128을 이용한 LED제어댓글[2] 발양말 20-05-29 68
게시물 검색

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