Dependencies:   mbed

Revision:
0:c42f357675ed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Oct 30 17:55:27 2009 +0000
@@ -0,0 +1,109 @@
+#include "mbed.h"
+
+DigitalOut relay1(p24);
+DigitalOut chargeLED(p30);
+DigitalOut dumpLED(p29);
+AnalogIn load1 (p16);
+
+
+#define rRatio  6.6355
+#define EMPTY  12.2000
+#define UPPER_CHARGE_LIMIT  13.0
+
+int justConnected = 0;
+
+void flash(void) {
+for (int i=0;i<5;i++)  { 
+        dumpLED = 1;
+        chargeLED = 1;
+        wait(0.5);
+        dumpLED = 0;
+        chargeLED = 0;    
+        wait(0.5);
+  }
+ 
+}
+
+//chargeLED = RED
+//dumpLED = Green
+
+ void chargeOne() {
+ 
+  justConnected = 0;
+
+  //with latch
+   relay1=1;    
+   chargeLED=1;
+   dumpLED = 0;
+   
+   while (1) {
+    
+     float voltage1 = load1*rRatio*3.3000;
+   
+     float delay = 0.2;  
+     if (UPPER_CHARGE_LIMIT > voltage1) {
+        delay=0.2+(UPPER_CHARGE_LIMIT - voltage1);
+     }
+     
+     wait (delay);
+     chargeLED=1;
+     wait (0.25);
+     chargeLED=0;
+
+     // When the battery is charged to the limit, switch the relay off and return
+     voltage1 = load1*rRatio*3.3000;
+     if (voltage1 >= UPPER_CHARGE_LIMIT ) {
+        flash();
+        relay1=0;    
+        chargeLED=0;
+        return;
+     }   
+    
+   } //loop
+
+}
+
+void init(void) {
+ for (int i=0;i<10;i++)  { 
+        dumpLED = 1;
+        wait(0.5);
+        dumpLED = 0;
+        chargeLED = 1;
+        wait(0.5);
+        chargeLED = 0;     
+  }
+ for (int i=0;i<1;i++)  { 
+        dumpLED = 1;
+        chargeLED = 1;
+        wait(0.5);
+        dumpLED = 0;
+        chargeLED = 0;    
+        wait(0.5);
+  }
+  
+  justConnected = 1;
+ 
+}
+
+
+void dump() {
+
+ dumpLED = 1;
+ wait(0.5);
+ dumpLED = 0;
+ 
+}
+
+int main() {
+    init();
+    while(1) {
+     wait(1);
+     float voltage1 = load1*rRatio*3.3000;
+     if ((voltage1 <= EMPTY) || ((justConnected == 1) && (voltage1 < UPPER_CHARGE_LIMIT))) {
+        chargeOne();
+     } else {
+        dump();
+     }    
+
+    } 
+}