Demonstrates the MAX44000 library and some of the features of the MAX44000

Dependencies:   MAX44000 ard2pmod mbed

Fork of ALS_ARD2PMOD_Demo by Maxim Integrated

MAX44000PMB1 Demonstration

This demonstrates some of the capabilities of the MAX44000. This is written to work with the MAXREFDES72# adapter board and the MAX44000PMB1 peripheral module. It uses the standard Arduino pin names and it will compile for most arduino form-factor mbed boards. /media/uploads/switches/max44000pmb1_demo.jpg To run this demonstration you will need:

In this demonstration the LEDs are changed based on data from the sensor.

  • LED1 toggles when something is first detected by the proximity sensor.
  • LED2 indicates when the Ambient Light Sensor reads greater than a set value (alsLim).
  • LED3 will stay on whenever something is detected by the proximity sensor and stay on for an additional 5s after it is no longer detected.

Note: Some boards use D13 for an LED signal, so this example uses the second row (row B, pins 7 through 12) of the Pmod connector. /media/uploads/switches/max44000_align.jpg

Tested platform boards

Links to external supporting material

Revision:
5:b39bfe8e3d09
Parent:
4:226ef11c3ef4
Child:
7:0a59d9e914f3
--- a/main.cpp	Mon Jun 30 22:32:02 2014 +0000
+++ b/main.cpp	Wed Nov 26 00:53:17 2014 +0000
@@ -15,35 +15,34 @@
  *   FRDM-K64F
  *   Seeeduino Arch (LEDs inverted)
  *   Seeeduino Arch Pro
- *   ST Nucleo F401RE (only one LED, inverted)
+ *   ST Nucleo L152RE/F401RE (B row only, single LED, inverted)
+ *   LPCXpresso1549
  *  
  * Some boards use D13 for an LED signal, so this example uses the second 
  *   row (row B, pins 7 through 12) of the Pmod connector.  
  */
 
 #include "mbed.h"
-#include "MAX14661.h"
+#include "ard2pmod.h"
 
-MAX14661 mux(D14, D15);
 I2C i2c(D14, D15);
 DigitalOut tog(LED1);
 DigitalOut als(LED2);
 DigitalOut dly(LED3);
 DigitalIn pb3(D6);  // Set as input to remove load from PB3
 DigitalIn pb4(D7);  // Set as input to remove load from PB4
+DigitalIn pa3(D12);  // Set as input to remove load from PA3
+DigitalIn pa4(D13);  // Set as input to remove load from PA4
 
 const int alsAddr = 0x94;
 const int alsLim = 0x0008;
 
 int main()
 {
+    Ard2Pmod ard2pmod(PMOD_TYPE_I2C_B);  // Configure ard2pmod multiplexer for I2C
     char cmd[2];
     int alsData;
 
-    //  SDA (D14) + PB4 (D7)     SCL (D15) + PB3 (D6)
-    mux.setAB((MAX14661::SW10 | MAX14661::SW08),
-              (MAX14661::SW09 | MAX14661::SW07));
-
     cmd[0] = 0x02;  // Receive Register
     cmd[1] = 0xFC;  // 1.56ms, 1x
     i2c.write(alsAddr, cmd, 2);