728x90
반응형
SMALL
조도센서
void setup()
{
pinMode(A0, INPUT);
Serial.begin(9600);
pinMode(6,OUTPUT);
}
void loop()
{
//빛의 조도값 54~974
//빛의 밝기가 200보다 낮아졌을때 LED를 켜주세요
//조도센서의 값을 LED아날로그 값으로 변환해서 사용하시오
//어두울 수록 LED는 밝아지고 밝을 수록 LED는 어두워집니다.
int value=analogRead(A0); //조도 값
int light=digitalRead(6);
Serial.println(value);
int value_=map(value,54,974,255,0);
analogWrite(6,value_);
}
조도센서 저항 10k옴
서브모터
#include <Servo.h>//서브모터:각도에 따라 돌아가는
//서브모터를 제어하는 변수생성
Servo myServo;
void setup()
{
myServo.attach(13);//서브모터 제어변수 attach를 통해 핀을 붙임
}
void loop()
{
myServo.write(90);
delay(1000); //딜레이 주는 이유>> 모터가 각도에 따라 갔다가 돌아오는데의 시간이 걸리기때문
myServo.write(0);
delay(1000);
}
#include <Servo.h>
//문제:버튼을 눌렀을때 서브모터가 90도로 올라가고
// 1초에 LED를 하나씩 키게된다
// 5개의 LED를 다 켰다면 LED를 다 끄고 나서
// 서브모터를 다시 0도로 원위치 시킨다
Servo myServo;
void setup()
{
pinMode(12, INPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
myServo.attach(2);
}
void loop()
{
/* int btn=digitalRead(12);
if(btn==1){
myServo.write(90);
digitalWrite(11,1);
delay(1000);
digitalWrite(10,1);
delay(1000);
digitalWrite(9,1);
delay(1000);
digitalWrite(8,1);
delay(1000);
digitalWrite(7,1);
delay(1000);
digitalWrite(11,0);
digitalWrite(10,0);
digitalWrite(9,0);
digitalWrite(8,0);
digitalWrite(7,0);
myServo.write(0);
}
*/
int base=12;
int btn=digitalRead(12);
if(btn==1){
myServo.write(90);
for(int i=1; i<6; i++){
digitalWrite(base-i,1);
delay(1000);
}
for(int i=1; i<6; i++){
digitalWrite(base-i,0);
}
myServo.write(0);
}
}
#include <Servo.h> //강제 회전 차단막 센서 추가
//문제:버튼을 눌렀을때 서브모터가 90도로 올라가고
// 1초에 LED를 하나씩 키게된다
// 5개의 LED를 다 켰다면 LED를 다 끄고 나서
// 서브모터를 다시 0도로 원위치 시킨다
Servo myServo;
void setup()
{
pinMode(A0,INPUT);
Serial.begin(9600);
pinMode(12, INPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6,OUTPUT);
Serial.begin(9600);
myServo.attach(2);
}
void loop()
{
/* int btn=digitalRead(12);
if(btn==1){
myServo.write(90);
digitalWrite(11,1);
delay(1000);
digitalWrite(10,1);
delay(1000);
digitalWrite(9,1);
delay(1000);
digitalWrite(8,1);
delay(1000);
digitalWrite(7,1);
delay(1000);
digitalWrite(11,0);
digitalWrite(10,0);
digitalWrite(9,0);
digitalWrite(8,0);
digitalWrite(7,0);
myServo.write(0);
}
*/
int base=12;
int btn=digitalRead(12);
int value=analogRead(A0);
int value_=map(value,0,1023,0,180);
myServo.write(value_);
if(btn==1 || value_>90){
tone(6,261,00);
myServo.write(90);
for(int i=1; i<6; i++){
digitalWrite(base-i,1);
delay(1000);
}
for(int i=1; i<6; i++){
digitalWrite(base-i,0);
}
tone(6,261,200);
myServo.write(0);
}
}
============================================================================
주차장 탐지센서
#include <Servo.h>
// 문제 : 버튼을 눌렀을때 서보모터가 90도로 올라가고
// 1초에 LED를 하나씩 키게된다
// 5개의 LED를 다 켰다면 LED를 다 끄고 나서
// 서보모터를 다시 0도로 원위치 시킨다
Servo myServo;
void setup()
{
myServo.attach(2);
//초음파 센서
pinMode(13, OUTPUT); //trig 초음파 발사
pinMode(12, INPUT); //echo 초음파 값 get
//전구
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
//가변저항
pinMode(A0, INPUT);
//스피커소리
pinMode(A1, INPUT);
}
void loop()
{
int sensor = analogRead(A0);
int result = map(sensor, 0, 1023, 0, 180);
myServo.write(result);
int value = analogRead(A1);
if(value > 400){
digitalWrite(13, 1);
delay(10);
digitalWrite(13, 0);
int duration = pulseIn(12, 1);
int distance = duration/58.2;
if(distance < 20){
tone(6, 500, 300);
myServo.write(90);
delay(1000);
digitalWrite(11, 1);
delay(1000);
digitalWrite(10, 1);
delay(1000);
digitalWrite(9, 1);
delay(1000);
digitalWrite(8, 1);
delay(1000);
digitalWrite(7, 1);
delay(1000);
digitalWrite(11, 0);
digitalWrite(10, 0);
digitalWrite(9, 0);
digitalWrite(8, 0);
digitalWrite(7, 0);
myServo.write(0);
tone(6, 500, 300);
delay(1000);
}
}
}
728x90
반응형
LIST
'Personal Studying~ > 아두이노' 카테고리의 다른 글
아두이노 2일차 (0) | 2020.12.24 |
---|---|
아두이노 1일차 (0) | 2020.12.23 |