Spisu treści:

NOCAR (Notificación De Carga): 5 kroków
NOCAR (Notificación De Carga): 5 kroków

Wideo: NOCAR (Notificación De Carga): 5 kroków

Wideo: NOCAR (Notificación De Carga): 5 kroków
Wideo: 20 SCARY GHOST Videos That'll Chill You To The Bone 2024, Lipiec
Anonim
NOCAR (Notificación De Carga)
NOCAR (Notificación De Carga)

Abstrakcyjny

Co roku tworzymy nowe technologie i techniki. W przeszłości maszyna parowa była pierwszym krokiem do czegoś, co nazwaliśmy rewolucją przemysłową. Istota ludzka nie pozostała od tego czasu. Tworzymy maszyny, które ułatwiają nam życie i za każdym razem staramy się ulepszać to, co już stworzyliśmy.

Nowoczesny samochód został po raz pierwszy wprowadzony na rynek w 1886 roku. Od tego czasu bardzo się rozwinął pod wieloma względami. Od ograniczenia prędkości po kontrolę wagi, zmienia się i podąża wieloma ścieżkami. Nowa technologia sprawiła, że samochód nie wymaga paliw kopalnych: samochód hybrydowy. Jednak ta metoda ma bardziej ograniczone ograniczenia. Jedną wadą jest czas potrzebny na naładowanie. Nie jest to takie proste, jak iść na stację benzynową i napełnić bak w kilka minut. Niektóre samochody potrzebują godzin na doładowanie. Jednak wiele, jeśli stacja benzynowa znajduje się w pobliżu strefy rekreacyjnej lub handlowej. I ma sens, że jeśli naładowanie baterii trwa dłużej, nie ma sensu być tam przez cały czas, więc daje to możliwość pójścia tam, gdzie chcesz w międzyczasie. Jednak po naładowaniu samochodu, jeśli nie wyprowadziłeś go ze stacji ładowania, na samochód zostanie nałożona kara. Celem tego produktu jest rozwiązanie normalnego problemu w przyszłych samochodach hybrydowych (samochody hybrydowe mają świetny zakład na stół). Wdrażamy układ obwodów z wykorzystaniem Dragonboard 410c. Wysyła Ci wiadomość e-mail z ostrzeżeniem, że ładunek energetyczny Twojego samochodu wynosi do określonego procentu. W ten sposób możesz wykonywać swoje czynności bez martwienia się o to, czy Twój samochód nadal się ładuje lub jest gotowy (i prawdopodobnie zostanie ukarany grzywną). Chociaż tutaj, w Meksyku, tego rodzaju problem nie wydaje się pojawiać, wcześniej niż się spodziewamy, nowe systemy zawładną paliwami kopalnymi, a samochody hybrydowe odegrają ważną rolę. Ustanowiono nowe prawa, a grzywny są teraz faktem, a nie odległą ideą.

Źródło obrazu: Clipper Creek: Stacje ładowania pojazdów elektrycznych

Krok 1: Materiały

  • DragonBoard 410c
  • Antresola na 96 desek
  • Płyta prototypowa
  • Przewód połączeniowy
  • Naciśnij przycisk
  • Rezystor 10 ohm
  • Potencjometr 10k ohm
  • Kondensator 150 pF
  • Chip ADC0804

Krok 2: Kod

#włączać

#włączać

#włączać

#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 flaga;

int valorBoton;

int valorLEDTest;

int pin1_stan=0;

int pin2_stan=0;

int pin3_stan=0;

int pin4_stan=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 stan_transis=0;

int last_touch_b;

int last_touch_l;

int led_state = 0;

int stan_brzęczyka = 0;

int działa = 1;

_atrybut_((konstruktor)) statyczny nieważny _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))

{

iść do porażki;

}

libsoc_gpio_set_direction (gpio_pin1, WEJŚCIE);

libsoc_gpio_set_direction (gpio_pin2, WEJŚCIE);

libsoc_gpio_set_direction (gpio_pin3, WEJŚCIE);

libsoc_gpio_set_direction (gpio_pin4, WEJŚCIE);

libsoc_gpio_set_direction (gpio_transis, INPUT);

libsoc_gpio_set_direction (gpio_select, INPUT);

libsoc_gpio_set_direction (gpio_enter, INPUT);

libsoc_gpio_set_direction (gpio_ledtest, WYJŚCIE);

if((libsoc_gpio_get_direction(gpio_pin1) != WEJŚCIE)

|| (libsoc_gpio_get_direction(gpio_pin2) != WEJŚCIE) || (libsoc_gpio_get_direction(gpio_pin3) != WEJŚCIE) || (libsoc_gpio_get_direction(gpio_pin4) != WEJŚCIE)

|| (libsoc_gpio_get_direction(gpio_transis) != WEJŚCIE) || (libsoc_gpio_get_direction(gpio_select) != WEJŚCIE) || (libsoc_gpio_get_direction(gpio_enter) != WEJŚCIE) || (libsoc_gpio_get_direction(gpio_ledtest) != WYJŚCIE))

{

iść do porażki;

}

podczas biegu)

{

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);

if(touch_select == 1)

{

waleczność Boton++;

if(valorBoton==4)

{

wartośćBoton=0;

}

}

if(valorBoton==3)

{

ValorLEDTest=1;

libsoc_gpio_set_level(gpio_ledtest, valorLEDTest);

}

}

fail: if(gpio_pin1 || gpio_pin2 || gpio_pin3 || gpio_pin4 || gpio_transis || gpio_select || gpio_enter || gpio_ledtest)

{

printf("zastosowanie zasobu gpio nie powiodło się!\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);

}

powrót EXIT_SUCCESS;

}

Krok 3: obwód elektryczny

Obwód elektryczny
Obwód elektryczny
Obwód elektryczny
Obwód elektryczny
Obwód elektryczny
Obwód elektryczny
Obwód elektryczny
Obwód elektryczny

Ten obwód działa jako konwerter analogowo-cyfrowy. Pobiera sygnał z potencjometru o wartości od 0 do 5 woltów, a następnie konwerter przetwarza go na sygnał cyfrowy o wartości od 0 do 255 bitów i wysyła go do WEJŚĆ DragonBoard.

Krok 4:

Opracowany przez:

Alfredo Fontes

Mauricio Gomez

Jorge Jiménez

Gerardo Lopéz

Felipe Rojas

Luis Rojas

Ivón Sandoval

Zalecana: