Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
- Committer:
- mvargas_dtk
- Date:
- 2022-08-27
- Revision:
- 0:cb19c7be20b9
- Child:
- 1:67969835e6a7
File content as of revision 0:cb19c7be20b9:
/* mbed Microcontroller Library
* Copyright (c) 2019 ARM Limited
* SPDX-License-Identifier: Apache-2.0
*/
#include "mbed.h"
#include "platform/mbed_thread.h"
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "BufferedSerial.h"
DigitalOut led1(PB_4);
DigitalOut led2(PB_12);
DigitalOut BT_RST(PB_5);
InterruptIn Button (PC_13);
DigitalOut Stby_can(PD_3);
DigitalOut reg_3v3(PC_10);
DigitalOut reg_5v(PB_10);
DigitalIn bt_state (PA_15);
DigitalIn in1 (PA_7);
DigitalIn in2 (PB_0);
DigitalIn in3 (PB_1);
DigitalIn in4 (PF_10);
DigitalIn in5 (PA_4);
DigitalIn in6 (PA_5);
DigitalIn in7 (PA_6);
DigitalIn in8 (PB_3);
BufferedSerial RS232_2(PC_12, PE_7);
BufferedSerial RS232_1(PD_8, PD_9,1536, 1);
//Serial RS232_1(PD_8, PD_9);
BufferedSerial RS485(PC_6, PC_7);
BufferedSerial BT(PA_9, PA_10,1536 ,1);
//Serial BT(PA_9, PA_10);
BufferedSerial TTL(PA_2, PA_3);
BufferedSerial vm(PA_0, PA_1);
DigitalOut OUT1(PB_13); //Salidas activas en bajo
DigitalOut OUT2(PB_14); //Salidas activas en bajo
DigitalOut OUT3(PB_15); //Salidas activas en bajo
DigitalOut OUT4(PC_0); //Salidas activas en bajo
//////////////////////////////////////////////////////////////////////////////
int main()
{
Stby_can = 0;
led1 = 0;
led2 = 0;
BT_RST = 1;
char datoUSB[1311];
char ONOUTS[] = "ONOUTS";
char OFFOUTS[] = "OFFOUTS";
char ONOUT1[] = "ONOUT1";
char ONOUT2[] = "ONOUT2";
char ONOUT3[] = "ONOUT3";
char ONOUT4[] = "ONOUT4";
char ANTO[] = "ANTO";
char ON3V3[] = "ON3V3";
char OFF3V3[] = "OFF3V3";
char RSTBT[] = "RSTBT";
char ON5V[] = "ON5V";
char OFF5V[] = "OFF5V";
char datox;
int x;
int y = 0;
int i = 0;
BT.baud(9600);
RS232_1.baud(115200);
RS232_2.baud(115200);
RS485.baud(115200);
TTL.baud(115200);
vm.baud(9600);
wait_us(1000000);
BT.printf("Inicio\n");
RS232_1.printf("Inicio\n");
RS232_2.printf("Inicio\n");
reg_3v3 = 0;
reg_5v = 0;
x = 0;
wait_us(1000000);
//////////////////////////////////////////////////////////////////////////////
while (true) {
x = 0;
led1 = !led1;
led2 = !led2;
/* BT.printf("Prueba Salidas\n");
RS232_1.printf("Prueba Salidas\n");
RS232_2.printf("Prueba Salidas\n");
TTL.printf("Prueba Salidas\n");
RS485.printf("Prueba Salidas\n");*/
BT.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
RS232_1.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
RS232_2.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
TTL.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
RS485.printf("in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
if (((bt_state.read())==1)&&(y==0)){
BT.printf("Bluetooth Conectado\r\n");
RS232_1.printf("Bluetooth Conectado\r\n");
RS232_2.printf("Bluetooth Conectado\r\n");
RS485.printf("Bluetooth Conectado\r\n");
TTL.printf("Bluetooth Conectado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X01);
vm.putc(0XB4);
y = 1;
}
while(RS232_1.readable()) {
datox = RS232_1.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
while(BT.readable()) {
datox = BT.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
while(RS232_2.readable()) {
datox = RS232_2.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
while(TTL.readable()) {
datox = TTL.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
while(RS485.readable()) {
datox = RS485.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
if (x != 0) {
datoUSB[x] = '\0';
BT.printf("DATA: %s\r\n", datoUSB);
BT.printf("\nCaracteres: %d\r\n", x);
BT.printf("\r\n");
BT.printf("\r\n");
RS232_1.printf("DATA: %s\r\n", datoUSB);
RS232_1.printf("\nCaracteres: %d\r\n", x);
RS232_1.printf("\r\n");
RS232_1.printf("\r\n");
RS232_2.printf("DATA: %s\r\n", datoUSB);
RS232_2.printf("\nCaracteres: %d\r\n", x);
RS232_2.printf("\r\n");
RS232_2.printf("\r\n");
TTL.printf("DATA: %s\r\n", datoUSB);
TTL.printf("\nCaracteres: %d\r\n", x);
TTL.printf("\r\n");
TTL.printf("\r\n");
if(strcmp(ONOUTS,datoUSB) == 0) {
OUT1 = OUT2 = OUT3 = OUT4 = 1;
i= 1;
BT.printf("Salidas activadas\r\n");
RS232_1.printf("Salidas activadas\r\n");
RS232_2.printf("Salidas activadas\r\n");
TTL.printf("Salidas activadas\r\n");
RS485.printf("Salidas activadas\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X0A);
vm.putc(0XBD);
}
else if(strcmp(OFFOUTS,datoUSB) == 0) {
OUT1 = OUT2 = OUT3 = OUT4 = 0;
i= 1;
BT.printf("Salidas desactivadas\r\n");
RS232_1.printf("Salidas desactivadas\r\n");
RS232_2.printf("Salidas desactivadas\r\n");
RS485.printf("Salidas desactivadas\r\n");
TTL.printf("Salidas desactivadas\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X0B);
vm.putc(0XBE);
}
else if(strcmp(ONOUT1,datoUSB) == 0) {
OUT2 = OUT3 = OUT4 = 0;
OUT1 = 1;
i= 1;
BT.printf("Salida 1 Activada\r\n");
RS232_1.printf("Salida 1 Activada\r\n");
RS232_2.printf("Salida 1 Activada\r\n");
RS485.printf("Salida 1 Activada\r\n");
TTL.printf("Salida 1 Activada\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X02);
vm.putc(0XB5);
}
else if(strcmp(ONOUT2,datoUSB) == 0) {
OUT1 = OUT3 = OUT4 = 0;
OUT2 = 1;
i= 1;
BT.printf("Salida 2 Activada\r\n");
RS232_1.printf("Salida 2 Activada\r\n");
RS232_2.printf("Salida 2 Activada\r\n");
RS485.printf("Salida 2 Activada\r\n");
TTL.printf("Salida 2 Activada\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X03);
vm.putc(0XB6);
}
else if(strcmp(ONOUT3,datoUSB) == 0) {
OUT1 = OUT2 = OUT4 = 0;
OUT3 = 1;
i= 1;
BT.printf("Salida 3 Activada\r\n");
RS232_1.printf("Salida 3 Activada\r\n");
RS232_2.printf("Salida 3 Activada\r\n");
RS485.printf("Salida 3 Activada\r\n");
TTL.printf("Salida 3 Activada\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X04);
vm.putc(0XB7);
}
else if(strcmp(ONOUT4,datoUSB) == 0) {
OUT1 = OUT2 = OUT3 = 0;
OUT4 = 1;
i= 1;
BT.printf("Salida 4 Activada\r\n");
RS232_1.printf("Salida 4 Activada\r\n");
RS232_2.printf("Salida 4 Activada\r\n");
RS485.printf("Salida 4 Activada\r\n");
TTL.printf("Salida 4 Activada\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X05);
vm.putc(0XB8);
}
else if(strcmp(ON3V3,datoUSB) == 0) {
reg_3v3 = 1;
BT.printf("Regulador 3.3V activado\r\n");
RS232_1.printf("Regulador 3.3V activado\r\n");
RS232_2.printf("Regulador 3.3V activado\r\n");
RS485.printf("Regulador 3.3V activado\r\n");
TTL.printf("Regulador 3.3V activado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X06);
vm.putc(0XB9);
}
else if(strcmp(OFF3V3,datoUSB) == 0) {
reg_3v3 = 0;
BT.printf("Regulador 3.3V desactivado\r\n");
RS232_1.printf("Regulador 3.3V desactivado\r\n");
RS232_2.printf("Regulador 3.3V desactivado\r\n");
RS485.printf("Regulador 3.3V desactivado\r\n");
TTL.printf("Regulador 3.3V desactivado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X07);
vm.putc(0XBA);
}
else if(strcmp(RSTBT,datoUSB) == 0) {
BT_RST = 0;
wait_us(100000);
BT_RST = 1;
y = 0;
BT.printf("Reset BT\r\n");
RS232_1.printf("Reset BT\r\n");
RS232_2.printf("Reset BT\r\n");
RS485.printf("Reset BT\r\n");
TTL.printf("Reset BT\r\n");
}
else if(strcmp(ON5V,datoUSB) == 0) {
reg_5v = 1;
BT.printf("Regulador 5V activado\r\n");
RS232_1.printf("Regulador 5V activado\r\n");
RS232_2.printf("Regulador 5V activado\r\n");
RS485.printf("Regulador 5V activado\r\n");
TTL.printf("Regulador 5V activado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X08);
vm.putc(0XBB);
}
else if(strcmp(OFF5V,datoUSB) == 0) {
reg_5v = 0;
BT.printf("Regulador 5V desactivado\r\n");
RS232_1.printf("Regulador 5V desactivado\r\n");
RS232_2.printf("Regulador 5V desactivado\r\n");
RS485.printf("Regulador 5V desactivado\r\n");
TTL.printf("Regulador 5V desactivado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X09);
vm.putc(0XBC);
}
else if(strcmp(ANTO,datoUSB) == 0) {
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X0C);
vm.putc(0XBF);
}
else{
BT.printf("COMANDO INVALIDO\n");
RS232_1.printf("COMANDO INVALIDO\n");
RS232_2.printf("COMANDO INVALIDO\n");
RS485.printf("COMANDO INVALIDO\n");
TTL.printf("COMANDO INVALIDO\n");
}
}
wait_us(3000000);
}//while true
}//main