Desafio 02

Dependencies:   MMA8451Q mbed

Files at this revision

API Documentation at this revision

Comitter:
OsvaldoTNeto
Date:
Tue Oct 25 00:38:16 2016 +0000
Commit message:
Desafio 02 - Acelerometro

Changed in this revision

MMA8451Q.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MMA8451Q.lib	Tue Oct 25 00:38:16 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/emilmont/code/MMA8451Q/#c4d879a39775
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Oct 25 00:38:16 2016 +0000
@@ -0,0 +1,91 @@
+// -------------------------------------
+// Desafio 02
+// Microcontroladores 2 - 10/10/2016
+// Acelerômetro 
+// -------------------------------------
+// Aline Romanini   145157
+// Marlon Felipe    121207
+// Osvaldo Torezan  147558
+// -------------------------------------
+
+// Inclui a Library do mbed
+#include "mbed.h"
+// Inclui a Library do Acelerômetro MMA8451Q
+#include "MMA8451Q.h"
+// Define o endereço I2C do acelerômetro onboard
+#define MMA8451_I2C_ADDRESS (0x1d<<1)
+
+// O programa contém um loop infinito principal que fica verificando o ângulo
+// de inclinação nas direções cartesianas X, Y e X, aravés do acelerômetro onboard.
+
+// Ao detectar uma inclinação no eixo X maior que 45 graus, o programa acende o LED
+// vermelho e permanece até a inclinação ser menor que 45 graus ou maior que 54 graus 
+// outro eixo.
+
+// Ao detectar uma inclinação no eixo Y maior que 45 graus, o programa acende o LED
+// verde, e a mesma regra do eixo X é válida.
+
+// Ao detectar uma inclinação no eixo Z maior que 45 graus, o programa acende o LED
+// azul, e a regra anterior para os outros eixos permanece válida.
+
+// Inicio do programa (função principal 'main')
+int main()
+{
+ // Define uma variável com nome "acc" para o acelerômetro onboard
+ MMA8451Q acc(PTE25, PTE24,MMA8451_I2C_ADDRESS);
+ 
+ // Define o LED 1 da placa (vermelho) como uma saída PWM na variável "rled"
+ PwmOut rled(LED1);
+ // Define o LED 2 da placa (verde) como uma saída PWM na variável "gled"
+ PwmOut gled(LED2);
+ // Define o LED 3 da placa (azul) como uma saída PWM na variável "bled"
+ PwmOut bled(LED3);
+ 
+ // Apaga led Vermelho
+ rled = 1.0;
+ // Apaga led Verde
+ gled = 1.0;
+ // Apaga led Azul
+ bled = 1.0;
+ 
+ // Laço infinito principal
+ while(1)
+ {
+  // Caso o ângulo mensurado pelo acelerômetro no eixo X seja menor ou igual a 45 graus
+  if (abs(acc.getAccX()) <= 0.5)
+    rled = 1.0; // Apaga led vermelho
+  else
+  {
+    // Apaga os leds verde e azul e acende o led vermelho caso o ângulo seja maior que 45 graus no eixo X
+    rled = 0.0; 
+    gled = 1.0;
+    bled = 1.0;
+  }
+
+  // Caso o ângulo mensurado pelo acelerômetro no eixo Y seja maior ou igual a 45 graus
+  if (abs(acc.getAccY()) <= 0.5)
+    gled = 1.0; // Apaga o led verde
+  else
+  {
+    // Apaga os leds azul e vermelho e acende o led verde caso o ângulo seja maior que 45 graus no eixo Y
+    rled = 1.0;
+    gled = 0.0;
+    bled = 1.0;
+  }
+
+  // Caso o ângulo mensurado pelo acelerômetro no eixo Z seja maior ou igual a 45 graus
+  if (abs(acc.getAccZ()) <= 0.5)
+    bled = 1.0; // Apaga o led azul
+  else
+  {
+    // Apaga os leds verde e vermelho e acende o led azuk caso o ângulo seja maior que 45 graus no eixo Z
+    rled = 1.0;
+    gled = 1.0;
+    bled = 0.0;
+  }
+  
+  // Espera 100 ms
+  wait(0.1);
+  
+ }   
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Oct 25 00:38:16 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/25aea2a3f4e3
\ No newline at end of file