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

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

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

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

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

BASIC4MCU > 질문게시판

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

페이지 정보

작성자 dabdab 작성일18-10-03 15:12 조회644회 댓글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

조회수 : 644

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[9] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 아두이노 우노로 thingspeak 연결할 수는 있나요… 댓글[3] 초보동그리 새글 19-09-21
질문 아두이노 우노로 스텝모터제어 가능한지요 댓글[1] 김기사 새글 19-09-21
질문 val 값 전달에 대해서 .. 댓글[1] 푸링이 새글 19-09-20
질문 c언어 모터 순방향 구동 및 역방향 구동 프로그램 댓글[1] 세계제일초보 새글 19-09-20
질문 아두이노로 구현한 기능 코드를 다른 mcu로 코딩 많이… 댓글[1] 눈티이  19-09-19
질문 아두이노 타이머 멀티태스킹 질문 master  19-09-19
질문 혹여나 습도값을 슬라이더로 바꿀 수 있을까요? 댓글[2] 첨부파일푸링이  19-09-16
질문 아두이노 포크레인 중 스텝모터질문 댓글[1] 노은우  19-09-16
질문 아트메가 댓글[2] 전자어렵  19-09-16
답변 답변 : 아트메가 master  19-09-18
질문 도와주세요 ㅠㅠ 댓글[1] 민서가또  19-09-16
질문 아두이노 if문 실행문제 댓글[1] 첨부파일sun0100  19-09-16
질문 아트메가128 댓글[2] 전자어렵  19-09-15
답변 답변 : 아트메가128 댓글[4] master  19-09-15
질문 아두이노 IR센서 코딩질문입니다 댓글[2] rkskek  19-09-15
질문 아두이노 외부전원 질문드립니다! 댓글[2] 빵빵판  19-09-15
질문 Timer1_CTC 연습중인데요.. 댓글[4] 초짜  19-09-13
질문 안녕하세요, 인터페이스까지는 완료했습니다 ! 댓글[12] 첨부파일푸링이  19-09-12
질문 아래 앱인벤터 글에 이어서.. 댓글[1] 첨부파일푸링이  19-09-11
질문 memcmpf 질문이요 댓글[2] 초짜  19-09-10
질문 아두이노 네오픽셀 질문드립니다. 댓글[1] 호기심왕  19-09-10
질문 앱인벤터를 통해 스텝모터를 습도조건에 따라 움직이게 하… 댓글[5] 푸링이  19-09-10
질문 atmega128 의 PWM 모드 질문이요 댓글[6] 초짜  19-09-06
질문 아두이노 서보모터 제어문제입니다 ㅠ 댓글[3] 첨부파일졸업좀시켜줘요  19-09-05
질문 코딩질문이므니다.. 댓글[1] 첨부파일베이식  19-09-04
질문 아두이노 Oscillator.h 라이브러리 다운 하는법 댓글[1] bbhu  19-09-02
질문 atmega128a 질문이요 댓글[1] 초짜  19-08-30
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전