답변 : 아두이노 입문자인데 질문드립니다 ㅠㅠ
페이지 정보
작성자 master 작성일22-12-05 09:54 조회250회 댓글0건본문
#include <Servo.h>
#define SV1 5// 입차 차단기 모터
#define SV2 6// 출차 차단기 모터
Servo sv1;
Servo sv2;
//
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
//
#define trigPin 2
#define echoPin 2
#define trig2Pin 8
#define echo2Pin 8
//
int rPin=10,gPin=11;
int redPin=12,greenPin=13;
//
float distance1=0,duration1=0;
float distance2=0,duration2=0;
//
void setup(){
Serial.begin(9600);
sv1.attach(SV1);
sv2.attach(SV2);
lcd.begin(); lcd.backlight();
pinMode(gPin,OUTPUT);
pinMode(rPin,OUTPUT);
}
//
void loop(){
pinMode(trigPin,OUTPUT); digitalWrite(trig2Pin,LOW); delayMicroseconds(2);
digitalWrite(trigPin,HIGH); delayMicroseconds(10); digitalWrite(trigPin,LOW);
pinMode(echo2Pin,INPUT);
duration1=pulseIn(echoPin,HIGH);
distance1=34000*duration1/1000000/2;
Serial.print("distance1="); Serial.print(distance1); Serial.print("cm");
delay(100);
//----------------------------------------------------
pinMode(trig2Pin,OUTPUT); digitalWrite(trig2Pin,LOW); delayMicroseconds(2);
digitalWrite(trig2Pin,HIGH); delayMicroseconds(10); digitalWrite(trig2Pin,LOW);
pinMode(echo2Pin,INPUT);
duration2=pulseIn(echoPin,HIGH);
distance2=34000*duration1/1000000/2;
Serial.print("distance2="); Serial.print(distance2); Serial.println("cm");
//----------------------------------------------------
if(distance1<20){
sv1.write(120); delay(150);
lcd.setCursor(0,0); lcd.print("welcome"); delay(500); lcd.clear();
digitalWrite(rPin,LOW);
}
else if(distance2<20){
sv2.write(60); delay(150);
lcd.setCursor(0,0); lcd.print("good-bye"); delay(500); lcd.clear();
digitalWrite(redPin,LOW);
}
else{
sv1.write(80); digitalWrite(gPin,LOW); digitalWrite(rPin,HIGH);
sv2.write(80); digitalWrite(greenPin,LOW); digitalWrite(redPin,HIGH);
}
//----------------------------------------------------
delay(100);
}
댓글 : 0
조회수 : 250
등록된 댓글이 없습니다.