1. 프로젝트 사용한 보드 종류
아두이노 UNO
2. 사용한 개발 프로그램명
아두이노 IDE
3. 사용한 센서 모델명
(센서 모델명을 자세하게 적어 주실 경우 더 정확하게 확인할 수 있습니다.)
4. 연결한 회로 설명 (또는 이미지)
5. 소스코드 (주석 필수)
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int Sensor_pin = A0; // 토양수분센서 핀을 A0으로 설정
int Water_Pump = 8; // 워터펌프 핀을 A5으로 설정
int buzzerPin = 2; //수동부저 핀4설정
int water_pin = A3; //수위센서 A3에 연결
int LED = 7;
int ggg();
int soil_result;
void setup()
{
// set up the LCD's number of columns and rows:
lcd.init(); // Print a message to the LCD.
lcd.backlight();
lcd.clear();
Serial.begin(9600);
pinMode(Water_Pump, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(Sensor_pin, INPUT);
pinMode(water_pin, INPUT);
pinMode(LED, OUTPUT);
}
void loop()
{
void ggg(int water_pin);
Serial.println(analogRead(water_pin)); // Serial monitor로 A1값을 보여줌
delay(1000); // 입력값을 보여주는데 0.1초 설정
if(analogRead(water_pin) < 400) // 수위센서 값이 400이하면 부저작동
{
ggg(0);
digitalWrite(LED, HIGH);
}
else if( analogRead(water_pin) > 400 )
{
ggg(1);
digitalWrite(LED, LOW);
}
{
soil_result = analogRead(Sensor_pin);
Serial.println(soil_result);// 센서값을 시리얼모니터로 전송
delay(1000);
if ( soil_result > 450 && water_pin ==1)
{
digitalWrite(Water_Pump, HIGH);
lcd.setCursor(1, 0);
lcd.print("Water, please"); // 'Water,please' 문구 출력
analogWrite(buzzerPin, 5);
tone(buzzerPin,440);//라
delay(220);
tone(buzzerPin,293);//레
delay(220);
tone(buzzerPin,349);//파
delay(150);
tone(buzzerPin,391);//솔
delay(220);
tone(buzzerPin,440);//라
delay(400);
noTone(buzzerPin);
delay(350);
tone(buzzerPin,293);//레
delay(220);
tone(buzzerPin,349);//파
delay(150);
tone(buzzerPin,523);//도
delay(220);
tone(buzzerPin,440);//라
delay(400);
noTone(buzzerPin);
delay(300);
}
else if( soil_result < 450 && water_pin == 0)
{ //화분, 물통 물 없으
tone(buzzerPin,293);//레
delay(300);
}
else if( soil_result < 450) // 화분에 물충분
{
// 토양에 수분이 충분하면
lcd.clear();
digitalWrite(Water_Pump, LOW);
analogWrite(buzzerPin, 0);
noTone(buzzerPin);
}
}
}
6. 문제점 및 에러 내용
보드 Arduino Uno 컴파일 에러.
라고 오류메세지가 계속 뜹니다. 헤더파일도 있는데 왜그러는걸까요?
|