본문으로 바로가기

아두이노 3일차

category Personal Studying~/아두이노 2020. 12. 28. 09:49
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