// Projeto: acelerômetro e giroscópio
// Autor: André Silveira
// Data: 14/06/2019
#include "Adafruit_GFX.h" // Biblioteca para processamento gráfico
#include "Adafruit_SSD1306.h" // Biblioteca do controlador SSD1306
#include "GY6050.h" // Biblioteca do Acelerometro e Giroscópio
/* --- Variaveis globais --- */
float acelX, acelY, acelZ;
float giroX, giroY, giroZ;
float tempCelsius, tempFarenheit;
char string[10];
GY6050 gyro(0x68); // Cria um objeto gyro com endereço I2C "0x68"
Adafruit_SSD1306 display(128, 64); // Cria objeto display
void setup() {
delay(100);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Inicializa a tela com endereço I2C "0x3C"
display.clearDisplay(); // Limpa a tela
display.setTextColor(WHITE); // Define cor do texto
display.setRotation(0); // Configura orientação 0, 1, 2 ou 3
display.setTextWrap(false);
display.setTextSize(1); // Define tamanho da fonte do texto
display.dim(0); // Define brilho (0 é máximo)
gyro.initialisation(); // Inicializa giroscópio
}
void loop() {
/* --- Obtem dados do sensor --- */
acelX = gyro.refresh('A', 'X'); // Obtém o eixo "X" do Acelerometro
acelY = gyro.refresh('A', 'Y'); // Obtém o eixo "Y" do Acelerometro
acelZ = gyro.refresh('A', 'Z'); // Obtém o eixo "Z" do Acelerometro
tempCelsius = gyro.refresh('T', 'C'); // Obtém a temperatura em Graus Celsius
tempFarenheit = gyro.refresh('T', 'F'); // Obtém a temperatura em Farenheit
giroX = gyro.refresh('G', 'X'); // Obtém o eixo "X" do Giroscópio
giroY = gyro.refresh('G', 'Y'); // Obtém o eixo "Y" do Giroscópio
giroZ = gyro.refresh('G', 'Z'); // Obtém o eixo "Z" do Giroscópio
/* --- Desenha dados na tela do acelerometro --- */
display.clearDisplay();
display.drawRoundRect(20,0,40,54,4, WHITE);
display.drawLine(20,16,60,16, WHITE);
display.setCursor(28,6);
display.println("Acel");
display.setCursor(32,22);
dtostrf(acelX, 3, 0, string);
display.println(string);
display.setCursor(32,32);
dtostrf(acelY, 3, 0, string);
display.println(string);
display.setCursor(32,42);
dtostrf(acelZ, 3, 0, string);
display.println(string);
/* --- Desenha dados na tela do giroscópio --- */
display.drawRoundRect(64,0,40,54,4, WHITE);
display.drawLine(64,16,104,16, WHITE);
display.setCursor(72,6);
display.println("Gyro");
display.setCursor(76,22);
dtostrf(giroX, 3, 0, string);
display.println(string);
display.setCursor(76,32);
dtostrf(giroY, 3, 0, string);
display.println(string);
display.setCursor(76,42);
dtostrf(giroZ, 3, 0, string);
display.println(string);
display.display();
delay(1500);
} |