automotive simulation thingy

Dependencies:   N5110 ShiftReg Tone mbed

Fork of 1620_Project_Template by Craig Evans

Committer:
Al_Husien_Dabashi
Date:
Thu Jun 29 22:41:30 2017 +0000
Revision:
2:e7e39d27b11f
Parent:
0:d5312060f649
1620 Final Automotive simulation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:d5312060f649 1 #include "main.h"
eencae 0:d5312060f649 2
eencae 0:d5312060f649 3 // objects defined here with pin numbers (if required)
eencae 0:d5312060f649 4 DigitalIn button_a(p29);
eencae 0:d5312060f649 5 DigitalIn button_b(p28);
eencae 0:d5312060f649 6 DigitalIn button_c(p27);
eencae 0:d5312060f649 7 DigitalIn button_d(p26);
eencae 0:d5312060f649 8
Al_Husien_Dabashi 2:e7e39d27b11f 9
Al_Husien_Dabashi 2:e7e39d27b11f 10
eencae 0:d5312060f649 11 N5110 lcd(p8,p9,p10,p11,p13,p21);
eencae 0:d5312060f649 12 BusOut leds(LED4,LED3,LED2,LED1);
eencae 0:d5312060f649 13
eencae 0:d5312060f649 14 AnalogIn ldr(p15);
eencae 0:d5312060f649 15
eencae 0:d5312060f649 16 PwmOut red_led(p24);
eencae 0:d5312060f649 17 PwmOut green_led(p23);
eencae 0:d5312060f649 18 PwmOut blue_led(p22);
eencae 0:d5312060f649 19
eencae 0:d5312060f649 20 AnalogIn tmp36(p16);
eencae 0:d5312060f649 21
eencae 0:d5312060f649 22 AnalogIn pot_0(p20);
eencae 0:d5312060f649 23 AnalogIn pot_1(p19);
eencae 0:d5312060f649 24 AnalogIn pot_2(p17);
eencae 0:d5312060f649 25
eencae 0:d5312060f649 26 Tone speaker(p18);
eencae 0:d5312060f649 27 ShiftReg shift;
eencae 0:d5312060f649 28
Al_Husien_Dabashi 2:e7e39d27b11f 29
eencae 0:d5312060f649 30 int main()
eencae 0:d5312060f649 31 {
eencae 0:d5312060f649 32 init(); // initialise peripherals
eencae 0:d5312060f649 33 welcome(); // display welcome message
eencae 0:d5312060f649 34
eencae 0:d5312060f649 35 while(1) { // infinite loop
eencae 0:d5312060f649 36
eencae 0:d5312060f649 37 print_menu(); // this re-prints the menu at the start of every loop
eencae 0:d5312060f649 38
eencae 0:d5312060f649 39 // if any buttons pressed then jump to appropriate menu function
eencae 0:d5312060f649 40 if (button_a.read() == 1) {
eencae 0:d5312060f649 41 mode_A();
eencae 0:d5312060f649 42 }
eencae 0:d5312060f649 43 if (button_b.read() == 1) {
eencae 0:d5312060f649 44 mode_B();
eencae 0:d5312060f649 45 }
eencae 0:d5312060f649 46 if (button_c.read() == 1) {
eencae 0:d5312060f649 47 mode_C();
eencae 0:d5312060f649 48 }
eencae 0:d5312060f649 49 if (button_d.read() == 1) {
eencae 0:d5312060f649 50 mode_D();
eencae 0:d5312060f649 51 }
eencae 0:d5312060f649 52
eencae 0:d5312060f649 53 // delay to prevent multiple button presses being detected
eencae 0:d5312060f649 54 wait_ms(250);
eencae 0:d5312060f649 55
Al_Husien_Dabashi 2:e7e39d27b11f 56 }lcd.clear();
eencae 0:d5312060f649 57 }
eencae 0:d5312060f649 58
eencae 0:d5312060f649 59 void init()
eencae 0:d5312060f649 60 {
eencae 0:d5312060f649 61 // turn off LEDs
eencae 0:d5312060f649 62 red_led = 1.0;
eencae 0:d5312060f649 63 green_led = 1.0;
eencae 0:d5312060f649 64 blue_led = 1.0;
eencae 0:d5312060f649 65
eencae 0:d5312060f649 66 // turn off 7-seg display
eencae 0:d5312060f649 67 shift.write(0x00);
eencae 0:d5312060f649 68
eencae 0:d5312060f649 69 // initialise LCD
eencae 0:d5312060f649 70 lcd.init();
eencae 0:d5312060f649 71
eencae 0:d5312060f649 72 // PCB has external pull-down resistors so turn the internal ones off
eencae 0:d5312060f649 73 button_a.mode(PullNone);
eencae 0:d5312060f649 74 button_b.mode(PullNone);
eencae 0:d5312060f649 75 button_c.mode(PullNone);
eencae 0:d5312060f649 76 button_d.mode(PullNone);
eencae 0:d5312060f649 77 }
eencae 0:d5312060f649 78
eencae 0:d5312060f649 79 void print_menu()
eencae 0:d5312060f649 80 {
eencae 0:d5312060f649 81 lcd.clear();
eencae 0:d5312060f649 82 lcd.printString("Press button",0,0);
eencae 0:d5312060f649 83 lcd.printString("to select",0,1);
eencae 0:d5312060f649 84 lcd.printString("A: Mode A",0,2);
eencae 0:d5312060f649 85 lcd.printString("B: Mode B",0,3);
eencae 0:d5312060f649 86 lcd.printString("C: Mode C",0,4);
eencae 0:d5312060f649 87 lcd.printString("D: Mode D",0,5);
eencae 0:d5312060f649 88 lcd.refresh();
eencae 0:d5312060f649 89 }
eencae 0:d5312060f649 90
eencae 0:d5312060f649 91 void welcome()
eencae 0:d5312060f649 92 {
eencae 0:d5312060f649 93 lcd.clear();
eencae 0:d5312060f649 94 lcd.printString(" Automotive",0,0);
eencae 0:d5312060f649 95 lcd.printString(" Electronics",0,1);
eencae 0:d5312060f649 96 lcd.printString(" Simulator",0,2);
Al_Husien_Dabashi 2:e7e39d27b11f 97 lcd.printString(" Al Husien",0,3);
Al_Husien_Dabashi 2:e7e39d27b11f 98 lcd.printString(" Dabashi",0,4);
Al_Husien_Dabashi 2:e7e39d27b11f 99 lcd.printString(" 201042563",0,5);
eencae 0:d5312060f649 100 lcd.refresh();
eencae 0:d5312060f649 101 wait(5.0);
eencae 0:d5312060f649 102 }