Miguel Ángel Ramírez / Mbed 2 deprecated master_test

Dependencies:   TextLCD mbed

Committer:
migramdel1
Date:
Tue Jul 28 15:11:22 2015 +0000
Revision:
0:1c73bfda913b
Master1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
migramdel1 0:1c73bfda913b 1 #include "mbed.h"
migramdel1 0:1c73bfda913b 2 #include "TextLCD.h"
migramdel1 0:1c73bfda913b 3
migramdel1 0:1c73bfda913b 4 Serial slave1(PA_11, PA_12);
migramdel1 0:1c73bfda913b 5 Serial slave2(PA_15, PB_7);
migramdel1 0:1c73bfda913b 6 Serial bluetooth(PA_2, PA_3);
migramdel1 0:1c73bfda913b 7
migramdel1 0:1c73bfda913b 8 AnalogIn boton_LCD(A0);
migramdel1 0:1c73bfda913b 9 DigitalIn mov(D2);
migramdel1 0:1c73bfda913b 10
migramdel1 0:1c73bfda913b 11 Ticker lcdTimer, movTimer, sendTimer,alarmDatos;
migramdel1 0:1c73bfda913b 12
migramdel1 0:1c73bfda913b 13 TextLCD lcd = TextLCD(D8, D9, D4, D5, D6, D7, TextLCD::LCD16x2);
migramdel1 0:1c73bfda913b 14
migramdel1 0:1c73bfda913b 15 float key_value[6] = {0.05, 0.25, 0.45, 0.70, 0.85, 0.95};
migramdel1 0:1c73bfda913b 16 int NUM_KEYS = 6;
migramdel1 0:1c73bfda913b 17 float key_in;
migramdel1 0:1c73bfda913b 18 int key = -1;
migramdel1 0:1c73bfda913b 19 int x = 0;
migramdel1 0:1c73bfda913b 20 char caracterActual = 'Z';
migramdel1 0:1c73bfda913b 21 char password[8] = "AAAA";
migramdel1 0:1c73bfda913b 22 char enterPassword [8];
migramdel1 0:1c73bfda913b 23 int alarm = 0;
migramdel1 0:1c73bfda913b 24
migramdel1 0:1c73bfda913b 25
migramdel1 0:1c73bfda913b 26 int get_boton(float input);
migramdel1 0:1c73bfda913b 27 void lcd_control();
migramdel1 0:1c73bfda913b 28 int get_movimiento();
migramdel1 0:1c73bfda913b 29 void sendData(); //Ver como se hace y el readData
migramdel1 0:1c73bfda913b 30
migramdel1 0:1c73bfda913b 31
migramdel1 0:1c73bfda913b 32 void sendData(){
migramdel1 0:1c73bfda913b 33 char bufferSlave1[64];
migramdel1 0:1c73bfda913b 34 char bufferSlave2[64];
migramdel1 0:1c73bfda913b 35 char bufferTotal[128];
migramdel1 0:1c73bfda913b 36
migramdel1 0:1c73bfda913b 37 if(slave1.readable()){
migramdel1 0:1c73bfda913b 38 slave1.gets(bufferSlave1,64);
migramdel1 0:1c73bfda913b 39 }
migramdel1 0:1c73bfda913b 40 if(slave2.readable()){
migramdel1 0:1c73bfda913b 41 slave2.gets(bufferSlave2,64);
migramdel1 0:1c73bfda913b 42 }
migramdel1 0:1c73bfda913b 43 strncpy(bufferTotal, bufferSlave1, sizeof(bufferSlave1));
migramdel1 0:1c73bfda913b 44 strncat(bufferTotal, bufferSlave2,sizeof(bufferSlave2));
migramdel1 0:1c73bfda913b 45
migramdel1 0:1c73bfda913b 46 wait(0.2f);
migramdel1 0:1c73bfda913b 47 if(bluetooth.writeable()){
migramdel1 0:1c73bfda913b 48 bluetooth.printf("%s",bufferTotal);
migramdel1 0:1c73bfda913b 49 }
migramdel1 0:1c73bfda913b 50 }
migramdel1 0:1c73bfda913b 51
migramdel1 0:1c73bfda913b 52 void sendAlarm(){
migramdel1 0:1c73bfda913b 53 if(slave1.writeable()){
migramdel1 0:1c73bfda913b 54 if(alarm == 1){
migramdel1 0:1c73bfda913b 55 slave1.putc('A');
migramdel1 0:1c73bfda913b 56 wait(0.2);
migramdel1 0:1c73bfda913b 57 if(mov.read() == 1){
migramdel1 0:1c73bfda913b 58 slave1.putc('3');
migramdel1 0:1c73bfda913b 59 }
migramdel1 0:1c73bfda913b 60 }else if(alarm == 0){
migramdel1 0:1c73bfda913b 61 slave1.putc('N');
migramdel1 0:1c73bfda913b 62 }
migramdel1 0:1c73bfda913b 63 }
migramdel1 0:1c73bfda913b 64 }
migramdel1 0:1c73bfda913b 65
migramdel1 0:1c73bfda913b 66 int get_boton(float input){ //Metodo para obtener el boton pulsado en función del valor
migramdel1 0:1c73bfda913b 67
migramdel1 0:1c73bfda913b 68 int k;
migramdel1 0:1c73bfda913b 69 if (input > key_value[5]) k = -1; //Error en la lectura
migramdel1 0:1c73bfda913b 70
migramdel1 0:1c73bfda913b 71 else {
migramdel1 0:1c73bfda913b 72 for (k=0; k<NUM_KEYS; k++){
migramdel1 0:1c73bfda913b 73 if(input < key_value[k]) return k;
migramdel1 0:1c73bfda913b 74 }
migramdel1 0:1c73bfda913b 75 }
migramdel1 0:1c73bfda913b 76 return k;
migramdel1 0:1c73bfda913b 77 }
migramdel1 0:1c73bfda913b 78
migramdel1 0:1c73bfda913b 79 void lcd_control(){
migramdel1 0:1c73bfda913b 80 int i;
migramdel1 0:1c73bfda913b 81 wait(0.2);
migramdel1 0:1c73bfda913b 82 key_in = boton_LCD.read();
migramdel1 0:1c73bfda913b 83 key = get_boton(key_in);
migramdel1 0:1c73bfda913b 84
migramdel1 0:1c73bfda913b 85 lcd.locate(x,1);
migramdel1 0:1c73bfda913b 86
migramdel1 0:1c73bfda913b 87 if( key == 0){ //Tecla rigth
migramdel1 0:1c73bfda913b 88 enterPassword[x] = caracterActual;
migramdel1 0:1c73bfda913b 89 x++;
migramdel1 0:1c73bfda913b 90 if(x > 15) x=15;
migramdel1 0:1c73bfda913b 91 lcd.locate(x,1);
migramdel1 0:1c73bfda913b 92 caracterActual = 'A';
migramdel1 0:1c73bfda913b 93 lcd.printf("%c",caracterActual);
migramdel1 0:1c73bfda913b 94
migramdel1 0:1c73bfda913b 95 }
migramdel1 0:1c73bfda913b 96 if ( key == 1){ //Tecla up
migramdel1 0:1c73bfda913b 97 caracterActual++;
migramdel1 0:1c73bfda913b 98 if(caracterActual > 'Z') caracterActual = 'A';
migramdel1 0:1c73bfda913b 99 //pc.printf(caracterActual);
migramdel1 0:1c73bfda913b 100 lcd.printf("%c",caracterActual);
migramdel1 0:1c73bfda913b 101 }
migramdel1 0:1c73bfda913b 102 if(key == 2) { //Tecla down
migramdel1 0:1c73bfda913b 103 caracterActual--;
migramdel1 0:1c73bfda913b 104 if(caracterActual < 'A') caracterActual = 'Z';
migramdel1 0:1c73bfda913b 105 //pc.printf(caracterActual);
migramdel1 0:1c73bfda913b 106 lcd.printf("%c",caracterActual);
migramdel1 0:1c73bfda913b 107 }
migramdel1 0:1c73bfda913b 108 if(key == 3) { //Tecla left
migramdel1 0:1c73bfda913b 109 x--;
migramdel1 0:1c73bfda913b 110 if (x<0) x = 0;
migramdel1 0:1c73bfda913b 111 caracterActual = 'Z';
migramdel1 0:1c73bfda913b 112 }
migramdel1 0:1c73bfda913b 113 if(key == 5){ //Tecla select
migramdel1 0:1c73bfda913b 114 enterPassword[x] = caracterActual;
migramdel1 0:1c73bfda913b 115 x = 0;
migramdel1 0:1c73bfda913b 116
migramdel1 0:1c73bfda913b 117 if(alarm == 0){
migramdel1 0:1c73bfda913b 118 if(strcmp(password,enterPassword) == 0){
migramdel1 0:1c73bfda913b 119 alarm = 1;
migramdel1 0:1c73bfda913b 120 lcd.cls();
migramdel1 0:1c73bfda913b 121 lcd.locate(0,0);
migramdel1 0:1c73bfda913b 122 lcd.printf("Alarma Activada");
migramdel1 0:1c73bfda913b 123 lcd.locate(0,1);
migramdel1 0:1c73bfda913b 124 }else{
migramdel1 0:1c73bfda913b 125 lcd.cls();
migramdel1 0:1c73bfda913b 126 lcd.locate(0,0);
migramdel1 0:1c73bfda913b 127 lcd.printf("Pass incorrect");
migramdel1 0:1c73bfda913b 128 lcd.locate(0,1);
migramdel1 0:1c73bfda913b 129 }
migramdel1 0:1c73bfda913b 130 }else{
migramdel1 0:1c73bfda913b 131 if(strcmp(password,enterPassword) == 0){
migramdel1 0:1c73bfda913b 132 alarm = 0;
migramdel1 0:1c73bfda913b 133 lcd.cls();
migramdel1 0:1c73bfda913b 134 lcd.locate(0,0);
migramdel1 0:1c73bfda913b 135 lcd.printf("Alarma Desact");
migramdel1 0:1c73bfda913b 136 lcd.locate(0,1);
migramdel1 0:1c73bfda913b 137 }else{
migramdel1 0:1c73bfda913b 138 lcd.cls();
migramdel1 0:1c73bfda913b 139 lcd.locate(0,0);
migramdel1 0:1c73bfda913b 140 lcd.printf("Pass incorrect");
migramdel1 0:1c73bfda913b 141 lcd.locate(0,1);
migramdel1 0:1c73bfda913b 142 }
migramdel1 0:1c73bfda913b 143 }
migramdel1 0:1c73bfda913b 144 for(i=0; i<8; i++){
migramdel1 0:1c73bfda913b 145 enterPassword[i] = (char)0;
migramdel1 0:1c73bfda913b 146 }
migramdel1 0:1c73bfda913b 147 }
migramdel1 0:1c73bfda913b 148 }
migramdel1 0:1c73bfda913b 149
migramdel1 0:1c73bfda913b 150 int main(){
migramdel1 0:1c73bfda913b 151 lcd.locate(0,0);
migramdel1 0:1c73bfda913b 152 lcd.printf("Enter password");
migramdel1 0:1c73bfda913b 153 float movimiento;
migramdel1 0:1c73bfda913b 154 while(1){
migramdel1 0:1c73bfda913b 155 lcdTimer.attach(&lcd_control,0.5f);
migramdel1 0:1c73bfda913b 156 sendTimer.attach(&sendData, 1.0f);
migramdel1 0:1c73bfda913b 157 alarmDatos.attach(&sendAlarm, 0.5f);
migramdel1 0:1c73bfda913b 158 wait(1.0f);
migramdel1 0:1c73bfda913b 159 }
migramdel1 0:1c73bfda913b 160 }