BASIC4MCU | 질문게시판 | 아두이노 수위센서 모터 3개 ...
페이지 정보
작성자 고옹대 작성일2022-06-10 23:09 조회1,176회 댓글1건본문
아두이노를 이용하여 스마트 욕조를 한번 만들어 보려고 합니다...
온도센서를 이용하여 모터 1개는 냉수를 다른 하나는 온수를 틀 수 있게 작성 하는 중이고
수위센서와 모터 하나를 더 사용하여 물의 수위 까지 맞추려고 하는데
#include <Servo.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
const int temperaturePin = 0;
int pos = 0;
int sensorValue = 0;
int i = 0;
Servo servo_11;
Servo servo_12;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int potPin = 4;
float temperature = 0;
long val = 0;
void setup()
{
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
lcd.begin(16, 2);
lcd.print("LM35 Thermometer");
servo_11.attach(11);
servo_12.attach(12);
pinMode(A4, INPUT);
pinMode(15, OUTPUT);
Serial.begin(9600);
delay(1000);
}
void loop()
{
int reading = analogRead(temperaturePin);
Serial.print((5.0*reading*100.0)/1024.0);
Serial.println(" 도 ");
sensorValue = analogRead(A1);
pos = map(sensorValue,0,1023,0,180);
Serial.print("sensorValue ");
Serial.println(sensorValue);
Serial.print("pos ");
Serial.println(pos);
digitalWrite(5, HIGH);
delay(1000);
digitalWrite(5, LOW);
delay(1000);
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(6, LOW);
delay(1000);
val = analogRead(potPin);
temperature = (val*4.8828125);
lcd.clear();
lcd.print("LM35 Thermometer");
lcd.setCursor(0, 1);
lcd.print((long)temperature / 10);
lcd.print(" . ");
lcd.print( (long)temperature % 10);
lcd.print((char)223);
lcd.print(" C ");
delay(2000);
for (i = 0; i <= pos; i++) {
// tell servo to go to position in variable 'pos'
servo_11.write(i);
// wait 15 ms for servo to reach the position
delay(1000); // Wait for 5 millisecond(s)
}
for (i= pos; i >= 0; i --) {
// tell servo to go to position in variable 'pos'
servo_11.write(i);
// wait 15 ms for servo to reach the position
delay(1000); // Wait for 5 millisecond(s)
}
for (i = 0; i <= pos; i++) {
// tell servo to go to position in variable 'pos'
servo_12.write(i);
// wait 15 ms for servo to reach the position
delay(1000); // Wait for 5 millisecond(s)
}
for (i= pos; i >= 0; i --) {
// tell servo to go to position in variable 'pos'
servo_12.write(i);
// wait 15 ms for servo to reach the position
delay(1000); // Wait for 5 millisecond(s)
}
}
일단 여기까지 코드를 작성하였으나 여기서 온도 설정 방법과 그 온도에 맞게 모터를 돌아가게 코드를 구성 하고 싶습니다.
수위센서 역시 마찬가지구요. 높이는 한 15 cm 정도 생각 중입니다.
어케 코드를 짜야 할까요...ㅜㅜ
댓글 1
조회수 1,176master님의 댓글
master 작성일
실제 동작 시키면서 문제가 발생하면 수정 보완 하셔야 합니다.
뭐가 안되면 그 때 가서 다시 질문을 작성해주세요