#include "HX711.h" #include "SegmentLCD.h" #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> unsigned long Weight = 0; Adafruit_SSD1306 display(128, 64, &Wire); void setup() { unsigned char i; Init_Hx711(); //初始化HX711模块连接的IO设置 Init_1621(); for ( i = 0 ; i < 6 ; i++ ) { Write_1621_data(5 - i, Table_Hello[i]); //HELLO } delay(1000); Serial.begin(9600); Serial.print("Welcome to use!\n"); Get_Maopi(); //获取毛皮 } void loop() { unsigned char i; Weight = Get_Weight(); //计算放在传感器上的重物重量 Serial.print(Weight / 1000); //串口显示重量 Serial.print("."); //显示单位 Serial.print(Weight % 1000 / 100); //串口显示重量 Serial.print(Weight % 100 / 10); //串口显示重量 Serial.print(" n\n"); //显示单位N Serial.print("\n"); //显示单位 String getweight = String((Weight+70)/1000) + "." + String((Weight+5)%1000/100) + String((Weight+5)%100/10) + "n"; Serial.println(getweight); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); display.setTextSize(3); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.print("拉力:"); display.print(getweight); //display.println("我爱这个世界!"); display.display(); if (Flag_Error == 0) { Write_1621_data(5, num[Weight / 100000]); //不显示 Write_1621_data(4, num[Weight % 100000 / 10000]); //不显示 Write_1621_data(3, num[Weight % 10000 / 1000]); Write_1621_data(2, num[Weight % 1000 / 100] | 0x80); //加小数点 Write_1621_data(1, num[Weight % 100 / 10]); Write_1621_data(0, 0x46); //Write_1621_data(0,num[Weight%10]); } else { for ( i = 0 ; i < 6 ; i++ ) { Write_1621_data(5 - i, Table_Error[i]); //Error } } delay(2000); //延时0.1s }
时间: 2024-04-09 15:31:28 浏览: 136
这段代码是一个用于读取重量的程序,使用了HX711模块和SSD1306显示屏。在setup()函数中进行了一些初始化操作,包括初始化HX711模块和显示屏,并获取了毛皮的重量。然后在loop()函数中不断循环读取传感器上的重量,并通过串口和显示屏显示出来。如果没有错误发生,则将重量以字符串的形式显示在显示屏上,否则显示错误信息。整个过程中,还使用了一些自定义的函数来控制HX711模块和显示屏。
需要注意的是,这段代码中的一些函数和变量并没有给出具体实现,可能是在其他地方定义的,所以需要根据实际情况进行补充。另外,还需要确保已经正确安装了相应的库文件,以便编译通过。
相关问题
#include < SPI.h > #include < Wire.h > #include < Adafruit_GFX.h > #include < Adafruit_SSD1306.h > #include < dht.h >
这些是一些常见的Arduino库的头文件,它们用于在Arduino开发中使用不同的功能和设备。让我为你逐个介绍一下:
1. `SPI.h`:这个库提供了与SPI(串行外设接口)通信相关的函数和常量。SPI是一种串行通信协议,用于在微控制器之间进行高速数据传输。
2. `Wire.h`:这个库提供了与I2C(双线制串行总线)通信相关的函数和常量。I2C是一种用于连接多个设备的串行通信协议,它使用两根线(SDA和SCL)进行数据传输。
3. `Adafruit_GFX.h`:这个库是Adafruit开发的一个图形库,用于在显示屏上绘制各种图形和文本。它提供了一系列函数和类,可以方便地创建自定义的用户界面。
4. `Adafruit_SSD1306.h`:这个库是Adafruit开发的一个针对SSD1306 OLED显示屏的驱动库。它提供了一些函数和类,用于控制和显示内容在OLED屏幕上。
5. `dht.h`:这个库是用于与DHT系列温湿度传感器进行通信的库。它提供了函数和类,用于读取传感器的温度和湿度数据。
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h>
```cpp
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
在这个代码片段中,包含了三个库文件。首先,《Wire.h》是一个用于I²C通信的标准库,它通常用于Arduino或其他微控制器平台连接支持I²C的硬件设备,比如显示模块。
《Adafruit_GFX.h》是由Adafruit提供的图形库,它是许多Adafruit显示驱动的基础,如OLED(有机发光二极管)屏幕,包括像SSD1306这样的型号。这个库提供了一套通用的图形绘制函数,以便在各种显示屏上创建和操作图像。
最后,《Adafruit_SSD1306.h》是针对Adafruit SSD1306系列单色或彩色OLED显示器的专用库。SSD1306是一种常用的128x32或64x48分辨率的字符型液晶屏,通过SPI或I2C接口进行数据传输。
使用这些库,开发者可以方便地控制和操控Adafruit SSD1306等OLED屏幕,进行文本、图形和动画的显示。
阅读全文