BASIC4MCU | 질문게시판 | 아두이노 코드 컴파일 에러 질문
페이지 정보
작성자 master 작성일2018-09-01 09:12 조회15,100회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2883
본문
#include <Wire.h> // i2C 통신을 위한 라이브러리#include <LiquidCrystal_I2C.h> // LCD 1602 I2C용 라이브러리LiquidCrystal_I2C lcd(0x3F,16,2); // 접근주소: 0x3F or 0x27void setup(){lcd.init(); // LCD 초기화// Print a message to the LCD.lcd.backlight(); // 백라이트 켜기lcd.setCursor(0,0); // 1번째, 1라인lcd.print("Hello, world!");lcd.setCursor(0,1); // 1번째, 2라인lcd.print("Enjoy - Eduino");}void loop(){}#include <Wire.h> // i2C 통신을 위한 라이브러리#include <LiquidCrystal_I2C.h> // LCD 1602 I2C용 라이브러리LiquidCrystal_I2C lcd(0x3F,16,2); // 접근주소: 0x3F or 0x27void setup(){lcd.init(); // LCD 초기화// Print a message to the LCD.lcd.backlight(); // 백라이트 켜기lcd.setCursor(0,0); // 1번째, 1라인lcd.print("Hello, world!");lcd.setCursor(0,1); // 1번째, 2라인lcd.print("Enjoy - Eduino");}void loop(){}//LCDint redPin = 11;int greenPin = 10;int bluePin = 9;void setup(){pinMode(redPin, OUTPUT);pinMode(greenPin, OUTPUT);pinMode(bluePin, OUTPUT);}void loop(){setColor(255, 0, 0); // reddelay(1000);setColor(0, 255, 0); // greendelay(1000);setColor(0, 0, 255); // bluedelay(1000);}void setColor(int red, int green, int blue){analogWrite(redPin, red);analogWrite(greenPin, green);analogWrite(bluePin, blue);}//RGB LEDint dust_sensor = A0; // 미세먼지 핀 번호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); // 시리얼 모니터 시작, 속도는 9600pinMode(sensor_led,OUTPUT); // 미세먼지 적외선 led를 출력으로 설정pinMode(4, 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/m^3]: "); // 시리얼 모니터에 미세먼지 값 출력Serial.print(dustDensityug);if(dustDensityug <= 30.0){ // 대기 중 미세먼지가 좋음 일때 "Good" 출력Serial.print(" ");Serial.println("Good");}else if(30.0 < dustDensityug && dustDensityug <= 80.0){ // 대기 중 미세먼지가 보통 일때 "Normal" 출력Serial.print(" ");Serial.println("Normal");}else if (80.0 < dustDensityug && dustDensityug <= 150.0){ // 대기 중 미세먼지가 나쁨 일때 "Bad" 출력Serial.print(" ");Serial.println("Bad");}else{ // 대기 중 미세먼지가 매우 나쁨 일때 "Warning" 출력Serial.print(" ");Serial.println("Warning");}delay(2000);}//DUST SENSER#include <DHT.h>#define DHTPIN A1#define DHTTYPE DHT11DHT dht(DHTPIN, DHTTYPE);void setup(){Serial.begin(9600);}void loop() {int h = dht.readHumidity();int t = dht.readTemperature();Serial.print("humidity:");Serial.println(h);Serial.print("temperature:");Serial.println(t);delay(1000);}//TEMP & HUMID#include <Wire.h> // i2C 통신을 위한 라이브러리#include <LiquidCrystal_I2C.h> // LCD 1602 I2C용 라이브러리#include <DHT.h> // 온습도 센서 사용을 위한 라이브러리#define DHTPIN A1 // 온습도 센서 핀 지정#define DHTTYPE DHT11 // DHT 타입 지정DHT dht(DHTPIN, DHTTYPE); // DHT11의 타입, 핀을 dht로 지정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; // 센서를 구동하지 않는 시간double five_dust[5] = {0};double recent_dust = 0, total_dust = 0;LiquidCrystal_I2C lcd(0x3F,16,2); // 접근주소: 0x3F or 0x27 1602 Displaybyte humi[8] = { // 물컵모양 출력0b00000,0b10001,0b10001,0b10001,0b11111,0b11111,0b11111,0b11111,};byte temp[8] = { // 온도계 모양 출력0b00100,0b01010,0b01010,0b01010,0b01010,0b10001,0b11111,0b01110,};byte char_temp[8] = { // 온도 단위 출력0b10000,0b00110,0b01001,0b01000,0b01000,0b01000,0b01001,0b00110,};void setup(){lcd.init(); // LCD 초기화lcd.backlight(); // 백라이트 켜기lcd.createChar(1, temp); // 온도계모양 출력lcd.createChar(2, humi); // 물컵 모양 출력lcd.createChar(3, char_temp); // 온도 단위 출력pinMode(sensor_led,OUTPUT); // 미세먼지 적외선 led를 출력으로 설정pinMode(4, OUTPUT);pinMode(rgb_red, OUTPUT); // 3색 LED 모듈 출력으로 설정, 붉은색pinMode(rgb_green, OUTPUT); // 녹색pinMode(rgb_blue, OUTPUT); // 파란색Serial.begin(9600); // 시리얼 모니터 시작, 속도는 9600}void loop(){digitalWrite(sensor_led, LOW); // LED 켜기delayMicroseconds(sampling); // 샘플링해주는 시간.int count=0;dust_value = analogRead(dust_sensor); // 센서 값 읽어오기delayMicroseconds(waiting); // 너무 많은 데이터 입력을 피해주기 위해 잠시 멈춰주는 시간.digitalWrite(sensor_led, HIGH); // LED 끄기delayMicroseconds(stop_time); // LED 끄고 대기recent_dust = (0.17 * (dust_value * (5.0 / 1024)) - 0.1) * 1000; // 미세먼지 값 계산five_dust[4] = recent_dust; // 새로운 미세먼지 값 입력total_dust = five_dust[4]; // 5개의 미세먼지 값을 저장할 변수for(int i=0; i<4; i++){total_dust += five_dust[i];five_dust[i] = five_dust[i+1]; // 0~4번째까지 미세먼지 값 저장을 위해 4번째 배열 비워주기}if(five_dust[0] != 0){dustDensityug = total_dust / 5;Serial.print("Dust Density [ug/m^3]: "); // 시리얼 모니터에 미세먼지 값 출력Serial.println(dustDensityug);}int humi = dht.readHumidity();int temp = dht.readTemperature();Serial.print("humidity:"); // ‘시리얼 플로터’ 사용위해 이부분 주석 필요Serial.print(humi); // 습도값 출력Serial.print("\t temperature:"); // ‘시리얼 플로터’ 사용위해 이부분 주석 필요Serial.println(temp); // 온도값 출력Serial.println();lcd.setCursor(0,0); // 1번째, 1라인lcd.write(byte(1)); // 온도계 출력lcd.setCursor(2,0); // 3번째, 1라인lcd.print((int)temp); // 온도 출력lcd.setCursor(5,0); // 6번째 1라인lcd.write(byte(3)); // 온도 단위 출력lcd.setCursor(8,0); // 9번째, 1라인lcd.write(byte(2)); // 물컵 출력lcd.setCursor(10,0); // 11번째, 1라인lcd.print(humi); // 습도 출력lcd.setCursor(13,0); // 15번째, 1라인lcd.print("%"); // % 출력lcd.setCursor(0,1); // 1번째, 2라인lcd.print("F.Dust"); // fine dust 글자 출력lcd.setCursor(7,1); // 6번째, 2라인lcd.print(dustDensityug); // 미세먼지 출력lcd.setCursor(11,1);lcd.print("ug/m3");if(dustDensityug <= 30.0) // 대기 중 미세먼지가 좋음 일때 파란색 출력light(0, 0, 255);else if(30.0 < dustDensityug && dustDensityug <= 80.0) // 대기 중 미세먼지가 보통 일때 녹색 출력light(0, 255, 0);else if (80.0 < dustDensityug && dustDensityug <= 150.0) // 대기 중 미세먼지가 나쁨 일때 노란색 출력light(255, 80, 1);else // 대기 중 미세먼지가 매우 나쁨 일때 빨간색 출력light(255, 0, 0);delay(1000);}void light(int a, int b, int c){analogWrite(rgb_red, a);analogWrite(rgb_green, b);analogWrite(rgb_blue, c);}//OUTPUT이렇게 코드를 짰는데 컴파일 에러가 나는데 어떤 오류가 있는 건가요?//setup() 함수가 6개loop() 함수가 6개즉, 6개의 소스가 섞여 있는 상테입니다.
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-08-21 오전 11:44:45// by Ok-Hyun Park//#include <Wire.h>#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x3F,16,2); // 접근주소: 0x3F or 0x27//#include <DHT.h>#define DHTPIN A1 // 온습도 센서 핀 지정#define DHTTYPE DHT11 // DHT 타입 지정DHT dht(DHTPIN,DHTTYPE); // DHT11의 타입,핀을 dht로 지정//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; // 센서를 구동하지 않는 시간double five_dust[5]={0};double recent_dust=0,total_dust=0;//byte humi[8] ={0b00000,0b10001,0b10001,0b10001,0b11111,0b11111,0b11111,0b11111}; // 물컵모양 출력byte temp[8] ={0b00100,0b01010,0b01010,0b01010,0b01010,0b10001,0b11111,0b01110}; // 온도계 모양 출력byte char_temp[8]={0b10000,0b00110,0b01001,0b01000,0b01000,0b01000,0b01001,0b00110}; // 온도 단위 출력//void setup(){lcd.init(); lcd.backlight();lcd.createChar(1,temp); // 온도계모양 출력lcd.createChar(2,humi); // 물컵 모양 출력lcd.createChar(3,char_temp); // 온도 단위 출력pinMode(sensor_led,OUTPUT); // 미세먼지 적외선 led를 출력으로 설정pinMode(4,OUTPUT);pinMode(rgb_red,OUTPUT); // 3색 LED 모듈 출력으로 설정,붉은색pinMode(rgb_green,OUTPUT); // 녹색pinMode(rgb_blue,OUTPUT); // 파란색Serial.begin(9600);}//void loop(){digitalWrite(sensor_led,LOW); // LED 켜기delayMicroseconds(sampling); // 샘플링해주는 시간.int count=0;dust_value=analogRead(dust_sensor); // 센서 값 읽어오기delayMicroseconds(waiting); // 너무 많은 데이터 입력을 피해주기 위해 잠시 멈춰주는 시간.digitalWrite(sensor_led,HIGH); // LED 끄기delayMicroseconds(stop_time); // LED 끄고 대기recent_dust=(0.17*(dust_value*(5.0/1024))-0.1)*1000; // 미세먼지 값 계산five_dust[4]=recent_dust;// 새로운 미세먼지 값 입력total_dust=five_dust[4];// 5개의 미세먼지 값을 저장할 변수for(int i=0;i<4;i++){total_dust+=five_dust[i];five_dust[i]=five_dust[i+1]; // 0~4번째까지 미세먼지 값 저장을 위해 4번째 배열 비워주기}if(five_dust[0]!=0){dustDensityug=total_dust/5;Serial.print("Dust Density[ug/m^3]: "); Serial.println(dustDensityug); // 시리얼 모니터에 미세먼지 값 출력}int humi=dht.readHumidity();int temp=dht.readTemperature();Serial.print("humidity: "); Serial.print(humi);Serial.print("\t temperature: "); Serial.println(temp); Serial.println();lcd.setCursor(0,0); lcd.write(byte(1)); // 온도계 출력lcd.setCursor(2,0); lcd.print((int)temp); // 온도 출력lcd.setCursor(5,0); lcd.write(byte(3)); // 온도 단위 출력lcd.setCursor(8,0); lcd.write(byte(2)); // 물컵 출력lcd.setCursor(10,0); lcd.print(humi); // 습도 출력lcd.setCursor(13,0); lcd.print("%"); // %출력lcd.setCursor(0,1); lcd.print("F.Dust"); // fine dust 글자 출력lcd.setCursor(7,1); lcd.print(dustDensityug); // 미세먼지 출력lcd.setCursor(11,1); lcd.print("ug/m3");if (dustDensityug<= 30.0)light(0,0,255); // 대기 중 미세먼지가 좋음 일때 파란색 출력else if(dustDensityug<= 80.0)light(0,255,0); // 대기 중 미세먼지가 보통 일때 녹색 출력else if(dustDensityug<=150.0)light(255,80,1); // 대기 중 미세먼지가 나쁨 일때 노란색 출력elselight(255,0,0); // 대기 중 미세먼지가 매우 나쁨 일때 빨간색 출력delay(1000);}//void light(int a,int b,int c){analogWrite(rgb_red,a);analogWrite(rgb_green,b);analogWrite(rgb_blue,c);}
댓글 0
조회수 15,100등록된 댓글이 없습니다.