BASIC4MCU | 질문게시판 | 아두이노 2개 코딩을 합쳐주세요ㅠㅠ
페이지 정보
작성자 호빵맨 작성일2020-06-04 21:05 조회2,472회 댓글0건본문
초음파센서로 서보모터 움직이기>>
#include <Servo.h>
Servo servo;
#define trig 7
#define echo 6
int angle =0;
int sw = 10;
int led = 6;
int state = LOW;
int reading;
int previous = LOW;
long time = 0;
long debounce = 100;
void setup() {
servo.attach(2);
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(sw, INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop()
{
long duration,distance;
digitalWrite(trig, LOW);
digitalWrite(echo, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = ((float)(340*duration)/10000)/2;
Serial.print("거리:");
Serial.print(distance);
Serial.println("cm");
if (distance<10) {
angle=70;
Serial.println("문이 열렸습니다.");
delay(500);
}
else{
angle=180;
delay(500);
}
servo.write(angle);
reading = digitalRead(sw);
if (reading == HIGH && previous == LOW && millis() - time > debounce) {
if (state == HIGH)
state = LOW;
else .
state = HIGH;
time = millis();
}
digitalWrite(led, state);
previous = reading;
}
택트스위치로 led켜기>>
int sw = 10;
int led = 6;
int state = LOW;
int reading;
int previous = LOW;
long time = 0;
long debounce = 100;
void setup()
{
pinMode(sw, INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop()
{
reading = digitalRead(sw);
if (reading == HIGH && previous == LOW && millis() - time > debounce) {
if (state == HIGH)
state = LOW;
else
state = HIGH;
time = millis();
}
digitalWrite(led, state);
previous = reading;
}
댓글 0
조회수 2,472등록된 댓글이 없습니다.