?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

아두이노 소스 질문 드립니다

페이지 정보

작성자 도영주 메일보내기 이름으로 검색 작성일14-12-11 17:06 조회3,445회 댓글3건

본문

이번에 아두이노를 하면서 tmp를 만지면 lcd 에 온도가 뜨게 만들고 tmp를 만지면 led가 온도가 올라갈수록 하나씩 켜지는 프로그램을 만들려고 하는데 아두이노 책을 보면서 각자 하나씩은 하겠는데 두개를 합쳐서는 어케 할지 몰르겠더라구요 ㅠ 그래서 그런데 위 두 소스를 합칠려면

어찌 해야 하나요???

const int sensorPin = A0;
const float baselineTemp = 20.0;

void setup(){
  Serial.begin(9600);
 
  for(int pinNumber = 2; pinNumber<5; pinNumber++){
    pinMode(pinNumber, OUTPUT);
    digitalWrite(pinNumber, LOW);
  }
}

void loop(){
  int sensorVal = analogRead(sensorPin);
 
  Serial.print("Sensor Value:");
  Serial.print(sensorVal);
 
  float voltage = (sensorVal/1024.0) * 5.0;
 
  Serial.print(",Volts: ");
  Serial.print(voltage);
  Serial.print(", degrees C: ");
  float temperature = (voltage - .5) * 100;
  Serial.println(temperature);
 
  if(temperature < baselineTemp) {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }else if(temperature >= baselineTemp+2 && temperature < baselineTemp+4){
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }else if(temperature >= baselineTemp+4 && temperature< baselineTemp+6){
    digitalWrite(2, HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4, LOW);
  }else if(temperature >= baselineTemp+6){
    digitalWrite(2,HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
  }
  delay(1);
}

 

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int switchPin = 6;
int switchState = 0;
int prevSwitchState = 0;
int reply;

void setup(){
  lcd.begin(16, 2);
  pinMode(switchPin,INPUT);
 
  lcd.print("Ask the");
 
  lcd.setCursor(0, 1);
  lcd.print("Crystal Ball!");
}

void loop(){
  switchState = digitalRead(switchPin);
  if(switchState != prevSwitchState){
    if(switchState == LOW){
      reply = random(8);
     
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("The ball says:");
      lcd.setCursor(0, 1);
      switch(reply){
        case 0:
        lcd.print("Yes");
        break;
        case 1:
        lcd.print("Most likely");
        break;
        case 2:
        lcd.print("Certainly");
        break;
        case 3:
        lcd.print("Outlook good");
        break;
        case 4:
        lcd.print("Unsure");
        break;
        case 5:
        lcd.print("Ask again");
        break;
        case 6:
        lcd.print("Doubtful");
        break;
        case 7:
        lcd.print("No");
        break;
      }
    }
  }
  prevSwitchState = switchState;
}

댓글목록

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

아래 if 구문안에 원하는 LCD 출력 소스를 넣으면 될 것 같아요.
if(temperature < baselineTemp) {
    lcd.print("Most likely");
  }

작성자님의 댓글

작성자 이름으로 검색 댓글의 댓글 작성일

아래 if문이라 하면 if(switchState != prevSwitchState){ 여기 부분 말씀하시는 건가요?? 이 if문 끝나고 밑에다가 if(temperature < baselineTemp) {
    lcd.print("Most likely");
  }  첨부하면 되나요????

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

네 말씀하신 것처럼 하시면 될 듯 합니다. 다만 두 소스의 전역변수(LCD 사용을 위한 초기화 부분 포함)들을 하나로 합쳐야겠죠.