BASIC4MCU | 질문게시판 | 학교 졸작인데 막혔는데 도움좀 주시면 감사하겠습니다.
페이지 정보
작성자 용용89 작성일2020-10-04 19:46 조회2,979회 댓글1건본문
#include <SHT1x.h>
#include "U8glib.h"
U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, CD = 9, RST = 8
#define ON 1
#define OFF 0
#define TARGET_TEMP 30.0 /* 부화기 설정 온도 */
#define ALPHA 0.5 /* 38.5 ~ 37.5 도 에서 동작 하도록 함 */
const int light = 12; /* 전구는 아두이노 12번 포트를 사용 */
float Celsius = 0;
float Fahrenheit = 0;
float humidity = 0;
SHT1x sht15(A4, A5);
int VCC = A3;
int GND = A2;
void setup(void)
{
Serial.begin(9600);
pinMode(light, OUTPUT); /* 13번 포트 출력모드로 설정 */
digitalWrite(light, ON); /* 백열 전구를 ON */
pinMode(VCC, OUTPUT);
pinMode(GND, OUTPUT);
digitalWrite(VCC, HIGH);
digitalWrite(GND, LOW);
u8g.setContrast(0); // Config the contrast to the best effect
// 최상의 효과를 위해 대비 구성
u8g.setRot180(); // rotate screen, if required
// 필요한 경우 화면 회전
// set SPI backup if required
// 필요한 경우 SPI 백업 설정
u8g.setHardwareBackup(u8g_backup_avr_spi);
// assign default color value
// 기본 색상 값 할당
if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
u8g.setColorIndex(255); // white 흰색
}
else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
u8g.setColorIndex(3); // max intensity 최대 강도
}
else if ( u8g.getMode() == U8G_MODE_BW ) {
u8g.setColorIndex(1); // pixel on 픽셀 켜기
}
else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
u8g.setHiColorByRGB(255,255,255);
}
}
void loop(void)
{
readSensor();
if(Celsius > TARGET_TEMP+ALPHA)
digitalWrite(light, OFF);
else if (Celsius < TARGET_TEMP-ALPHA)
digitalWrite(light, ON);
// picture loop 사진 루프
u8g.firstPage();
do {
draw();
}
while( u8g.nextPage() );
// rebuild the picture after some delay
// 약간의 지연 후 그림을 다시 작성
printOut();
delay(1000);
}
void readSensor()
{
Celsius = sht15.readTemperatureC();
Fahrenheit = sht15.readTemperatureF();
humidity = sht15.readHumidity();
}
void printOut()
{
Serial.print(" Temp = ");
Serial.print(Fahrenheit);
Serial.print("F, ");
Serial.print(Celsius);
Serial.println("C");
Serial.print(" Humidity = ");
Serial.print(humidity);
Serial.println("%");
}
void draw(void) {
// graphic commands to redraw the complete screen should be placed here
// 전체 화면을 다시 그리는 그래픽 명령을 여기에 배치해야합니다
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 10);
u8g.print("temperature : ");
u8g.print(Celsius);
u8g.drawStr( 0, 40);
u8g.print("humidity : ");
u8g.print(humidity);
}
결과
C:\Users\lg\Documents\Arduino\sketch_oct04b\sketch_oct04b.ino: In function 'void draw()':
sketch_oct04b:105:21: error: no matching function for call to 'U8GLIB_NHD_C12864::drawStr(int, int)'
u8g.drawStr( 0, 10);
^
In file included from C:\Users\lg\Documents\Arduino\sketch_oct04b\sketch_oct04b.ino:2:0:
C:\Users\lg\Documents\Arduino\libraries\U8glib/U8glib.h:169:16: note: candidate: u8g_uint_t U8GLIB::drawStr(u8g_uint_t, u8g_uint_t, const char*)
u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr(&u8g, x, y, s); }
^~~~~~~
C:\Users\lg\Documents\Arduino\libraries\U8glib/U8glib.h:169:16: note: candidate expects 3 arguments, 2 provided
C:\Users\lg\Documents\Arduino\libraries\U8glib/U8glib.h:199:16: note: candidate: u8g_uint_t U8GLIB::drawStr(u8g_uint_t, u8g_uint_t, const __FlashStringHelper*)
u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStrP(&u8g, x, y, (u8g_pgm_uint8_t *)s); }
^~~~~~~
C:\Users\lg\Documents\Arduino\libraries\U8glib/U8glib.h:199:16: note: candidate expects 3 arguments, 2 provided
sketch_oct04b:108:21: error: no matching function for call to 'U8GLIB_NHD_C12864::drawStr(int, int)'
u8g.drawStr( 0, 40);
^
In file included from C:\Users\lg\Documents\Arduino\sketch_oct04b\sketch_oct04b.ino:2:0:
C:\Users\lg\Documents\Arduino\libraries\U8glib/U8glib.h:169:16: note: candidate: u8g_uint_t U8GLIB::drawStr(u8g_uint_t, u8g_uint_t, const char*)
u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr(&u8g, x, y, s); }
^~~~~~~
C:\Users\lg\Documents\Arduino\libraries\U8glib/U8glib.h:169:16: note: candidate expects 3 arguments, 2 provided
C:\Users\lg\Documents\Arduino\libraries\U8glib/U8glib.h:199:16: note: candidate: u8g_uint_t U8GLIB::drawStr(u8g_uint_t, u8g_uint_t, const __FlashStringHelper*)
u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStrP(&u8g, x, y, (u8g_pgm_uint8_t *)s); }
^~~~~~~
C:\Users\lg\Documents\Arduino\libraries\U8glib/U8glib.h:199:16: note: candidate expects 3 arguments, 2 provided
exit status 1
no matching function for call to 'U8GLIB_NHD_C12864::drawStr(int, int)'
이 리포트는 파일 -> 환경설정에 "컴파일중 자세한 출력보이기"를
활성화하여 더 많은 정보를
보이게 할 수 있습니다.
댓글 1
조회수 2,979master님의 댓글
master 작성일
라이브러리 설치시 함께 설치되는 예제를 다시 찾아보시고
u8g.drawStr( 0, 10);
u8g.print("temperature : ");
위 두 라인이 아래처럼 한개의 문장처럼 되어야 하는 것인지 체크해보세요
u8g.drawStr( 0, 10,"temperature : ");