질문게시판 > 아두이노 소스

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

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

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

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

BASIC4MCU > 질문게시판

아두이노 소스

페이지 정보

작성자 앙우앙 작성일18-06-06 21:15 조회4,391회 댓글0건

본문

int enablePin = 11;

int in1Pin = 10;

int in2Pin = 9;

int switchPin = 7;

int potPin = 0;

 

void setup()

{
  pinMode(in1Pin, OUTPUT);


  pinMode(in2Pin, OUTPUT);

  pinMode(enablePin, OUTPUT);

  pinMode(switchPin, INPUT_PULLUP);

}

 

void loop()

{

  int speed = analogRead(potPin) / 4;

  boolean reverse = digitalRead(switchPin);

  setMotor(speed, reverse);

}

 

void setMotor(int speed, boolean reverse)

{

  analogWrite(enablePin, speed);

  digitalWrite(in1Pin, ! reverse);

  digitalWrite(in2Pin, reverse);

// dc모터

 

int Raindrops_pin = A0;  // 빗방울센서 핀을 A0으로 설정
int Buzzer = 13;         // Buzzer 핀을 13번핀으로 설정
 
void setup(){
  Serial.begin(9600);   // Serial monitor 전원 인가
  pinMode(A0 , INPUT);   // 빗방울 감지핀을 아날로그 입력으로 설정
}
 
void loop(){
 
  Serial.println(analogRead(A0));  // 센서값을 시리얼모니터로 전송
  delay(100);                       // 센서값 간격 0.1초로 설정
  if(analogRead(A0) < 500){         // 빗방울 감지핀의 수위가 500미만이면
    digitalWrite( 7, HIGH);        
    delay(100);
    digitalWrite( 7, LOW);
    delay(100);                     // 0.1초 간격으로 파랑LED가 깜빡깜빡
    digitalWrite( 13, HIGH);        // 0.1초 간격으로 부저가 경고음을
    delay(100);
    digitalWrite( 13, LOW);
    delay(100);
  }                                 
 else {                              // 빗방울 감지핀의 출력값이 500이상이면
    digitalWrite( 7, LOW);            // 파랑LED는 OFF유지
    delay(100);                     // 부저의 경고음도 OFF유지
    digitalWrite( 13, LOW);
    delay(100);
 }
}

// 빗물감지센서

 


int dust_sensor = A0;   // 미세먼지 핀 번호
int rgb_red = 5;    // rgb 핀 빨간색 핀
int rgb_green = 6;  // rgb핀 녹색 핀
int rgb_blue = 7;  // rgb핀 파란색 핀
 
float dust_value = 0;  // 센서에서 입력 받은 미세먼지 값
float dustDensityug=0;  // ug/m^3 값을 계산
 
int sensor_led = 12;      // 미세먼지 센서 안에 있는 적외선 led 핀 번호
int sampling = 280;    // 적외선 led를 키고, 센서 값을 읽어 들여 미세먼지를 측정하는 샘플링 시간
int waiting = 40;   
float stop_time = 9680;   // 센서를 구동하지 않는 시간
 
void setup(){
  Serial.begin(9600);   // 시리얼 모니터 시작, 속도는 9600
  pinMode(sensor_led,OUTPUT); // 미세먼지 적외선 led를 출력으로 설정
  pinMode(4, OUTPUT);
 
  pinMode(rgb_red, OUTPUT);     // 3색 LED 모듈 출력으로 설정, 붉은색
  pinMode(rgb_green, OUTPUT);   // 녹색
  pinMode(rgb_blue, OUTPUT);    // 파란색
}
 
void loop(){
  digitalWrite(sensor_led, LOW);    // LED 켜기
  delayMicroseconds(sampling);   // 샘플링해주는 시간.
 
  dust_value = analogRead(dust_sensor); // 센서 값 읽어오기
 
  delayMicroseconds(waiting);  // 너무 많은 데이터 입력을 피해주기 위해 잠시 멈춰주는 시간.
 
  digitalWrite(sensor_led, HIGH); // LED 끄기
  delayMicroseconds(stop_time);   // LED 끄고 대기 
 
  dustDensityug = (0.17 * (dust_value * (5.0 / 1024)) - 0.1) * 1000;    // 미세먼지 값 계산
  Serial.print("Dust Density [ug/m3]: ");            // 시리얼 모니터에 미세먼지 값 출력
  Serial.print(dustDensityug);
 
  if(dustDensityug <= 30.0){       // 대기 중 미세먼지가 좋음 일 때 파란색 출력
     analogWrite(rgb_red, 0);
     analogWrite(rgb_green, 0);
     analogWrite(rgb_blue, 255);
     Serial.print("   ");
     Serial.println("blue");
  }else if(30.0 < dustDensityug && dustDensityug <= 80.0){      // 대기 중 미세먼지가 보통 일 때 녹색 출력
     analogWrite(rgb_red, 0);
     analogWrite(rgb_green, 255);
     analogWrite(rgb_blue, 0);
     Serial.print("   ");
     Serial.println("green");   
  }else if (80.0 < dustDensityug && dustDensityug <= 150.0){    // 대기 중 미세먼지가 나쁨 일 때 노란색 출력
     analogWrite(rgb_red, 255);
     analogWrite(rgb_green, 155);
     analogWrite(rgb_blue, 0);
     Serial.print("   ");
     Serial.println("yellow");       
  }else{                                                     // 대기 중 미세먼지가 매우 나쁨 일 때 빨간색 출력
     analogWrite(rgb_red, 255);
     analogWrite(rgb_green, 0);
     analogWrite(rgb_blue, 0);   
     Serial.print("   ");
     Serial.println("red");
  }
 
  delay(2000);
 
}

 

//미세먼지

 

 

이렇게 세가지를 사용하여 빗물기판에 물이 닿게되면 dc모터가 작동하게 하고 빗물이 감지 되지않으면 멈추는 그리고 먼지 또한 원하는 기준에 넘으면 dc모터가 작동 되는 코딩을 하고 싶은데 어떻게 합쳐 야 하는 걸까요!?

 

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

댓글 : 0

조회수 : 4,391

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 라즈베리파이4 신형 선택문제 maximum 새글 22-06-26
질문 음전압 ADC 댓글[1] 412904 새글 22-06-26
질문 아두이노 센서값 출력 질문입니다! 댓글[1] 아궁2  22-06-24
질문 ATmega128, ATmega28 RS232통신 첨부파일Moon4201  22-06-24
답변 답변 : ATmega128, ATmega28 RS232… 댓글[1] master 새글 22-06-25
질문 서보모터, 온습도센서 코드 질문 댓글[2] 첨부파일kshdlfaldfh  22-06-22
답변 답변 : 서보모터, 온습도센서 코드 질문 댓글[15] master  22-06-22
질문 steppermulti5 질문 응애  22-06-21
답변 답변 : steppermulti5 질문 댓글[1] master  22-06-22
질문 atmega128 avr usart 질문 snoflak  22-06-21
답변 답변 : atmega128 avr usart 질문 댓글[5] master  22-06-21
질문 사용자 정의 함수 변환 하는 방법 댓글[2] 첨부파일da0800  22-06-21
질문 atmega128 댓글[1] 양의노래  22-06-20
질문 아두이노 동시동작 재질문 댓글[9] 첨부파일죠르디  22-06-20
질문 초음파센서로 dc모터 제어하기 댓글[1] 첨부파일난쟁2  22-06-20
질문 아두이노 동시동작 댓글[7] 죠르디  22-06-19
질문 ATMEGA128 UART,FND 연동 질문 JMOD  22-06-19
답변 답변 : ATMEGA128 UART,FND 연동 질문 댓글[1] master  22-06-20
질문 atmeg128 질문이요 댓글[1] 첨부파일공대생er  22-06-18
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨  22-06-18
답변 답변 : atmega128 초음파 센서로 신호등 시간초… 댓글[1] master  22-06-18
질문 atmega128 댓글[2] 망경이  22-06-18
질문 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다… 댓글[1] 따랑해영  22-06-18
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 ..… 댓글[1] 첨부파일따랑해영  22-06-19
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 .… 첨부파일따랑해영  22-06-19
질문 서보모터와 초음파센서 댓글[1] 브링미히어  22-06-17
질문 LCD 도와주세요 ㅜㅠㅠㅠ 댓글[2] 첨부파일dentist22  22-06-17
질문 안녕하세요 atmega128 질문드리고 싶습니다. (자… 댓글[3] dlcldl  22-06-17
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전