找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3840|回复: 1
打印 上一主题 下一主题
收起左侧

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, 下载次数: 41)

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

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

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

评分

参与人数 1黑币 +70 收起 理由
admin + 70 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:1007434 发表于 2023-4-24 00:30 来自手机 | 只看该作者
谢谢你发的HX711
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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