balança com Arduino para utilização do programa curva empuxo 1.2.

 Versão final do código fonte da balança com Arduino para utilização do programa curva empuxo 1.2.

//Bança de até 1k com atmega328, modulo HX711, célula de carga 1k e cartão SD e eeprom para utilizar no programa curva de empuxo 1p2

*/

formato de saída

tempo   N

0.000  0.000

/*

//ver:1.9(final)

//20-02-2021

//pedroluand@gmail.com


#include <EEPROM.h>                           //biblioteca para eeprom interna

#include <HX711.h>                            //biblioteca do modulo hx711

#include <Wire.h>                             //biblioteca de comunicação 

#include <SPI.h>                              //biblioteca 

#include <SD.h>                               //biblioteca do cartao sd

#define DT A1                                 //configura pino de comunicaçao do modulo HX711 como Atmega

#define SCK A0                                //configura pino de comunicaçao do modulo HX711 como Atmega


HX711 escala;                                 //modulo HX711

File myFile;                                  //nome do arquivo criado no cartao data log

float tempo;                                  //tempo da leitura

int counter;                                  //contador de vezes que o aparelho foi ligado

int memoria = 0;                              //memoria na eeprom 


void setup() {

Serial.begin(9600);  

Serial.println("Balança com atmega328, modulo HX711, célula de carga 1k e cartão SD e eeprom para utilizar no programa curva de empuxo 1p2- ver:1.9(final) 20-02-2021"); 

escala.begin (DT, SCK);                       //modulo HX711

pinMode(7,OUTPUT);                            //led ligado na porta 7 (balança pronta)

pinMode(8,INPUT_PULLUP);                      //Reset da eeprom


escala.set_scale(-999867.64/100*9.8066);     //este valor varia. atenção: sempre calibrar a célula nova obs.(-999867.64/100*9.8066) para informar o valor em N

escala.tare(1);                               //O peso é chamado de Tare.


while (!Serial) {                             //inicialização do cartão sd

;                                             //inicialização do cartão sd

}

Wire.begin();                                 //inicia a biblioteca wire.h

if (!SD.begin(10)) {                          //verificação cartao sd data log incerido

delay(2000);                                  //verificação cartao sd data log incerido

return;                                       //verificação cartao sd data log incerido

}


if (digitalRead(8) == LOW)                    //zera a memoria eeprom quando oaparelho é ligado com o botão pressionado

{

counter=0;                                    //zera a variável counter

EEPROM.write(memoria,counter);                //grava o valor da variavel counter na eeprom

}


counter = EEPROM.read(memoria);               //a variavel counter inicia com o valor armazenado na eeprom

  

digitalWrite(7,HIGH);                         //indica que a balança esta pronta para pesagem

myFile = SD.open("empuxo.txt", FILE_WRITE);   //cria o arquivo no cartão sd

myFile.println("");                           //salta uma linha no arquivo criado no cartão sd

myFile.print("TESTE ESTÁTICO NÚMERO= ");      //escreve o texto entre "" no arquivo criado no cartão sd

myFile.println(counter);                      //escreve o valor da variavel counter no arquivo criado no cartão sd

myFile.close();                               //fecha o arquivo criado no cartão sd

counter+=1;                                   //incrementa a variavel counter

EEPROM.write(memoria,counter);                //salva o valor da variável counter na eeprom

}


void loop() {

myFile = SD.open("empuxo.txt", FILE_WRITE);   //cria o arquivo no cartão sd

myFile.print(tempo,3);                        //imprime o tempo com tres casas decimais

myFile.print("\t");                           //faz tabulação no arquivo

myFile.println(escala.get_units(1),3);       //escreve no arquivo criado no cartão sd

myFile.close();                               //fecha o arquivo do cartão sd


//para imprimir no serial monitor descomente as três linhas abaixo

//Serial.print(tempo,3);                        //imprime o valor do tempo no serial monitor

//Serial.print("\t");                           //faz tabulação no arquivo

//Serial.println(escala.get_units(1), 3);       //imprimeo valor da leitura no serial monitor


tempo+=0.100;                                   //incrementa o tempo


delay(100);                                    //temporiza o loop (100)

}

Comentários

Postagens mais visitadas deste blog

Amplificador de 6W para módulos PLL FM, usando transistores C1970 e C1971 - Versão final 04-04-2022

Amplificador de RF 350mW com BD135 para modulos pll

Antena dipolo para transmissores FM