Tabla de contenido:

NOCAR (Notificación De Carga): 5 Pasos
NOCAR (Notificación De Carga): 5 Pasos

Video: NOCAR (Notificación De Carga): 5 Pasos

Video: NOCAR (Notificación De Carga): 5 Pasos
Video: Porque Mi Teléfono Después de llegar al 100% Baja al 99 o 98% 2024, Mes de julio
Anonim
NOCAR (Notificación De Carga)
NOCAR (Notificación De Carga)

Abstracto

Creamos nuevas tecnologías y técnicas cada año. En el pasado, la máquina de vapor fue el primer paso de algo que denominamos Revolución Industrial. El ser humano no se ha demorado desde entonces. Hemos estado creando máquinas para hacernos la vida más fácil, y cada vez intentamos mejorar las cosas y los procesos que ya hicimos.

El automóvil moderno se introdujo por primera vez en 1886. Desde entonces, ha tenido un gran desarrollo en muchos aspectos. Desde el límite de velocidad, hasta el control de peso, ha ido cambiando y tomando muchos caminos. Una nueva tecnología hizo que el automóvil no requiriera combustibles fósiles: el automóvil híbrido. Sin embargo, este método tiene límites más restringidos. Una desventaja es el tiempo que tarda en recargarse. No es tan fácil como ir a la gasolinera y llenar el tanque en un par de minutos. Algunos coches necesitan horas para completar la recarga. Sin embargo, muchas de las gasolineras están cerca de una zona recreativa o una zona comercial. Y tiene sentido, si se tarda más en llenar la batería, no tiene sentido que esté allí todo el tiempo, por lo que le da la oportunidad de ir a donde quiera mientras tanto. Sin embargo, una vez que el automóvil esté cargado, si no lo ha sacado de la estación de carga, se le impondrá una multa. El objetivo de este producto es solucionar un problema habitual en los coches híbridos del futuro (los coches híbridos tienen una gran apuesta sobre la mesa). Implementamos un sistema de circuito utilizando una Dragonboard 410c. Le envía un correo electrónico para alertarle de que la carga de energía de su automóvil está en cierto porcentaje. De esta manera, puede realizar sus actividades sin tener que preocuparse por si su automóvil aún se está cargando o está listo (y es probable que reciba una multa). Aunque aquí en México este tipo de problema no parece surgir, antes de lo esperado, los nuevos sistemas tomarán terreno sobre los combustibles fósiles, y los autos híbridos tomarán un papel importante. Se han establecido nuevas leyes y las multas son ahora un hecho, no una idea lejana.

Crédito de la imagen: Clipper Creek: Estaciones de carga de vehículos eléctricos

Paso 1: Materiales

  • DragonBoard 410c
  • Entresuelo para 96Boards
  • Protoboard
  • Cable pasa corriente
  • Presionar el botón
  • Resistencia de 10 ohmios
  • Potenciómetro 10k ohmios
  • Condensador 150 pF
  • Chip ADC0804

Paso 2: Código

#incluir

#incluir

#incluir

#include "libsoc_gpio.h"

#include "libsoc_debug.h"

#include "libsoc_board.h"

unsigned int GPIO_PIN1;

unsigned int GPIO_PIN2;

unsigned int GPIO_PIN3;

unsigned int GPIO_PIN4;

unsigned int GPIO_TRANSIS;

unsigned int GPIO_SELECT;

unsigned int GPIO_ENTER;

unsigned int GPIO_LEDTEST;

int bandera;

int valorBoton;

int valorLEDTest;

int pin1_state = 0;

int pin2_state = 0;

int pin3_state = 0;

int pin4_state = 0;

int last_touch_pin1;

int last_touch_p1;

int last_touch_pin2;

int last_touch_p2;

int last_touch_pin3;

int last_touch_p3;

int last_touch_pin4;

int last_touch_p4;

int select_state = 0;

int enter_state = 0;

int transis_state = 0;

int last_touch_b;

int last_touch_l;

int led_state = 0;

int buzzer_state = 0;

int corriendo = 1;

_attribute _ ((constructor)) vacío estático _init ()

{

board_config * config = libsoc_board_init ();

GPIO_PIN1 = libsoc_board_gpio_id (config, "GPIO-A");

GPIO_PIN2 = libsoc_board_gpio_id (config, "GPIO-B");

GPIO_PIN3 = libsoc_board_gpio_id (config, "GPIO-C");

GPIO_PIN4 = libsoc_board_gpio_id (config, "GPIO-D");

GPIO_TRANSIS = libsoc_board_gpio_id (config, "GPIO-E");

GPIO_SELECT = libsoc_board_gpio_id (config, "GPIO-G");

GPIO_ENTER = libsoc_board_gpio_id (config, "GPIO-H");

GPIO_LEDTEST = libsoc_board_gpio_id (config, "GPIO-I");

libsoc_board_free (config);

}

int main ()

