标题: Arduino单片机10KG电子秤程序+HX711库+OLED12864库 [打印本页]

作者: 我啊黑    时间: 2021-2-28 22:51
标题: Arduino单片机10KG电子秤程序+HX711库+OLED12864库
Arduino单片机10KG电子秤,一个小白,为了给小乌龟称重量,在各种网站东拼西凑,总算做好了。
临时添加了dht11温湿度模块。


程序:
#include <HX711.h>
#include "U8glib.h"
#include <dht11.h>

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);

#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
int Weight = 0;
char str[4];  //定义重量值存储数组,5位,其中4位为数字,1位为小数点
int temp = 0;  //定义重量值中间变量,,用于将获取的float型重量值转变为unsigned char数组

dht11 DHT11;
#define DHT11PIN 2

void draw(void)
{
  u8g.setFont(u8g_font_8x13); //使用8x13大小的字符
  u8g.setPrintPos(23, 10); // 对应 x,y 轴值
  u8g.print("H:");
  u8g.setPrintPos(54, 10);
  u8g.print(DHT11.humidity);
  u8g.setPrintPos(93, 10);
  u8g.print("%");

  u8g.setPrintPos(23, 26);
  u8g.print("T:");
  u8g.setPrintPos(54, 26);
  u8g.print(DHT11.temperature);
  u8g.setPrintPos(93, 26);
  u8g.print("C");

  u8g.setPrintPos(23, 50);
  u8g.print("W:");
  u8g.setPrintPos(50, 50);
  u8g.print(Weight);
  u8g.setPrintPos(93, 50);
  u8g.print("g");   
}

void setup()
{
Serial.begin(9600);

Serial.println("DHT11 TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();


Init_Hx711();//初始化HX711模块连接的IO设置
Get_Maopi(); //获取毛皮
delay(400);
Get_Maopi(); //获取毛皮
}

void loop(){

  int chk = DHT11.read(DHT11PIN);
  Serial.print("Read sensor: ");
  switch (chk)
  {
    case DHTLIB_OK:
      Serial.println("OK");
      break;
    case DHTLIB_ERROR_CHECKSUM:
      Serial.println("Checksum error");
      break;
    case DHTLIB_ERROR_TIMEOUT:
      Serial.println("Time out error");
      break;
    default:
      Serial.println("Unknown error");
      break;
  }

    Weight=Get_Weight();//计算放在传感器上的重物重量
    temp=Get_Weight();
    if(temp<0){temp =0;}
    dtostrf(temp,4,0,str);

//    Serial.print("Humidity (%): ");
//    Serial.println((float)DHT11.humidity, 1);
//    Serial.print("Temperature (oC): ");
//    Serial.println((float)DHT11.temperature, 1);
//    Serial.print("W="); //串口显示重量
//    Serial.print(Weight);        //串口显示重量
//    Serial.print(" g");        //显示单位
    delay(400);

u8g.firstPage();
  do
  {
    draw();
  }
  while ( u8g.nextPage() );
}


根据实际情况修改,不用dth11模块也可以。
Dht11.zip (1.6 KB, 下载次数: 43)

OLED.zip (278.17 KB, 下载次数: 43)

HX711.zip (1.22 KB, 下载次数: 56)

Arduino单片机10KG电子秤程序.zip (1.56 KB, 下载次数: 53)

作者: yuezhuo    时间: 2023-4-24 00:30
谢谢你发的HX711




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1