为开发板 Arduino Uno 编译时出错。其他程序能编译,就这个c...-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 586|回复: 2

[未解决] 为开发板 Arduino Uno 编译时出错。其他程序能编译,就这个c...

[复制链接]
发表于 2022-2-27 07:00 | 显示全部楼层 |阅读模式

U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ 14, /* data=*/ 12, /* reset=*/ U8X8_PIN_NONE);

#define MQ2A0   A0   //mq2传感器模拟量引脚
#define MQ2D0   11    ////mq2传感器数字量引脚
int led = 2;           //板载LED灯
int buzzer = 5; //蜂鸣器
int fire=9;  //火焰传感器接口

int mq135d0=4;
int mq135A0=12;

DHT dht(DHTPIN, DHTTYPE);
void setup(void) {
  Serial.begin(9600);          //串口 波特率。
  pinMode(led, OUTPUT);
  pinMode(MQ2A0, INPUT);
  pinMode(MQ2D0, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(DHTPIN, INPUT);
  pinMode(fire,INPUT);
  dht.begin();

  u8g2.begin();
  u8g2.enableUTF8Print();                // enable UTF8 support for the Arduino print() function
  Serial.println("begin");
}

void alarm() {              //蜂鸣器响,板上的LED灯会亮。报警。

  for (int i = 0; i < 5; i++)
  {
    digitalWrite(buzzer, HIGH);
    delay(200);
    digitalWrite(led, LOW);
    delay(300);
    digitalWrite(buzzer, LOW);
    delay(200);
    digitalWrite(led, HIGH);
    delay(300);
    Serial.println("alarm");
  }
  ;
}

void loop(void) {
  float h=dht.readHumidity();               //湿度
  float t=dht.readTemperature();            //温度
  if (digitalRead(MQ2D0) == LOW||t>50||h<20||analogRead(fire)<100||analogRead(mq135A0)>180) {     //极限报警设定条件
    alarm();
  }
  Serial.println("LOOP");
  u8g2.setFont(u8g2_font_wqy14_t_gb2312a);             //汉字支持
  //  u8g2.setFont(u8g2_font_unifont_t_chinese2);  // use chinese2 for all the glyphs of "你好世界"
  //u8g2.setFont(u8g2_font_b10_t_japanese1);  // all the glyphs of "こんにちは世界" are already included in japanese1: Lerning Level 1-6
  u8g2.setFontDirection(0);
  u8g2.firstPage();                                 //OLED 屏幕显示
  do {
    u8g2.setCursor(0, 15);
    u8g2.print("MQ2:" + String(analogRead(MQ2A0)) + "  DO:");       //mq2 气体采集值显示 ,报警显示。
    u8g2.setCursor(75   , 15);
    if (digitalRead(MQ2D0) == HIGH) {

      u8g2.print("高限报警");
    }
    else {
      u8g2.print("正常");
    }
    u8g2.setCursor(0, 30);                                    //温湿度显示,报警显示。
    u8g2.print("湿度:"+String(h)+"  温度:"+String(t));                // Chinese "Hello World"
    u8g2.setCursor(70,30);
    if(t>50){
      u8g2.print("温度超");}
       u8g2.setCursor(70,30);
    if(h<20){
      u8g2.print("湿度低");}

       u8g2.setCursor(0, 45);                                    //温湿度显示,报警显示。
    u8g2.print("火焰:"+String(analogRead(fire)));

       u8g2.setCursor(0, 60);                                    //温湿度显示,报警显示。
    u8g2.print("mq135A0:"+String(analogRead(mq135A0)));
  } while ( u8g2.nextPage() );
  delay(1000);
}

发表于 2022-2-27 09:21 | 显示全部楼层
报错信息呢???
发表于 2022-2-27 10:36 | 显示全部楼层
首先要加#include <DHT.h>  #define DHTPIN  3   #define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
再者u8g2示例程序你要好好看懂。你参考的汉字显示程序要移植全。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 13:51 , Processed in 0.077844 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表