카테고리 없음

[동아리 과제] 5월 25일 아두이노 8차시 과제

20308박동진 2022. 5. 25. 17:20

스텝모터란?

- 입력신호의 변화 유무에 따라 일정하게 각도를 변화하거나 위치를 유지하고 정지하는 기능의 모터.

- 스텝 모터는 전자 펄스를 운동으로 전환하고 각각의 펄스 '스텝' 이 샤프트를 어떤 각도로 회전하게 합니다.

  ㄴ 샤프라는 부분이 회전 할 수 있게 한다.

스텝모터를 사용하려면...

--> 모터드라이브(ULN2003) 이 필요합니다.

왜?

--> 보드의 전료가 모터의 필요치보다 낮음 --> 보드 자체만으로 모터를 사용할 수 (X) --> 따라서 중간에 드라이브 회로를 거쳐서 전압, 전류를 증폭시켜야함

 

 

+들어가기 전에 : <Stepper.h>라는 헤더파일을 추가하여야 합니다.

 

<회로도>

퍼왔습니다..

<코드>

#include <Stepper.h> //스텝모터를 사용하는데 필요한 헤더파일 추가
int st = 2048; //모터값 설정
Stepper stepper(st, 11,9,10,8); //스텝 모터 클래스의 객체 생성 + 각각의 이름
void setup() {
   stepper.setSpeed(10); //스텝모터 속도 설정
}

void loop() {
  stepper.step(st);
}

 

<모터를 반대 방향으로 돌려보자>

<코드>

#include <Stepper.h> //스텝모터를 사용하는데 필요한 헤더파일 추가
int st = 2048; //모터값 설정
Stepper stepper(st, 8,10,9,11); //스텝 모터 클래스의 객체 생성 + 각각의 이름 --> 객체의 순서를 반대로 해 반대로 돌 수 있도록 함.
void setup() {
   stepper.setSpeed(10); //스텝모터 속도 설정
}

void loop() {
  stepper.step(st);
}

 

 

수분센서(수위 측정 센서)란?

- 물의 여부를 확인함

- 수분함량에 따른 저항의 변화를 측정 ( 수분함량과 비례)

 

 

<회로도>

 

퍼왔습니다...

<코드>

int led = 2;
void setup() {
  Serial.begin(9600); //시리얼통신선언
}

void loop() {
   int level = analogRead(A0); //아날로그 A0에다가 핀을 꽂음
  Serial.println(level); // 시리얼모니터에 level값 출력
}

 

<적정 수위가 되었을 때 LED를 켜보자>

 

<회로도>

<코드>

int led = 2;
void setup() {
  Serial.begin(9600); //시리얼 통신 선언
  pinMode(led, OUTPUT); //led핀모드 설정
}

void loop() {
   int level = analogRead(A0);
  Serial.println(level);
  if(level > 50){ //level이 50이 넘어가면
    digitalWrite(led, HIGH);//led가 켜짐
  }
  else //아니라면
  digitalWrite(led, LOW);//꺼짐
}

.

.

.

.

 

.

<오늘의 과제>

1.  수위센서를 사용하여 적정 수위일 때 부저센서 울리기

2. 스텝 모터의 속도를 마음대로 설정한 다음 돌려보기

 

<회로도>

퍼왔습니다..

<코드>

#include <Stepper.h> //스텝모터를 사용하는데 필요한 헤더파일 추가
int st = 2048; //모터값 설정
Stepper stepper(st, 11,9,10,8); //스텝 모터 클래스의 객체 생성 + 각각의 이름
void setup() {
   stepper.setSpeed(10); //스텝모터 속도 설정 --> 각각 10, 15, 30순으로 증가시킴
}

void loop() {
  stepper.step(st);
}

 

<실행영상>

 

 

 

...> 2

 

 

<회로도>

 

 

<코드>

int bu = 2;
void setup() {
  Serial.begin(9600); //시리얼 통신 선언
  pinMode(bu, OUTPUT); //bu핀모드 설정
}

void loop() {
   int level = analogRead(A0);
  Serial.println(level);
  if(level > 50){ //level이 50이 넘어가면
    tone(bu, 1100);//led가 켜짐
  }
  else //아니라면
  noTone(bu);//꺼짐
}

...>1