单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:4487|回复:1

Arduino单片机10KG电子秤程序+HX711库+OLED12864库

[复制链接]
ID:745973发表于 2021-2-28 22:51|显示全部楼层
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, 下载次数: 42)

评分

黑币 +70
收起理由
+ 70
共享资料的黑币奖励!

查看全部评分

ID:1007434发表于 2023-4-24 00:30来自手机|显示全部楼层
谢谢你发的HX711

手机版|小黑屋|51黑电子论坛|51黑电子论坛6群QQ管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网