[PORTUGUES] Projeto utilizando OLED display com modulo de SDCARD

Ola,
Primeiro topico, estou fazendo um projeto com um display OLED, modulo de SDCARD e uma célula de carga, mas estou encontrando problemas com o display e o modulo.
Segue abaixo o codigo:

/*
   SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)
 * 
 **DISPLAY O LED  128X64
 The pins for I2C are defined by the Wire-library. 
 On an arduino UNO:       A4(SDA), A5(SCL)
*/

#include <HX711.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <SD.h>
#include <SPI.h>


//MACRO PARA SETUP 
#define DT A1
#define SCK A0
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels


Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
//OBJETOS
HX711 escala;    // Cria o Objeto HX711 (Uso da celula de carga)
File myFile;   // Cria o objeto File  (Uso para salvar em SD os dados.)

//VARIÁVEIS
const int chipSelect = 4; //Chip select do modulo da gravacao SD
float forca,x;


//INICIO DO SETUP
void setup() 
{
  // SETUP da Celula de carga
  escala.begin (DT,SCK);
  Serial.begin(9600);
  
  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("Display Falhou"));
    for (;;);
  }
  delay(2000);
  display.clearDisplay();//Remove contents of display
  pinMode (chipSelect, OUTPUT);


 
// SETUP do Display  
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  
  //Seta o cursor para o display
  display.setCursor(2,10);
  display.print("Tara:  ");
  escala.set_scale(8713.4737725);      // Utiliza uma escala padrão de verificação   
  display.println(escala.read());      // Aguada o termino de verificação do peso
  display.display(); 
  delay(1000);
  display.clearDisplay();


  //Seta o cursor para o display
  display.setCursor(20,10);
  display.print("PesoI: ");
  display.display();
  delay(1000);
  display.clearDisplay();
  display.setCursor(30,10);
  display.print(escala.get_units(20),2);   //Mostra o peso inicial antes de comecar is testes.
  display.display();
  delay(1000);
  display.clearDisplay();         //Limpa o buffer do display
  escala.tare(40);                // Fixa o peso como tara

  display.setCursor(20,0);
  display.print("Iniciar      testes!");  
  display.display();
  delay(2000);
  display.clearDisplay();

  forca = escala.get_units(20),2;
    
}
void loop() 
{
  
  delay(100); 
  atualizaDisplay();
  salvaSD(forca);

}

void salvaSD(float x)
{
  if (!SD.begin(chipSelect)) {
    Serial.println("Erro no cartão");
    while (1);
  }
  Serial.println("Cartão aceito");
  
  myFile = SD.open("TesteCC.txt", FILE_WRITE);  
  myFile.println(x);
  myFile.close();
}

void atualizaDisplay()//Atualiza o display
{
  display.clearDisplay();
  display.setCursor(0, 10);
  display.println(forca);
  display.display();
}

Qual arduino voce esta usando?

Arduino UNO

Muy probablemente fuera de la memoria. Modulo SD y OLED en total consumen alrededor de 1.5kbytes, y uno solo 2k

Que problema é que estás a ter?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.