Run/kill switch operated power supply.

Dependencies:   BridgeDriver MCP23017 TextLCD mbed

Committer:
ggudgel
Date:
Fri Oct 23 01:18:13 2015 +0000
Revision:
0:8c0abf52e7c0
Kill Switch operated power supply.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ggudgel 0:8c0abf52e7c0 1 #include "mbed.h"
ggudgel 0:8c0abf52e7c0 2 #include "LocalPinNames.h"
ggudgel 0:8c0abf52e7c0 3 #include "BridgeDriver.h"
ggudgel 0:8c0abf52e7c0 4 #include "TextLCD.h"
ggudgel 0:8c0abf52e7c0 5
ggudgel 0:8c0abf52e7c0 6 I2C i2c(P0_10,P0_11); // I2C bus (SDA, SCL)
ggudgel 0:8c0abf52e7c0 7 BridgeDriver bridges(&i2c); // bridge
ggudgel 0:8c0abf52e7c0 8 TextLCD_I2C lcd(&i2c, MCP23008_SA0, TextLCD::LCD20x4); // LCD
ggudgel 0:8c0abf52e7c0 9 DigitalIn killSw(KILL);
ggudgel 0:8c0abf52e7c0 10
ggudgel 0:8c0abf52e7c0 11 void setDrives(int NEWSTATE) {
ggudgel 0:8c0abf52e7c0 12 lcd.setAddress(0,3); //set cursor to 0,0
ggudgel 0:8c0abf52e7c0 13 if (NEWSTATE)
ggudgel 0:8c0abf52e7c0 14 lcd.printf("Power On ");
ggudgel 0:8c0abf52e7c0 15 else
ggudgel 0:8c0abf52e7c0 16 lcd.printf("Power Off ");
ggudgel 0:8c0abf52e7c0 17 bridges.drive(1,NEWSTATE);
ggudgel 0:8c0abf52e7c0 18 bridges.drive(2,NEWSTATE);
ggudgel 0:8c0abf52e7c0 19 bridges.drive(3,NEWSTATE);
ggudgel 0:8c0abf52e7c0 20 bridges.drive(4,NEWSTATE);
ggudgel 0:8c0abf52e7c0 21 bridges.drive(5,NEWSTATE);
ggudgel 0:8c0abf52e7c0 22 bridges.drive(6,NEWSTATE);
ggudgel 0:8c0abf52e7c0 23 bridges.drive(7,NEWSTATE);
ggudgel 0:8c0abf52e7c0 24 bridges.drive(8,NEWSTATE);
ggudgel 0:8c0abf52e7c0 25 }
ggudgel 0:8c0abf52e7c0 26
ggudgel 0:8c0abf52e7c0 27 int main() {
ggudgel 0:8c0abf52e7c0 28 killSw.mode(PullUp);
ggudgel 0:8c0abf52e7c0 29 i2c.frequency(1000000);
ggudgel 0:8c0abf52e7c0 30 lcd.setBacklight(TextLCD::LightOn);
ggudgel 0:8c0abf52e7c0 31 lcd.cls(); //clear the display
ggudgel 0:8c0abf52e7c0 32 lcd.setAddress(0,0); //set cursor to 0,0
ggudgel 0:8c0abf52e7c0 33 lcd.printf("Simple Power Supply");
ggudgel 0:8c0abf52e7c0 34 lcd.setAddress(0,1);
ggudgel 0:8c0abf52e7c0 35 lcd.printf("Operate with run sw.");
ggudgel 0:8c0abf52e7c0 36
ggudgel 0:8c0abf52e7c0 37 int currentKillState = killSw;
ggudgel 0:8c0abf52e7c0 38 setDrives(!currentKillState);
ggudgel 0:8c0abf52e7c0 39
ggudgel 0:8c0abf52e7c0 40 while(1) {
ggudgel 0:8c0abf52e7c0 41 if (currentKillState != killSw) {
ggudgel 0:8c0abf52e7c0 42 currentKillState = killSw;
ggudgel 0:8c0abf52e7c0 43 setDrives(!currentKillState);
ggudgel 0:8c0abf52e7c0 44 }
ggudgel 0:8c0abf52e7c0 45 wait(0.1);
ggudgel 0:8c0abf52e7c0 46 }
ggudgel 0:8c0abf52e7c0 47 }