{

gpio * gpio_pin1, * gpio_pin2, * gpio_pin3, * gpio_pin4, * gpio_transis, * gpio_select, * gpio_enter, * gpio_ledtest;

int touch_pin1;

int touch_pin2;

int touch_pin3;

int touch_pin4;

int touch_transis;

int touch_select;

int touch_enter;

int touch_ledtest;

libsoc_set_debug (0);

gpio_pin1 = libsoc_gpio_request (GPIO_PIN1, LS_SHARED);

gpio_pin2 = libsoc_gpio_request (GPIO_PIN2, LS_SHARED);

gpio_pin3 = libsoc_gpio_request (GPIO_PIN3, LS_SHARED);

gpio_pin4 = libsoc_gpio_request (GPIO_PIN4, LS_SHARED);

gpio_transis = libsoc_gpio_request (GPIO_TRANSIS, LS_SHARED);

gpio_select = libsoc_gpio_request (GPIO_SELECT, LS_SHARED);

gpio_enter = libsoc_gpio_request (GPIO_ENTER, LS_SHARED);

gpio_ledtest = libsoc_gpio_request (GPIO_LEDTEST, LS_SHARED);

if ((gpio_pin1 == NULL) || (gpio_pin2 == NULL) || (gpio_pin3 == NULL) || (gpio_pin4 == NULL) || (gpio_transis == NULL) || (gpio_select == NULL) || (gpio_enter == NULL) || (gpio_ledtest == NULL))

{

ir a fallar;

}

libsoc_gpio_set_direction (gpio_pin1, ENTRADA);

libsoc_gpio_set_direction (gpio_pin2, ENTRADA);

libsoc_gpio_set_direction (gpio_pin3, ENTRADA);

libsoc_gpio_set_direction (gpio_pin4, ENTRADA);

libsoc_gpio_set_direction (gpio_transis, ENTRADA);

libsoc_gpio_set_direction (gpio_select, ENTRADA);

libsoc_gpio_set_direction (gpio_enter, ENTRADA);

libsoc_gpio_set_direction (gpio_ledtest, SALIDA);

if ((libsoc_gpio_get_direction (gpio_pin1)! = ENTRADA)

|| (libsoc_gpio_get_direction (gpio_pin2)! = ENTRADA) || (libsoc_gpio_get_direction (gpio_pin3)! = ENTRADA) || (libsoc_gpio_get_direction (gpio_pin4)! = ENTRADA)

|| (libsoc_gpio_get_direction (gpio_transis)! = ENTRADA) || (libsoc_gpio_get_direction (gpio_select)! = ENTRADA) || (libsoc_gpio_get_direction (gpio_enter)! = ENTRADA) || (libsoc_gpio_get_direction (gpio_ledtest)! = SALIDA))

{

ir a fallar;

}

mientras corre)

{

touch_pin1 = libsoc_gpio_get_level (gpio_pin1);

touch_pin2 = libsoc_gpio_get_level (gpio_pin2);

touch_pin3 = libsoc_gpio_get_level (gpio_pin3);

touch_pin4 = libsoc_gpio_get_level (gpio_pin4);

touch_enter = libsoc_gpio_get_level (gpio_enter);

touch_select = libsoc_gpio_get_level (gpio_select);

touch_transis = libsoc_gpio_get_level (gpio_transis);

touch_ledtest = libsoc_gpio_get_level (gpio_ledtest);

si (touch_select == 1)

{

valorBoton ++;

si (valorBoton == 4)

{

valorBoton = 0;

}

}

si (valorBoton == 3)

{

valorLEDTest = 1;

libsoc_gpio_set_level (gpio_ledtest, valorLEDTest);

}

}

falla: si (gpio_pin1 || gpio_pin2 || gpio_pin3 || gpio_pin4 || gpio_transis || gpio_select || gpio_enter || gpio_ledtest)

{

printf ("¡falla la aplicación del recurso gpio! / n");

libsoc_gpio_free (gpio_pin1);

libsoc_gpio_free (gpio_pin2);

libsoc_gpio_free (gpio_pin3);

libsoc_gpio_free (gpio_pin4);

libsoc_gpio_free (gpio_transis);

libsoc_gpio_free (gpio_select);

libsoc_gpio_free (gpio_enter);

libsoc_gpio_free (gpio_ledtest);

}

return EXIT_SUCCESS;

}

Paso 3: circuito eléctrico

Circuito electrico
Circuito electrico
Circuito electrico
Circuito electrico
Circuito electrico
Circuito electrico
Circuito electrico
Circuito electrico

Este circuito funciona como un convertidor de analógico a digital. Toma la señal de un potenciómetro que viene en un valor entre 0 y 5 voltios, luego el convertidor la convierte en una señal digital entre 0 y 255 bits y la envía a DragonBoard INPUTS.

Paso 4:

Desarrollado por:

Alfredo Fontes

Mauricio gómez

Jorge Jiménez

Gerardo López

Felipe Rojas

Luis Rojas

Ivón Sandoval

Recomendado: