Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MMA8452 N5110 PowerControl mbed
Revision 2:c3e9a24a3ddf, committed 2015-05-11
- Comitter:
- MrMavriks
- Date:
- Mon May 11 22:54:16 2015 +0000
- Parent:
- 1:8359e6982b30
- Commit message:
- Done
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Accel.cpp Mon May 11 22:54:16 2015 +0000
@@ -0,0 +1,108 @@
+/**
+@file Accel.cpp
+@brief Program Implementation
+*/
+
+#include "Accel.h"
+#include "mbed.h"
+#include "N5110.h"
+#include "MMA8452.h"
+#include "PowerControl/PowerControl.h"
+#include "PowerControl/EthernetPowerControl.h"
+
+/// Buffers for values to be read or calculated
+char buffer[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+char buffer1[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+char buffer2[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+char buffer3[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+
+/// Gets Readings and Displays them
+void readings();
+
+PwmOut myled(p22);
+PwmOut buzzer(p21);
+// VCC,SCE,RST,D/C,MOSI,SCLK,LED order of mbed pins should match
+N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
+MMA8452 mma8452(p28,p27); // SDA, SCL
+Serial serial(USBTX,USBRX);
+AnalogIn pot(p20);
+
+Timeout timer; // create ticker object
+
+/// sets flag to 0
+int timerFlag = 0; // flag for timer
+
+///Interrupt Service Routine
+void timerExpired() {
+ timerFlag = 1;
+
+ /// sets the scale for x to be able to reach 1-45 readings per second
+ float x=-(1-pot.read())*44/45+1;
+ timer.detach();
+ timer.attach(&timerExpired,x);
+
+}
+///Turns on LCD AND Accelerometer.
+void turnon () {
+ lcd.init();
+ lcd.printString("Mario Quartey", 0,0);
+ lcd.printString("Accelerometer", 0,1);
+ lcd.printString("Elec 2645", 0,2);
+ lcd.printString("Dr C Evans!", 0,3);
+ lcd.refresh();
+ wait(2);
+ lcd.clear();
+ mma8452.init(); // 100 Hz update rate, ±4g scale
+ }
+/// Gets readings and Prints to LCD
+void readings () {
+ Acceleration acceleration;
+ lcd.printString("X Y Z Values", 0,0);
+ acceleration = mma8452.readValues(); // read current values and print over serial port
+ int xx = sprintf(buffer, "x = %.2f", acceleration.x); // figure eout the length of chars
+ int yy = sprintf(buffer1, "y = %.2f", acceleration.y);
+ int zz = sprintf(buffer2, "z = %.2f", acceleration.z);
+ ///calculates the square root,multiplication and addition of the 3 arguments and return
+ float mag = sqrt((acceleration.x*acceleration.x + acceleration.y*acceleration.y + acceleration.z*acceleration.z));
+ int ff = sprintf(buffer3, "Mag = %.2f", mag);
+ wait(0.1); // short delay until next reading
+ if (xx <= 14){ // if the length is smaller than 14 chars. it prints
+ lcd.printString(buffer, 10, 1);
+ if (yy <= 14){ // if the length is smaller than 14 chars. it prints
+ lcd.printString(buffer1, 10, 2);
+ if (zz <= 14){ // if the length is smaller than 14 chars. it prints
+ lcd.printString(buffer2, 10, 3);
+ if (mag <= 14){ // if the length is smaller than 14 chars. it prints
+ lcd.printString(buffer3, 10, 4);
+
+ /// Compares Values for magnitude and Triggers Buzzer
+ if (mag > 1.5)
+ for(float p = 0.0f; p < 1.0f; p += 0.1f) {
+ buzzer = p;
+ wait (0.3);
+ buzzer = 0;
+ }}}}}}
+
+
+int main() {
+ turnon();
+
+ timer.attach(&timerExpired,1);
+
+PHY_PowerDown(); //Powers Down ethernet
+
+/// Flash LED in Infinite loop, while readings are being taken.
+ while (1) {
+
+ for(float p = 0.0f; p < 1.0f; p += 0.1f) {
+ myled = p;
+ }
+ if (timerFlag) {
+ readings ();
+
+ timerFlag = 0;
+ }
+ lcd.refresh();
+ }
+
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Accel.h Mon May 11 22:54:16 2015 +0000
@@ -0,0 +1,172 @@
+/**
+@file Accel.h
+@brief Header file containing functions prototypes, defines and global variables.
+@brief Revision 1.0.
+@author Mario Quartey Papafio
+@date May 2015
+*/
+
+#ifndef ACCEL_H
+#define ACCEL_H
+
+#define PI 3.141592
+
+#include "mbed.h"
+#include "N5110.h"
+#include "MMA8452.h"
+#include "PowerControl/PowerControl.h"
+#include "PowerControl/EthernetPowerControl.h"
+
+
+/**
+@namespace buffer
+@namespace buffer1
+@namespace buffer2
+@namespace buffer3
+@namespace myled
+@namespace buzzer
+@namespace N5110 lcd
+@brief GPIO output for status LED,BUZZER N5110 lcd
+*/
+
+//char buffer[14];
+ // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+ // so can display a string of a maximum 14 characters in length
+ // or create formatted strings - ensure they aren't more than 14 characters long
+
+/** Initialise LCD and MMA8542 sensor(accelerometer)
+ *
+ * Powers up the display and turns on backlight (50% brightness default).
+ * Sets the display up in horizontal addressing mode and with normal video mode.
+ * Powers up MMA8542 sensor
+ * Default values100 Hz update rate, ±4g scale
+ */
+void turnon();
+
+/** Gets readings and prints to LCD.
+ *
+ * Gets the x,y,z data
+ * Calculates Magnitude
+ * Displays Magnitude and x,y,z data
+ */
+void readings();
+
+/**
+@code
+
+/// Buffers for values to be read or calculated
+char buffer[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+char buffer1[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+char buffer2[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+char buffer3[14]; // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+
+/// Gets Readings and Displays them
+void readings();
+
+PwmOut myled(p22);
+PwmOut buzzer(p21);
+// VCC,SCE,RST,D/C,MOSI,SCLK,LED order of mbed pins should match
+N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
+
+@brief AnalogIn input for number of readings per second
+@brief serial input for accelerometer readings
+
+MMA8452 mma8452(p28,p27); // SDA, SCL
+Serial serial(USBTX,USBRX);
+AnalogIn pot(p20);
+
+Timeout timer; // create ticker object
+
+/// sets flag to 0
+int timerFlag = 0; // flag for timer
+
+///Interrupt Service Routine
+void timerExpired() {
+ timerFlag = 1;
+
+ adds float value x
+@param x - float to use for pot, to set number of readings per second
+@returns the value of x
+
+ /// sets the scale for x to be able to reach 1-45 readings per second
+ float x=-(1-pot.read())*44/45+1;
+ timer.detach();
+ timer.attach(&timerExpired,x);
+
+}
+///Turns on LCD AND Accelerometer.
+void turnon () {
+ lcd.init();
+ lcd.printString("Mario Quartey", 0,0);
+ lcd.printString("Accelerometer", 0,1);
+ lcd.printString("Elec 2645", 0,2);
+ lcd.printString("Dr C Evans!", 0,3);
+ lcd.refresh();
+ wait(2);
+ lcd.clear();
+ mma8452.init(); // 100 Hz update rate, ±4g scale
+ }
+/// Gets readings and Prints to LCD
+void readings () {
+ Acceleration acceleration;
+ lcd.printString("X Y Z Values", 0,0);
+ acceleration = mma8452.readValues(); // read current values and print over serial port
+ int xx = sprintf(buffer, "x = %.2f", acceleration.x); // figure eout the length of chars
+ int yy = sprintf(buffer1, "y = %.2f", acceleration.y);
+ int zz = sprintf(buffer2, "z = %.2f", acceleration.z);
+
+
+ ///calculates the square root,multiplication and addition of the 3 arguments and return
+ Multiplies and square roots and adds three float variables
+ * @param acceleration.x
+ * @param acceleration.y
+ * @param acceleration.z
+ * @returns the multipplication, addition and square root of (acceleration.x)^2 and (acceleration.y)^2 and (acceleration.z)^2
+ //
+
+ float mag = sqrt((acceleration.x*acceleration.x + acceleration.y*acceleration.y + acceleration.z*acceleration.z));
+ int ff = sprintf(buffer3, "Mag = %.2f", mag);
+ wait(0.1); // short delay until next reading
+ if (xx <= 14){ // if the length is smaller than 14 chars. it prints
+ lcd.printString(buffer, 10, 1);
+ if (yy <= 14){ // if the length is smaller than 14 chars. it prints
+ lcd.printString(buffer1, 10, 2);
+ if (zz <= 14){ // if the length is smaller than 14 chars. it prints
+ lcd.printString(buffer2, 10, 3);
+ if (mag <= 14){ // if the length is smaller than 14 chars. it prints
+ lcd.printString(buffer3, 10, 4);
+
+ /// Compares Values for magnitude and Triggers Buzzer
+ if (mag > 1.5)
+ for(float p = 0.0f; p < 1.0f; p += 0.1f) {
+ buzzer = p;
+ wait (0.3);
+ buzzer = 0;
+ }}}}}}
+
+
+int main() {
+ turnon();
+
+ timer.attach(&timerExpired,1);
+
+PHY_PowerDown(); //Powers Down ethernet
+
+/// Flash LED in Infinite loop, while readings are being taken.
+ while (1) {
+
+ for(float p = 0.0f; p < 1.0f; p += 0.1f) {
+ myled = p;
+ }
+ if (timerFlag) {
+ readings ();
+
+ timerFlag = 0;
+ }
+ lcd.refresh();
+ }
+
+ }
+*/
+
+#endif
\ No newline at end of file
--- a/Acceloro.cpp Mon May 11 18:27:20 2015 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/**
-@file main.h
-@Header file contains code for displaying acceleration, defines and global variables.
-@Revision 1.0
-@Author Mario Quartey Papafio
-@Date May 2015
-*/
-
-
-#include "mbed.h"
-#include "N5110.h"
-#include "MMA8452.h"
-#include "PowerControl/PowerControl.h"
-#include "PowerControl/EthernetPowerControl.h"
-
-char buffer[14]; // to store array character takes 6 pixels
-char buffer1[14];
-char buffer2[14];
-char buffer3[14];
-
-DigitalOut led(LED1);
-
-void readings();
-
-PwmOut myled(p22);
-PwmOut buzzer(p21);
-N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
-MMA8452 mma8452(p28,p27); // SDA, SCL
-Serial serial(USBTX,USBRX);
-AnalogIn pot(p20);
-
-Timeout timer; // create ticker object
-
-int timerFlag = 0; // flag for timer
-
-//Interrupt Service Routine
-void timerExpired() {
- timerFlag = 1;
- //led=!led;
-
- float x=-(1-pot.read())*44/45+1;
- timer.detach();
- timer.attach(&timerExpired,x);
-
-}
-
-
-
-
-void turnon () { //Turns on LCD AND Accelerometer.
- lcd.init();
- lcd.printString("Mario Quartey", 0,0);
- lcd.printString("Accelerometer", 0,1);
- lcd.printString("Elec 2645", 0,2);
- lcd.printString("Dr C Evans!", 0,3);
- lcd.refresh();
- wait(2);
- lcd.clear();
- mma8452.init(); // 100 Hz update rate, ±4g scale
- }
-void readings () {
- Acceleration acceleration;
- lcd.printString("X Y Z Values", 0,0);
- acceleration = mma8452.readValues(); // read current values and print over serial port
- int xx = sprintf(buffer, "x = %.2f", acceleration.x); // figure eout the length of chars
- int yy = sprintf(buffer1, "y = %.2f", acceleration.y);
- int zz = sprintf(buffer2, "z = %.2f", acceleration.z);
- float mag = sqrt((acceleration.x*acceleration.x + acceleration.y*acceleration.y + acceleration.z*acceleration.z));
- int ff = sprintf(buffer3, "Mag = %.2f", mag);
- //serial.printf("x = %.2f g y = %.2f g z = %.2f g\n",acceleration.x,acceleration.y,acceleration.z);
- wait(0.1); // short delay until next reading
- if (xx <= 14){ // if the length is smaller than 14 chars. it prints
- lcd.printString(buffer, 10, 1);
- if (yy <= 14){ // if the length is smaller than 14 chars. it prints
- lcd.printString(buffer1, 10, 2);
- if (zz <= 14){ // if the length is smaller than 14 chars. it prints
- lcd.printString(buffer2, 10, 3);
- if (mag <= 14){ // if the length is smaller than 14 chars. it prints
- lcd.printString(buffer3, 10, 4);
- if (mag > 1.5)
- for(float p = 0.0f; p < 1.0f; p += 0.1f) {
- buzzer = p;
- wait (0.3);
- buzzer = 0;
- }}}}}}
-
-
-int main() {
- turnon();
-
- timer.attach(&timerExpired,1);
-
-PHY_PowerDown(); //Powers Down ethernet
-
- while (1) {
-
- for(float p = 0.0f; p < 1.0f; p += 0.1f) {
- myled = p;
-
- }
-
- if (timerFlag) {
- readings ();
-
- timerFlag = 0;
- }
- lcd.refresh();
- }
-
- }