본문 바로가기
임베디드/Atmega128

가져온 코드

by sj0020 2020. 12. 15.
#include<Servo.h> //Servo 라이브러리를 추가
Servo servo;      //Servo 클래스로 servo객체 생성
int value = 0;    // 각도를 조절할 변수 value
 
void setup() {
  servo.attach(7);     //맴버함수인 attach : 핀 설정
  Serial.begin(9600); //시리얼 모니터 사용 고고
}
 
void loop() {
  if(Serial.available())      //시리얼 모니터에 데이터가 입력되면
  {
    char in_data;             // 입력된 데이터를 담을 변수 in_data
    in_data = Serial.read(); //시리얼모니터로 입력된 데이터 in_data로 저장
    if(in_data == '1')        //입력된 데이터가 1이라면
    {
      value += 30;            //각도를 30도 증가시킨다.
      if(value == 180)        //각도가 180도가 되면 (150도보다 커지면)
        value = 0;            //각도를 0으로 초기화
    }
    else                      //그외의 데이터가 입력되면
      value = 0;              //각도를 0으로 초기화
      
    servo.write(value); //value값의 각도로 회전. ex) value가 90이라면 90도 회전
  }
}

 

 

int LED = 9; //LED 아두이노 9번핀에 연결

void setup() {
 Serial.begin(9600); //시리얼모니터 오픈
 pinMode(LED, OUTPUT);  //9번 핀의 모드를 OUTPUT으로 설정
}

void loop() {
//Potentiometer
int val = analogRead(A5)/4;   // 가변저항을 아날로그 A5에 연결하고 이를 'val'에 저장 /안하면 처음부터 끝까지 돌릴때 밝아지고 어두워지는것 4번 반복됨
  Serial.println(val);          // 시리얼 모니터로 가변저항 값을 출력
  analogWrite(LED, val);        // 가변저항의 값을 LED(9번핀)로 보내 출력

//CDS  
  int cds = analogRead(A1); // 조도센서 A1으로 들어오는 값을 cds에 저장
  
  if(cds > 230)
  {
    digitalWrite(LED, HIGH);  // 측정값 230 보다 클 때 LED ON
  }
  else
  {
    digitalWrite(LED, LOW); // 측정값 230보다 작으면 LED OFF
  }
  
}