BASIC4MCU | 질문게시판 | 답변 : 아두이노 초보 질문 드리겠습니다.
페이지 정보
작성자 master 작성일2018-06-08 18:09 조회10,231회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=1598
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-06-08 오후 6:12:20// by Ok-Hyun Park//LiquidCrystal lcd(8,6,A3,A2,A1,A0); // rs, en, d4, d5, d6, d7#include <Servo.h>Servo myservo;//void setup(){pinMode(12,OUTPUT); // LED1(주차여부 체크해서 on/off)pinMode(7,OUTPUT); // LED2myservo.attach(9); // 서보 모터(차단기)pinMode(2,OUTPUT); // 초음파 센서1 trigpinMode(3,INPUT); // 초음파 센서1 echopinMode(4,OUTPUT); // 초음파 센서2 trigpinMode(5,INPUT); // 초음파 센서2 echopinMode(10,OUTPUT); // 초음파 센서3 trigpinMode(11,INPUT); // 초음파 센서3 echolcd.begin(16,2); lcd.print("WELCOME ");Serial.begin(9600);}//void loop(){int i=0,j=0; // i,j는 주차장의 남은 자리수//-------------------------------------------------------------------digitalWrite(10,HIGH); delayMicroseconds(10); digitalWrite(10,LOW);long distance3=pulseIn(11,HIGH)*17/1000;if(distance3<5){ myservo.write(170); } // 거리가 5 미만이면 // 서보모터 170도 올리기else { myservo.write( 78); } //그렇지 않으면 78도 내리기delay(50);//-------------------------------------------------------------------digitalWrite(2,HIGH); delayMicroseconds(10); digitalWrite(2,LOW);long distance=pulseIn(3,HIGH)*17/1000;if(distance>20){ digitalWrite(12,HIGH); i=1; } // 첫번째 주차장의 자리가 남았으면 i에 1을 넣기else { digitalWrite(12,LOW ); i=0; } // 그렇지 않다면(자리가 남지 않았으면)i에 0을 넣기delay(50);//-------------------------------------------------------------------digitalWrite(4,HIGH); delayMicroseconds(10); digitalWrite(4,LOW);long distance2=pulseIn(5,HIGH)*17/1000;Serial.println(distance2);//if(distance2>17){ digitalWrite(7,HIGH); j=1; } // i와 같은 방법이다.else { digitalWrite(7,LOW ); j=0; }delay(50);//-------------------------------------------------------------------lcd.setCursor(0,1);if((i+j)==0){ lcd.print("Sorry,Full "); } // 자리가 남지 안았다면else { lcd.print("vacancy: "); lcd.print(i+j); } // i+j는 총 남은 자리수}
댓글 1
조회수 10,231폰터진다님의 댓글
폰터진다 작성일혹시 서보모터가 작동이 에코를 뽑거나 끼우면 작동이 되는데 나머지는 작동이 안되는데 어떻게 하는지 알수있을까요