BASIC4MCU | 질문게시판 | 답변 : 아두이노 초음파센서 질문드려요~~
페이지 정보
작성자 master 작성일2019-05-28 13:18 조회3,349회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8907
본문
c언어 처음인가봅니다.
if(code=='1' or '2' or '3' or '0'){
if문의 조건식에 문제가 있군요
인간의 언어처럼 막 사용하면 컴파일러가 이해하지 못합니다.
if((code>='0')&&(code<='3')){
//
delay(100);
초음파센서의 측정 주기는 수십ms이상 되어야합니다.
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-05-28 오후 1:25:20// by Ok-Hyun Park현재 pixycam과 초음파 센서를 이용해서 선을 추적해서 따라가다가 초음파 센서로 장애물이 감지가 되면정지하는 시스템을 구현 중인데 제대로 동작을 하지 않아 질문 드립니다.현재코드는 아래와 같은데 if(distance<10)이 코드를 넣으면 아예 동작을 안합니다.if(distance<10)코드를 빼면 제대로 동작을 합니다.그래서 초음파센서 코드만 실행해 봤는데 정상 작동을 하였습니다.어디 코드를 어떻게 고쳐야 정상 작동 하나요?ㅠㅠ//#include <SPI.h>#include <Pixy2.h>#include <TPixy2.h>#include <Pixy2Line.h>#define X_CENTER(pixy.frameWidth/2)Pixy2 pixy;// Zumo speeds,maximum allowed is 400#include <ZumoMotors.h>#define ZUMO_FAST 400#define ZUMO_SLOW 200ZumoMotors motors;//#include <SoftwareSerial.h>SoftwareSerial mySerial(2,3);//#include <PIDLoop.h>PIDLoop headingLoop(5000,0,0,false);//#define ledPin 5#define trig 13#define echo 12//char code,buf[96];int8_t res;int left,right;int32_t error;long duration;float distance;//void setup(){pinMode(ledPin,OUTPUT); pinMode(trig,OUTPUT); pinMode(echo,OUTPUT);motors.setLeftSpeed(0); motors.setRightSpeed(0);pixy.init(); pixy.setLamp(1,1); pixy.changeProg("line_tracking"); pixy.setServos(500,1000);Serial.begin(115200); Serial.print("Starting...\n");mySerial.begin(9600);}//void loop(){delay(100);digitalWrite(trig,1); delayMicroseconds(10); digitalWrite(trig,0);duration=pulseIn(echo,1); distance=duration/58.0;//if(mySerial.available()){code=(mySerial.read());if((code>='0')&&(code<='3')){ digitalWrite(ledPin,1); delay(3000); digitalWrite(ledPin,0); }}//if(distance<10){ motors.setLeftSpeed(0); motors.setRightSpeed(0); } //초음파 조건문else{res=pixy.line.getMainFeatures();if(res<=0){ motors.setLeftSpeed(0); motors.setRightSpeed(0); Serial.print("stop "); Serial.println(res); return; }//if(res&LINE_VECTOR){error=(int32_t)pixy.line.vectors->m_x1-(int32_t)X_CENTER; pixy.line.vectors->print();headingLoop.update(error);left=headingLoop.m_command; right=-headingLoop.m_command;//if(pixy.line.vectors->m_y0>pixy.line.vectors->m_y1){if(pixy.line.vectors->m_flags&LINE_FLAG_INTERSECTION_PRESENT){ left+=ZUMO_SLOW; right+=ZUMO_SLOW; }else { left+=ZUMO_FAST; right+=ZUMO_FAST; }}else{ left-=ZUMO_SLOW; right-=ZUMO_SLOW; }//motors.setLeftSpeed(left); motors.setRightSpeed(right);}//if(res&LINE_INTERSECTION){if (code==3){ pixy.line.setNextTurn( 45); pixy.line.intersections->print(); } // blueelse if(code==2){ pixy.line.setNextTurn( 0); pixy.line.intersections->print(); } // greenelse if(code==1){ pixy.line.setNextTurn(-45); pixy.line.intersections->print(); } // redelse if(code==0){ motors.setLeftSpeed(0); motors.setRightSpeed(0); Serial.print("stop "); Serial.println(res); return; } // stop}}}
댓글 0
조회수 3,349등록된 댓글이 없습니다.