Buen dia a todos!
Tengo un banco de freno que usamos para medir el coeficiente de rozamiento de las pastillas de freno.
Los datos arrojados por los sensores los estábamos tomando con una PC pero ahora se nos ocurrió poner una pantalla LCD para no depender de la PC.
Tengo todo conectado pero para ser sincero no tengo idea como hacer para que imprima los datos en la pantalla.
Les dejo la programación para ver si me pueden dar una mano.
Y desde ya muchas gracias!!
#include "HX711.h"
#include <LiquidCrystal_I2C.h>
#include<Wire.h>
LiquidCrystal_I2C lcd(0x3F,16,2); //0x20 o 0x27
void setup() {
lcd.init();
lcd.backlight(); // Activar luz de fondo
lcd.clear(); // Borrar LCD
#define DOUT A1
#define CLK A0
#define T_MUESTREO 1000 //TIEMPO DE MUESTREO MS
#define LED 13
#define pi 3.141592654
const int numReadings = 5;
volatile float readings[numReadings] = {0} ; // the readings from the analog input
int readIndex = 0; // the index of the current reading
volatile float total = 0; // the running total
volatile float average = 0; // the average
HX711 balanza(DOUT, CLK); //
volatile unsigned long pulsos1 = 0;
volatile unsigned long pulsos2 = 0;
float rpm1;//pasar a (1/s)
float rpm2;//pasar a (1/s)
float peso;
float force;// dividir por el area
float a=1.4147;
float b=6.143708;
float longitud = 0.055;
float alpha = 0.07160818; //(1.5*area)/(pi * (Re^3 - Ri^3 ))
//float area = 0.0127; // area del boton de fuerza
unsigned long prev_milis = 0;
void setup() {
pinMode(LED,OUTPUT);
Serial.begin(115200);
setupRPM();
setupBalanza();
//setupBoton();
pinMode(2, INPUT);
pinMode(3, INPUT);
for (int thisReading = 0; thisReading < numReadings;thisReading++)
{
readings[thisReading] = 0;
}
}
void loop() {
if ((millis() - prev_milis) >= T_MUESTREO){
digitalWrite(LED,!digitalRead(LED));
medirRPM();
medirBalanza();
medirFuerza();
float mu =(longitudpesorpm1)/(forcerpm2alpha);
// subtract the last reading:
if (isnan(mu))
readings[readIndex] = 0;
else
readings[readIndex] = mu;
readIndex++;
for (int i = 0; i < numReadings; i++){
total += readings*;*
-
}*
-
average = total/numReadings;*
-
total = 0;*
-
// if we're at the end of the array...*
-
if (readIndex == (numReadings - 1)) {*
-
// ...wrap around to the beginning:*
-
readIndex = 0;*
-
// calculate the average: *
-
} *
-
Serial.print(rpm1);*
-
Serial.print("\t");*
-
Serial.print(rpm2);*
-
Serial.print("\t");*
-
Serial.print(peso,3);*
-
Serial.print("\t\t");*
-
Serial.print(force,3);*
-
Serial.print("\t\t");*
-
Serial.print(mu,3);*
-
Serial.print("\t\t");*
-
Serial.println(average,3); *
-
prev_milis = millis();*
-
}*
-
//delayMicroseconds(100);*
}
En rojo puse los datos que necesito que se muestren en la pantalla