질문게시판 > 태양추적 파라솔 코딩 도움부탁드립니다..ㅠㅠ

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

태양추적 파라솔 코딩 도움부탁드립니다..ㅠㅠ

페이지 정보

작성자 dabdab 작성일18-10-03 15:12 조회995회 댓글0건

본문

서보모터 한개와 조도센서 4개(동서남북)를 이용할 것이고

1시간을 기준으로 하여 가장 많은 태양빛이 들어오는 방향(동서남북)으로

파라솔을 돌리려고 하는게 목적입니다. 

 

1시간 마다 각 방향의 조도센서를 통해 태양빛의 양을 비교해서 파라솔을 돌리려고 하는데 

어떻게 코드를 추가해야하고 어느부분을 수정해야 하는지 알고싶습니다..ㅠㅠ


#include // 서보 라이브러리를 불러옵니다.

 

Servo myservo;#include

Servo myservo;


// 조도센서를 연결합니다.

// 조도센서의 이름 = 아날로그 핀번호;

int ldrlt = 0; //LDR 왼쪽 위

int ldrrt = 1; //LDR 오른쪽 위

int ldrld = 2; //LDR 왼쪽 아래

int ldrrd = 3; //ldr 오른쪽 아래

 

void setup() {

  Serial.begin(9600);

  // 서보를 연결합니다.

  // name.attacht(pin);

  horizontal.attach(9);

  vertical.attach(10);

}

 

void loop() {

  int lt = analogRead(ldrlt); // 왼쪽 탑

  int rt = analogRead(ldrrt); // 오른쪽 탑

  int ld = analogRead(ldrld); // 왼쪽 다운

  int rd = analogRead(ldrrd); // 오른쪽 다운

 

  int dtime = analogRead(4) / 20; //속도는 아날로그 4번 가변저항값을 읽고 20으로 나누어 줍니다.

  int tol = analogRead(5) / 4; //반경은 아날로그 5번 가변저항값을 읽고 4로 나누어 줍니다.

 

  int avt = (lt + rt) / 2; // 위쪽의 평균값을 구합니다.

  int avd = (ld + rd) / 2; // 아래쪽의 평균값을 구합니다.

  int avl = (lt + ld) / 2; // 왼쪽의 평균값을 구합니다.

  int avr = (rt + rd) / 2; // 오른쪽의 평균값을 구합니다.

 

  int dvert = avt - avd; // 위쪽과 아래쪽의 차이를 구합니다.

  int dhoriz = avl - avr;// 왼쪽과 오른쪽의 차이를 구합니다.

 

  if (-1 * tol > dvert || dvert > tol) { // check if the diffirence is in the tolerance else change vertical angle

    if (avt < avd) {

      servov = ++servov;

      if (servov > 180) {

        servov = 180;

      }

    }

    else if (avt > avd) {

      servov = --servov;

      if (servov < 0) {

        servov = 0;

      }

    }

    vertical.write(servov);

  }

 

  if (-1 * tol > dhoriz || dhoriz > tol) {// check if the diffirence is in the tolerance else change horizontal angle

    if (avl > avr) {

      servoh = --servoh;

      if (servoh < 0) {

        servoh = 0;

      }

    }

    else if (avl < avr) {

      servoh = ++servoh;

      if (servoh > 180) {

        servoh = 180;

      }

    }

    else if (avl == avr) {

      // nothing

    }

    horizontal.write(servoh);

  }

  delay(dtime);

}

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기 
  • 트위터로 보내기 
  • 구글플러스로 보내기
  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 0

조회수 : 995

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[10] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 HC-11을 이용하여 1:N 통신중입니다. 댓글[2] 아두이노배우기 새글 20-02-23
질문 스텝모터 정지 댓글[2] 아두이노배우기 새글 20-02-23
답변 답변 : 스텝모터 정지 댓글[2] master 새글 20-02-23
질문 정말 감사합니다. 박취  20-02-19
질문 ov9655카메라와 stm32f4 보드를 이용한 영상처… 댓글[7] flap  20-02-19
질문 GLCD 텍스트 출력 댓글[2] 전자학습자  20-02-17
질문 아두이노 HC-11 통신관련입니다. 아두이노배우기  20-02-15
답변 답변 : 아두이노 HC-11 통신관련입니다. master  20-02-16
답변 답변 : 답변 : 아두이노 HC-11 통신관련입니다. 아두이노배우기  20-02-16
질문 led 불켜기 마스터 슬레이브 댓글[1] 공용  20-02-12
답변 답변 : led 불켜기 마스터 슬레이브 master  20-02-12
질문 아두이노 코딩 관련 질문입니다. bbeuniii  20-02-12
답변 답변 : 아두이노 코딩 관련 질문입니다. master  20-02-12
질문 uart 관련 질문 (wiegand통신) 댓글[9] 첨부파일jhyun8624  20-02-11
질문 회로, 코딩 문제 첨부파일공기구함  20-02-10
답변 답변 : 회로, 코딩 문제 댓글[2] master  20-02-10
질문 회로, 코딩문제 댓글[2] 첨부파일공기구함  20-02-10
질문 코딩어레이 질문 master  20-02-07
질문 컴파일 오류가나는데, 이유를 모르겠습니다. 댓글[5] 창고지기  20-02-06
질문 IR센서 2개로 LED, DC모터 제어 (입문자입니다 … 창고지기  20-02-05
답변 답변 : IR센서 2개로 LED, DC모터 제어 (입문… 댓글[1] master  20-02-05
질문 [초보]언어부분 접근 방법 문의 댓글[5] 에루후  20-02-04
답변 답변 : [초보]언어부분 접근 방법 문의 댓글[3] 에루후  20-02-05
질문 아두이노 PS/2 바코드 리더기 코드 해석 질문 master  20-02-02
질문 NodeMCU ESP-32S 외부 전원 모듈 질문드립니… y1234y  20-02-01
답변 답변 : NodeMCU ESP-32S 외부 전원 모듈 … master  20-02-01
답변 답변 : 답변 : NodeMCU ESP-32S 외부 전… 댓글[8] y1234y  20-02-01
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전