sábado, 13 de outubro de 2012

Arduino Uno (ou Duemilanove) Aplicada ao Controle de Estação de Recarga Doméstica (SAE-J1772, CA, Nível 2) - Parte 3


Aqui começa a PARTE 3 deste artigo! Para ligação p/ a PARTE 1 siga:
O Arduino Uno (ou Duemilanove) Aplicado a uma EVSE (SAE-J1772 CA Nível 2) - Parte 1

Ou, para contextualizar sobre o Equipamento de Abastecimento de Veículo Elétrico, veja as postagens anteriores:
EVSE - Electric Vehicle Supply Equipment (Equipto de Abastec. de Veículo Elétr.) - Nível 1 e 2

Uma Shield (placa de expansão) Open-EVSE (onde EVSE é um acrônimo para Electric Vehicle Supply Equipment) para plataforma Arduíno é uma placa eletrônica única que se encaixa perfeitamente ás barras de conectores da placa controladora Aduíno Padrão (seja a Duemilanove ou a Uno). Essa expansão Open-EVSE dispõe dos circuitos eletrônicos necessária para, em conjunto com a placa Arduino, operar no controle adequado da todas as funções do processo da EVSE, que nada mais é do que uma fonte CA para carregamento da bateria do sistema de tração de Veículos Elétricos.

A EVSE, em conjunto com a ação do controlador do Carregador Embarcado presente nos Veículos Elétricos, operam o protocolo SAE J1772, via um único pino de sinal bidirecional de controle, denominado PILOTO, que faz a EVSE operar como uma fonte CA, em geral, mais adequada para a tensão de rede de 220V, 60Hz, regulada em corrente, limitada de acordo à capacidade máxima de fornecimento de corrente da EVSE e ajustada a demanda do Carregador Embarcado.

A EVSE apresenta o seguinte diagrama elétrico de blocos:


A entrada EVSE recebe rede bifásica (de preferência), fases L1 e L2, 220VCA nominal (ou monofásica, 127VCA, no caso NEUTRO ao invés de L2) e ainda o GND (definido como PE ou PEN na norma brasileira NBR-5410-2004). Convém que essa rede CA seja suprida a partir do Quadro de Distribuição de Circuitos, presente na Instalação Elétrica do imóvel onde a EVSE será instalada mas, nada impede que o circuito alimentador possa ser, também, derivado diretamente do Quadro Padrão de Entrada deste imóvel.

Todavia, em ambos os casos, mesmo sendo a EVSE dotada de dispositivo próprio de proteção contra choques elétricos, é altamente recomendável que haja uma proteção adicional, com emprego de um interruptor disjuntor DR, conforme foi tratado em postagens anteriores, aqui mesmo, neste blog. Também recomendo que quem pretenda executar esse projeto, seja cônscio da necessidade de conhecer a Norma Brasileira NBR 5410/2004.

Esta Norma estabelece as condições a que devem satisfazer as instalações elétricas de baixa tensão, a fim de garantir a segurança de pessoas e animais, o funcionamento adequado da instalação e a conservação dos bens, e se aplica-se principalmente às instalações elétricas de edificações, qualquer que seja seu uso (residencial, comercial, público, industrial, de serviços, agropecuário, hortigranjeiro, etc.), incluindo as pré-fabricadas.

A Shield para Arduíno Open-EVSE realiza as seguintes funções:
  • Fonte de Alimentação que provê a tensão CC de 12VCC para alimentação geral do controle;
  • Monitoramento da(s) Presença(s) da(s) Tensão(ões) de Fase da Rede CA, após o(s) Relé(s) Principal(is), na saída da EVSE (Monitor de Relé Principal Atracado);
  • Interrupção da Corrente de Carregamento por Falha de Terra (conhecido em inglês pelo acrônimo GFCI), para proteção;
  • Processamento da função PILOTO (incluindo aqui a Conversão CC/CC para obter saídas de tensão de alimentação CC simétricas, de +12V e de -12V, isoladas, que é necessária no processamento da função Piloto), conforme protocolo padrão internacional J1772;
  • Acionamento da(s) “bobinas” do(s) Relé(s) Principal(is), disponibilizando energia para o carregamento;
  • IHM,  composta de um LCD Multicolorido (RGB), de 2 linhas x 16 caracteres e com um teclado de 5 cinco teclas. A mudança da cor do fundo do LCD é usada como sinalização luminosa de estado e alertas, pertinentes a operação da EVSE, de acordo com o protocolo SAE J1772.
Assim, temos para essa Shield, o diagrama eletrônico que é apresentado na página a seguir:

Começando pelo bloco denominado “Fonte de Alimentação Avançada”, temos um conversor CA/CC compacto (tamanho miniatura), de 4W, o MPM-04S-12 da MicroPower Direct. A partir da tensão CA da rede (na ampla faixa de 90V a 264V) em sua entrada (pinos 9 e 7), ele produz em sua única saída 12VCC (pino 12).

Este módulo compacto é especificamente projetados para atender aos requisitos de "energia verde" da diretiva ErP, proporcionando pequeno tamanho, desempenho, robustez e economia, necessárias a muitas aplicações de energia a nível de placas de circuito.

As características padrão incluem filtragem para EN55022 Classe B, isolamento entre E/S de 3kVCA, regulação estável de +/- 0,5%, proteção contra sobrecarga, sobre a tensão, e falhas de curto-circuito, porém, o uso de fusíveis para proteção na entrada da fonte de alimentação, no caso, de 1A com ação retardada, é recomendado.

O MTBF é maior do que 330000 horas e tem uma entrada de Classe II (IEC61140). Isto significa que ele pode ser utilizado sem uma ligação à terra. É embalado em um pacote miniatura de montagem em PCI, sendo especificado para operação em uma vasta gama de temperaturas de ambientes funcionamento de -25 ° C a +60 ° C.

Neste mesmo bloco da “Fonte de Alimentação Avançada”, encontramos dois pequenos CIs MID400, que operam em conjunto, na função de “Detecção de Relé Atracado”.

O MID400 é um dispositivo de interface de linha CA para sinal lógico opticamente isolado. É embalado em uma DIP plastico de 8 pinos. A tensão da linha CA é monitorizada por dois diodos LED GaAs arranjados em antiparalelo, em série com uma resistência externa. Um circuito detector de alto ganho detecta a corrente do LED e aciona a porta de saída para um estado lógico baixo.

O MID400 foi concebido apenas para uso como um monitor de linha CA, recomendado em qualquer aplicação de controle de CA para CC, onde o isolamento óptico, a confiabilidade do estado sólido, a compatibilidade TTL, o tamanho reduzido, a baixa potência, e operações em baixa frequência são necessários. O monitoramento é feito via um resistor de 22kW na entrada (R8; R2).

Ambos os sinais de monitoramento gerados pelos dois CIs MID400 (que eu denominei DRA_L1 e DRA_L2) são enviados, via conectores do barramento Arduino (respectivamente, pelos pinos 3 e 2 de J1), para entradas digitais do microcontrolador (entradas IO2 e IO1 no diagrama ArduinoTM Uno Reference Designe), para serem, ambos, constantemente avaliados.


Se, após o relé principal (que é do tipo SSR) ter sido comandado para o ligamento, a fim de iniciar um processo de carregamento, qualquer um (ou ambos) desses dois sinais de monitoramento assumir o estado de nível lógico 0, o controle entenderá que existe uma falha, com a ausência de uma, ou de ambas as tensões de fases da CA na saída da EVSE. Em condições normais da operação de carregamento, ou seja, com o relé principal devidamente atracado e as tensões da CA de saída da EVSE presentes, os sinais DRA_L1 e DRA_L2 são mantidos em estado de nível lógico 1.

O bloco denominado “Falha de Corrente de Carregamento”, por sua vez, tem como importante função produzir em sua saída um sinal digital (denominado “Falha de Corrente”), que é levado a nível lógico alto, para informar o microcontrolador do sistema, caso ocorra uma falha por fuga de corrente para terra na saída da EVSE. Em condições normais, em que não exista tal falha, o sinal “Falha de Corrente” permanece em nível lógico 0.

Este tipo de proteção protege, principalmente, pessoas contra acidentes por choque elétrico, em ambas as fases na saída da EVSE. Todavia, se por um eventual mal funcionamento do carregador embarcado do VE, houver uma fuga de corrente para a terra, esta proteção, conhecida especificamente pelo acrônimo GFCI (Ground Fault Circuit Interrupter), também atuará. Um pequeno transformador especial, do tipo TC (transformador de corrente), é empregado como sensor para este fim.

O princípio de funcionamento do sensoriamento baseia-se no fato de que, em condição normal de operação (sem fuga de corrente alguma), a somatória da corrente que sai com a corrente que retorna, pelos dois pontos da saída CA da EVSE é zero. O arranjo físico da ligação do TC é montado de modo que os dois fios condutores da corrente de saída da EVSE, juntos, formam laços em torno do núcleo toroidal do TC, compondo, assim, aquilo que é o primário deste transformador.

Não havendo corrente de fuga para o terra, não há indução alguma no TC pois, para efeito de produzir campo magnético variável, as duas correntes se anulam. Porém, havendo uma corrente fuga para o terra, mesmo que pequena, da ordem de uns 10 mA, o batimento entre as correntes da CA que entra e que sai pelos pontos de saída da EVSE, já não se anulam mais completamente, surgindo uma diferença que corresponde, exatamente ao valor da corrente de fuga.

O surgimento de uma fuga de corrente para o terra, é típico de ocorrer quando alguém acidentalmente toca um dos pontos de saída da EVSE e, não estando adequadamente isolado da terra, resulta em um perigoso choque elétrico. Neste caso, o ramal de saída da EVSE precisa ser imediatamente desligado, desconectando ambos os cabos condutores da corrente. Isto é feito desligando-se o Relé Principal (que é SSR duplo). O diagrama ao lado ilustra estas duas situações:

Havendo falha por corrente de fuga, o TC cria uma pequena tensão CA, com a mesma frequência da CA da rede, em seu secundário. Este pequeno sinal de CA é enviado para o circuito amplificador (o primeiro Amplificador Operacional do bloco “Falha de Corrente de Carregamento”, que tem sua entrada protegida por um circuito de corte, que corta simetricamente os picos da forma de onda de aproximadamente a tensão dos diodos zener, com dois diodos zener (D5 e D6) ligados em série oposta.

Os semiciclos negativos que então surgem na entrada do amplificador, no ponto da junção dos resistores R20 e R17, produzirão pulsos positivos na saída do mesmo. Estes pulsos, rapidamente carregam o capacitor C9, via o diodo de sinal D3. O diodo D3 bloqueia o retorno, evitando que o capacitor C9 se descarregue.

Já, o capacitor C8 provê uma ação integradora ao amplificador, impedindo que eventuais ruídos espúrios de alta frequência sejam amplificados (filtro passa baixa).

Em seguida, a tensão do capacitor C9 é entregue à entrada não-inversora do circuito comparador de tensão (que é o segundo amplificador operacional), que tem em sua outra entrada (entrada inversora) uma tensão de referência de aproximadamente 0,83VCC, produzida no divisor de tensão formado pelos resistores R14 e R15.

Se a tensão sobre C9 (sinal do TC amplificado) for maior do que a tensão de referência, a saída do comparador vai a nível alto. A saída do comparador é enviada, via pino 1 do conector J1 (conector do barramento Arduino) para a placa controladora Arduino, chegando a uma entrada digital do microcontrolador (entrada IO0 no diagrama ArduinoTM Uno Reference Designe). Ao ler essa entrada digital, se ela estiver em nível lógico 1, o microcontrolador registra a interrupção e causa o desligamento imediato do relé principal, estabelecendo a proteção contra a falha.

Por óbvias questões de segurança operacional, não é recomendável que esse tipo de interrupção seja recuperável, automaticamente mas, exigindo, sim, uma interferência do operador, para que a operação normal de carregamento do VE possa ser retomada! Para isso, essa condição de falha é apresentada em alerta, no LCD colorido do sistema, enquanto o carregamento é interrompido, por tempo indefinido, até que alguém reinicialize a EVSE, pressionando um botão em seu painel.

O bloco denominado “Conversor +12V/-12V” é aonde a tensão de alimentação de 12VCC é comum, é reconvertida para fonte de saída simétrica, +12VCC e -12VCC, isoladas, a fim de alimentar o circuito que realiza a função de “PILOTO” da EVSE de protocolo SAE J1772;

Para obter-se as tensões simétricas isoladas, é empregado um Conversor CC-CC Subminiatura, da Murata Power Solutions, de potencia máxima nominal de 1W, o NKA1212SC, bloco padrão de construção para sistemas de energia distribuída, a nível de placa de circuito.

Esse conversor CC/CC oferece um envólucro de tamanho reduzido, com maior eficiência energética na conversão (81%), ondulação de saída menor e capacidade de isolamento 3kVCC através do emprego do estado da arte em embalagem e tecnologia. Ideal para fontes de alimentação duplas de tensões simétricas, em placas de circuitos híbridos analógicos/digitais, principalmente com o benefício adicional de isolação galvânica, para reduzir o efeito do ruído de comutação digital sobre a operação linear dos demais circuitos analógicos.

Apesar de possuir dupla saída, a potência nominal toda pode ser demandada a partir de um único dos pino da saída, desde que a carga total não exceda 1 watt.

Na prática, quando uma carga exige uma variação (aumento/redução) brusca de corrente (que ocorre devido as comutações dos circuitos alimentados, o amplificador de erro do conversor CC/CC satura e não consegue controlar adequadamente a malha. Isto acontece porque o transiente de carga ocorre mais rapidamente do que o amplificador de erro pode responde. Assim, o uso de um capacitor para filtrar a ondulação da tensão das saída (C6 e C7), precisa ser coordenado com o emprego de um indutor em série com a mesma (L1 e L2), eliminando a corrente transitória brusca, fazendo a malha de controle do conversor responder suavemente.

Às custas de uma maior ondulação na corrente de saída, indutor série de valor menor resulta em uma maior taxa de variação da corrente de saída, melhorando a resposta aos transitórios de carga do conversor. Por outro lado, indutor de valor maior causa diminuir a ondulação da corrente e reduzir as perdas de histerese do seu núcleo magnético. O indutor é escolhido em compromisso.

O designer pode reduzir o tamanho do capacitor de saída para economizar dinheiro e espaço na placa. A base para seleção do capacitor de saída é a ondulação de corrente e a ondulação de tensão permissíveis, bem como, considerações de estabilidade da malha.

A fonte simétrica +12V/-12V alimentará o funcionamento de um único componente: o Amplificador Operacional J-FET Duplo LF 353, usado no processamento da função “PILOTO”, que ocorre no bloco denominado “Piloto”. Como veremos, este é um bloco de operação relativamente complexa.

A função “PILOTO” é a função pertinente ao protocolo SAE J1772. A especificação técnica desta função foi descrita inicialmente na versão de 2001 da SAE J1772 e, posteriormente, na IEC 61851 que estabelece a sequência de detecção de conexão entre o PEV (Plug-in Electric Vehicle) e a EVSE.

A sequência de detecção de conexão entre o PEV e a EVSE é realizada, automaticamente, com o estabelecimento da conexão física do conector do cabo de energia/controle da EVSE ao PEV: O Conector SAE J1772.

O Protocolo SAE J1772 permite descartar a eletrônica de circuitos integrados mais complexos e caros, que são necessários para outros protocolos de carga, como o CAN Bus, usado com o CHAdeMO ou EnergyBus. O SAE J1772 é considerado robusto o suficiente para operação numa gama de temperatura de -40°C até +85°C, e se tornou padrão mundial em EVSEs e, obviamente, nos PEVs, que possuem, ou dois conectores (J1772 + ChaDeMo), ou um único conector COMBO (que engloba, em si, o J1772). Por isso, notadamente estações de carregamento de uso doméstico, com corrente de carregamento ≤ 80 Ampères, todas empregam, atualmente, conectores J1772.

O protocolo de sinalização J1772 foi concebido para que as funções de monitoramento e controle sejam realizadas em sequência, que começa com o veiculo detectando, automaticamente, a sua conexão com uma EVSE.

O Conector J1772 Macho possui um sensor do tipo micro-chave, embutido em seu corpo (ver diagrama elétrico de blocos da EVSE completa apresentado anteriormente), que atua quando este conector, que se encontra na extremidade final do cabo de energia / controle da EVSE, é manualmente engatado ao Portal de Carregamento do PEV (Conector J1772 Fêmea).

A micro-chave atua sobre o pino 5 do conector J1772 (sinal de controle denominado “Proximity Detector”), de modo que o Veículo Elétrico pode, então, “tomar ciência” de que ele está conectado a uma EVSE.

O veículo, então, entra em estado de “Bloqueio de Movimento”, enquanto permanecer conectado à EVSE, e o Controlador do seu Carregador Embarcado passará, agora, a considerar a informação que está contida na linha de sinal de controle denominada PILOTO, que está presente no pino 4 do conector J1772.


Aqui começa a funcionar o bloco denominado “Piloto”, na placa Shield Open-EVSE. De inicio, o bloco “Piloto”, pela atuação do IC2 (ADG419), coloca um sinal de tensão de 12VCC na linha de controle PILOTO, via o resistor de precisão R1 (1kW, 1%). Por colocar um sinal de tensão de 12V na linha PILOTO, a EVSE está sinalizando que ela está em estado de “Pronta”, podendo ser usada (ser conectada a um veículo elétrico e realizar o carregamento da bateria de tração dele).

Todavia, para compreender o funcionamento do protocolo, é importante notar que, mesmo antes do conector J1772 ser engatado, o sinal PILOTO já estava, previamente, internamente à EVSE e, em um valor de em 12V. Esta é a condição para que a EVSE sinalize que ela está “Pronta em Espera”, mesmo estando com o seu cabo de carregamento em aberto. A sinalização de “Pronta em Espera” só não ocorra, se houver, previamente, alguma falha interna na EVSE.

Então, mesmo com o conector J1772 desengatado, o sinal PILOTO está sendo realimentado, na própria placa Shield Arduino Open-EVSE, sendo “detectado” para ser avaliado, entregue a uma entrada analógica do microcontrolador da placa Arduino (sinal denominado ADC_PILOTO), passado pelo divisor de tensão, formado pelos resistores R7 (200kW) e R6 (100kW), em conjunção com o resistor R5 (56kW, que se encontra ligado a +5VCC).

A tensão lida pela entrada analógica do microcontrolador, com o conector J1772 desengatado do portal de carregamento do veículo e, com a EVSE “Pronta em Espera”, é de aproximadamente 4,54V, conforme pode ser verificado pela análise mostrada na figura ao lado:

Assim, a EVSE pode “saber” que, apesar dela própria estar “Pronta”, ela não tem, ainda, nenhum PEV conectado a ela.

Note que o CI ADG419 opera semelhante a pequenino relé de estado sólido (SSR), dotado de uma chave SPDT. Portanto, apenas duas situações existem para ele:

  • Põe em sua saída (D1) tensão de +12v, ou;
  • Põe em sua saída (D1) tensão de -12v.

Em ambos os casos, a tensão presente em sua saída, afetará a linha PILOTO, via o resistor R1.

O ADG419 é um interruptor SPDT linear (para sinais analógicos) com operação (comando de comutação) digital, compatível CMOS. Este interruptor é projetado em um processo LC2MOS (Linear Compatible Complementary Metal Oxide Semiconductor) melhorado, que fornece baixa dissipação de energia e ainda provê velocidade de comutação alta, baixa “resistência de contato” (On Resistance, RON=25W típico) e correntes de fuga baixas (da ordem de décimos de nanoampères).

O perfil da resistência sobre o ADG419 é muito plana sobre a faixa de entrada analógica completa (desde VDD até VSS), garantindo excelente linearidade e baixa distorção, além de ampla largura de banda do sinal. A construção CMOS garante dissipação de potência ultrabaixa, tornando esse componente ideal para instrumentos portáteis e movidos a bateria.

O comando de comutação (sinal IN, pino 6) é digital e seleciona para ligar ao D1 (pino 1) uma dentre as duas vias do interruptor (S1 ou S2). Ambas as vias do interruptor do ADG419 conduzem igualmente bem e em ambos os sentidos. Na condição de “via deligada” o bloqueio é bastante elevado. O emprego do ADG419 é relativamente recente, antes, resolvia-se aplicações típicas com emprego de um Amp. Op. de entrada a JFET.

A reação inerente ao protocolo J1772 que ocorre em seguida após a EVSE colocar 12V na linha PILOTO é devida a parte do circuito de controle / monitoramento da linha PILOTO, que se encontra embarcado no Veículo Elétrico. Assim, precisamos passamos a olhar o diagrama elétrico que é apresentado a seguir, e que representa o circuito completo que se forma quando o conector J1772 do cabo de uma EVSE se torna devidamente conectado, engatado ao portal de carregamento de um VE:


Aqui, o ADG419 está sendo representado como um relé (K2), dotado de um interruptor SPDT (contato reversível do relé K2), que existe do lado da “EVSE Controller”. A colocação de 12V em sua saída indicando “EVSE Pronta”, irá provocar, via resistor R1 (1kW, 1%), uma corrente via o diodo D1, causando uma redução da tensão para algo em torno de 8,3V no lado do catodo de D1 (que está no “Vehicle Contoller” embarcado no VE), ou seja, teremos efetivamente 9V na linha PILOTO, devido ao divisor de tensão formado por R1 + R3 (R3=2,74kW, 1%).

Existe um certo grau de dificuldade para se enxergar o referido divisor de tensão pois, R1 está de um lado do sistema (na “EVSE Controller”) e, R3 está do outro lado do mesmo (no “Vehicle Contoller”) e, ainda mais, o diodo D1 encontra-se no meio, entre eles.

Importante ressaltar também que, neste momento, o estado do interruptor K1 (que também está no “Vehicle Controller”), ainda é o de DESLIGADO ou aberto (estado original que ele já tinha, antes mesmo do Conector J1772 ser engatado) pois, ele é um contato N.A..

A tensão de 8,3V do catodo de D1 é então detectada pelo detector (representado pelo buffer inversor) que existe no controlador do Carregador Embarcado do veículo, e isso informa a esse controlador, que a EVSE ao qual ele havia se conectado (quando atuou a micro-chave embutida no corpo do conector) está “Pronta” para fornecer energia.

Concomitantemente, já do lado da EVSE, devido ao engatamento do conector J1772 da EVSE “Pronta” ao portal de carregamento do PEV, o sinal ADC_PILOTO irá cair, dos anteriores 4,54V para, aproximadamente, 4,08V, e neste valor se manterá, enquanto na linha PILOTO na linha houver 9V nominais (8,94V, segundo simulação apresentada na figura a seguir):

Com ADC_PILOTO igual a 4,08V, o microcontrolador da placa Arduino sabe que agora a EVSE tem um PEV conectado a ela mas, ele sabe também que aquele PEV ainda não esta efetivamente demandando corrente de carregamento, até mesmo porque, a EVSE precisa, antes, informar ao PEV o valor da Corrente Máxima que estará disponível para o carregamento.

Assim, uma vez que a tensão de 4.08V já foi encontrada pelo microcontrolador como estando presente no ADC PILOTO, o microcontrolador pode passar, agora, a liberar o sinal de saída Piloto_1kHz, que é o sinal PWM cujo ciclo de trabalho serve para informar o PEV sobre a Capacidade  de Corrente Máxima para o carregamento.

A partir deste momento, o carregamento poderá começar imediatamente, ou não: isso agora é uma decisão exclusiva do veículo.

Apesar do veículo já saber que ele está conectado à uma EVSE e que esta EVSE se encontra pronta para fornecer uma determinada Corrente Máxima, ele pode fazer com que o carregamento seja adiado e, com isso, o sistema PEV-EVSE fique aguardando o inicio da operação, dependente de uma ordem do carro.

Esse recurso do protocolo J1772 é muito útil para quando você fizer a começão do seu PEV à sua EVSE logo que chegar à sua casa, entre o fim da tarde e o início da noite, quando costuma ser o período do dia de maior demanda quanto a consumo de energia elétrica: o chamado “horário de pico”.

Para isso, basta você parametrizar de antemão, a IHM no painel do seu carro, escolhendo uma hora propícia para inicio de carregamento, por exemplo, as 23hs.

Assim, ao chegar em sua garagem as 18hs 30min, por exemplo, você já pode conectar o carro para carregamento, imediatamente e, simplesmente esquecê-lo. O carregamento só iniciará, automaticamente, as 23hs, com a autorização dada pelo próprio carro à EVSE.

Além do mais, nenhum distraído conseguirá sair com seu carro enquanto ele aguarda o momento de iniciar o cargamento sem, antes, cuidadosamente ter que remover o conetor J1772 pois, o carro fica imobilizado com o conector engatado. Tudo muito bem bolado.

Se houver uma queda da energia da rede elétrica da residência enquanto o sistema esta neste estado de Carregamento em Espera, após o problema da queda de energia ser sanado, a EVSE retorna a essa mesma condição, automaticamente.

Quando o carro decide ordenar o inicio do carregamento, por ativar o relé de comando K1, isso provoca nova alteração na linha PILOTO, informando a ordem à EVSE e a ela caberá responder ligando, em fim, o relé principal.

A EVSE só não o acatará a ordem de iniciar o carregamento dada pelo PEV, caso ela entre em alguma das condições de falha:
  • Fuga da corrente de carregamento para a terra;
  • Falta de uma ou de ambas as fases na Saída (ou do GND, aterramento PE);
Todavia, convém lembrar que, para que o carregamento efetivamente aconteça caberá, ainda, a EVSE, informar ao PEV sobre qual é o limite máximo de corrente que ela pode fornecer pois, sem essa informação, o carregador embarcado do veículo, mesmo tendo ordenado o inicio do carregamento, efetivamente não consumirá corrente.

O modo como o PEV informa a EVSE a ordem de início de carregamento é, também, por manipular a tensão do sinal presente na mesma linha de controle PILOTO. Quando o carro quer que o carregamento inicie, o controlador do seu carregador embarcado causa o fechamento do contato N.A. de relé de comando K1 do protocolo J1772 (no lado do “Vehicle Contoller”), inserindo, assim, no circuito de sinalização PILOTO, o resistor R2 (1,3kW, 1%).

Com com o ligamento de K1 e a consequente inserção do resistor R2, a tensão presente na linha de controle PILOTO, novamente é modificada, diminuindo ainda mais, conforme mostra a figura a seguir, relativa a simulação do circuito: temos agora 5,96V na linha PILOTO (6V nominais), resultando em 3,63V de tensão presente em ADC_Piloto que será lida pela entrada analógica do microcontrolador da placa Arduino.

Ao ler o atual valor de tensão presente em ADC_Piloto, a EVSE passa a saber que ela terá que acatar a ordem de iniciar o carregamento, de modo que ela deverá ligar o relé principal (o relê de potência) da EVSE, liberando a corrente para o carregamento da bateria do VE.

Todavia, antes disso, a EVSE precisa informar o controlador do carregador embarcado do VE sobre a sua limitação quanto a capacidade dela em fornecer corrente para o carregamento.

Para fazer isso, ela comuta o relé (virtual) K2. A comutação do relé K2 afeta, mais uma vez, o sinal presente na linha de controle PILOTO. O sinal presente na linha PILOTO modifica-se completamente: ao se comutar K2 e a EVSE passa a enviar pela linha PILOTO um sinal de trem de pulsos de forma de onda retangular de amplitude 24 Vpp (+12V ~ -12V) e de frequência fixa de 1kHz, ao invés de tensão contínua, o que significa que a fonte de tensão CC V2 deixa de existir e no seu lugar entra o gerador desta função de trem de pulso.

Este sinal de trem de pulsos de forma de onda retangular e de frequência fixa de 1kHz, transportará, em si mesmo, a informação sobre o valor da máxima corrente que a EVSE poderá estar fornecendo ao carregamento do veículo. É muito importante que o PEV saiba sobre esse valor limite e o respeite, para não causar sobrecarga na instalação da EVSE.

Apenas reflita: existem estações públicas de carregamento, conhecidas Carregadores Rápidos, Carregadores Super Rápidos e Carregadores Ultra Rápidos, os quais operam o carregamento da bateria de tração dos PEVs em correntes da ordem de 200 Ampères, 300 Ampères, 500 Amperes, etc. De fato, tais carregadores sequer usam os mesmos pinos 1 e 2 do conector J1772 para conduzir corrente de carregamento: eles exigem, ou o conector ChaDeMo, ou conector Combo (que contém, em si, a mecânica do J1772, porém, com dois pinos extra, estes fisicamente bem maiores, os quais tais estações de alta potência usam para transferir energia).

Estas estações de carregamento requerem ser alimentadas diretamente a partir de rede elétrica CA, mas que também é especialmente dimensionada, para a potência elevada em questão, para a qual as especificações do padrão de entrada de abastecimento CA dos imóveis do tipo residenciais, consumidores individuais, não suportam, não dispõem de capacidade e, normalmente, nem sequer poderão ser autorizadas pelas concessionárias de distribuição de energia a poder dispor. Estas super estações operam carregamento do VE diretamente com uma tensão já  convertida em CC, e eles custam dezenas de milhares de dólares.

Mas o que eu quero mesmo chamar a atenção é para o seguinte: a grande maioria dos VEs está, então, habilitada a consumir, sob carregamento, correntes elevadas da ordem centenas de Amperes. Por norma o protocolo SAE J1'772 define um limite para corrente de carregamento de no máximo 80A. Mas a realidade é que a grande maioria das Instalações Elétricas Residenciais existente atualmente, principalmente aqui no Brasil, teria SÉRIOS PROBLEMAS DE RISCOS DE INCÊNDIOS POR SOBRECARGA ELÉTRICA, ao receber um novo consumido interno, deste porte (220V, 80A), sem que fosse executada, antes, uma boa avaliação que resultasse  numa consequente reforma (com adequada substituição do elementos condutores e de manobra e proteção pertinentes).

220V, 80A ... Isso equivale aproximadamente a demanda de carga de três chuveiros elétricos comuns, funcionando simultaneamente. Portanto, os riscos de sobrecarga nas instalações elétricas devem ser cuidadosamente considerado e verificado. Caso contrário, o sonho de ter um Veículo Elétrico sendo carregado na sua própria garagem pode reverter em um eventual pesadelo de você perder o seu imóvel   por causa de um incêndio.

Eu costumo insistir neste assunto pois, em países pioneiros na tecnologia de carregamento doméstico de VEs, alguns casos de eventos sinistros assim já foram registrados e, gostemos nós de saber disso ou não, por mais que existam regulamentações, na prática, as instalações elétricas residenciais brasileiras acabam sendo pouco confiáveis. Assim, o fato da EVSE informar ao PEV sobre o limite de capacidade de corrente e, o PEV respeitar esse limite, é algo fundamental para a segurança da operação de carregamento dos VEs.

A seguir, os dados a respeito da característica da limitação de corrente (corrente máxima) de carregamento no protocolo J1772 é apresentada, em dois diferentes formatos, tabela e gráfico:


Como como ser constatado, a informação da corrente máxima está contida no Ciclo de Trabalho do sinal de trem de pulsos de forma de onda retangular de frequência fixa de 1kHz.

Ciclo de Trabalho, as vezes denominado, também, Razão Cíclica, de um sinal elétrico pulsante, geralmente de forma de onda retangular, é utilizado para descrever a razão entre o tempo em que o sinal está em um estado "ativo", geralmente em nível alto, e o tempo total da duração de um ciclo completo (ou período). Este parâmetro, usualmente, é expressado em porcentagem (%):




O termo Ciclo de Trabalho, está comumente associado a Modulação por Largura de Pulso, mais conhecida pela sigla em inglês PWM (Pulse Width Modulation) que é um processo envolve a modificação de um sinal eletromagnético inicialmente gerado, antes dele ser transmitido para um receptor, de forma que ele possa se comportar como uma portadora, transportando uma informação variável amostrada, cujo valor é proporcional à largura dos pulsos, ou seja ao ciclo de trabalho.

Deste modo, uma EVSE poderia assumir o controle da demanda de corrente no processo de carregamento da bateria de tração de um PEV, fazendo com que essa varie, pela ação de um PWM.

Todavia não é isso que ocorre, ainda, nas EVSEs atuais. O controle da demanda de corrente fica, totalmente a cargo exclusivo do controlador do carregador embarcado do veículo. A EVSE se restringe a ter apenas que informar o valor da corrente máxima que ela suporta. Não existe PWM, nas EVSE atuais. A largura do pulso do sinal de onda retangular de frequência 1kHz é fixa, ou seja, o ciclo de trabalho não varia, é sempre o mesmo, informa sobre a corrente máxima, nada mais.

A corrente máxima da EVSE é um parâmetro com valor definido ao nível do firmware do microcontrolador da placa Arduíno e, em geral, nem sequer pode ser modificado pelo usuário / operador. O microcontrolador produz em uma das suas saídas digitais (que eu denominei no diagrama da placa EVSE Shileld de “Piloto_1kHz”), o sinal de frequência fixa de 1kHz, que terá um ciclo de trabalho também fixo, definido pelo valor de corrente máxima que se quer representar.

Por exemplo, em uma EVSE com capacidade de corrente máxima definida para 45A, um algoritmo adequado fará o microcontrolador da placa Arduino produzir naquela saída digital um sinal de 1kHz, com ciclo de trabalho de (45 / 0,6)% = 75%. Este sinal é enviado a partir da placa Arduino para a placa EVSE Shield, e chega à entrada IN (pino 6) do IC2 (ADG419).

O desenvolvimento de melhorias que propiciem o carregamento inteligente dos veículos elétricos é uma meta permanente e, existir possibilidades para um maior poder de controle por parte da EVSE, por meio, por exemplo, do emprego da técnica de PWM sendo utilizado para variar o valor da transferência de potência entregue no carregamento.

Porém, eu, particularmente, não creio que isso venha a ocorrer nas EVSEs domésticas pois, todas as possibilidades mais interessantes de controle a serem implementadas, como por exemplo, a de se poder regular a corrente de carregamento ao longo do dia, reduzindo-a ao minimo nos horários de pico de demanda e aumentando nos horário de mais baixo consumo, pode ser feita pelos controladores que ora já estão presentes nos próprios PEVs, dotados, inclusive, um relógio de tempo real, que é necessário para isso, enquanto a EVSE doméstica típica, não o tem.

Uma tendência futura aponta para EVSEs com capacidade de operar em modo reverso, ou seja, no caso de uma eventual falha do sistema de distribuição de energia na rede elétrica, o ramal de ligação do imóvel é desconectado da rede pública, e a EVSE opera a conexão com o PEV, se este estiver presente, para que sua bateria alimente, de modo emergencial, os consumidores ligados a instalação elétrica da residência. Para isso, os carregadores embarcados nos veículos precisam ser bidirecionais e, de fato, muitos já o são.

Enfim, a curto prazo, as inovações visando carregamento inteligente de veículo, não devem afetar EVSE J1772 domésticas, que são, essencialmente, estações de carregamento de veículos elétricos para fins de emprego popular e, o seu custo precisa ser mantido o mais baixo possível, para ser competitiva, vantajosa para cada usuário de PEV desejar ter a sua própria em casa.


Na figura a seguir, tem-se um diagrama que apresenta uma visão geral de todo o contexto de carregamento dos VEs:




Assim, se você, precisar de uma EVSE J1772 220V, nas opções de corrente máxima de:
  • 30 A (ideais para carregamento de PEVs dotados de carregadores embarcados de até 6,6 kW), ou;
  • 45A (ideais para carregamento de PEVs dotados de carregadores embarcados de até 9,9 kW), ou;
  • 75A (ideais para carregamento de PEVs dotados de carregadores embarcados de até 16,6 kW);
Por, favor, me contate para um orçamento: eu monto o equipamento na versão mais recente e o instalo em poucos dias, dando-lhe garantias de instalá-lo adequadamente em seu local de residência ou trabalho, dentro dos padrões das normas técnicas brasileiras e internacionais pertinentes. Isso, pelo menor custo possível.

Na verdade, o Custo Total de Propriedade (os materiais mais os serviços, até o fim do comissionamento) é muito mais dependente das condições atuais da instalações elétricas do imóvel, que irá receber a EVSE, do que da capacidade de potência da EVSE escolhida. Isso precisará ser avaliado por rápida inspeção prévia no local.

Se a instalação elétrica da residência for propícia, uma EVSE de 30A montada, instalada e comissionada, pode sair por até R$ 2.500,00.

A placa EVSE é uma expansão (shield) para Arduíno. A versão mais recente do Arduino é a versão Uno Rev. 3, de modo que, o leiaute dela deve ser elaborado considerando o leiaute preexistente da Arduino, que é apresentado na figura a seguir:




Essa dissertação será retomada e continuará, na parte 4, em breve, assim que Deus permitir. Talvez demore um pouco pois, eu estarei, por esses dias, "tentando aprender" um novo CAD para desenvolver a PCI dessa expansão Arduino para EVSE: O Eagle CAD (novo para mim). Caso você se interesse também, comece olhando esse tutorial: How to make an Arduino shield with Eagle CAD – Tutorial


Eu publiquei a 1ª Parte do  meu próprio tutorial sobre uso da ferramenta EAGLE CAD aqui, pelo EBAh:

sábado, 6 de outubro de 2012

Projeto de Lei Pretende Regulamentar a Comercialização de Energia Elétrica para Veículos Elétricos


Projeto de Lei Pretende Regulamentar a Comercialização de Energia Elétrica para Veículos Elétricos

O Projeto de Lei (PL) 3895/12 do deputado Ronaldo Benedet (PMDB-SC), que se encontrava na fila para apreciação e votação da Câmara dos Deputados Federais desde 22/05/2012, e que pretende regulamentar a comercialização de energia para carros elétricos no país, dispondo sobre a atividade de revenda varejista de eletricidade para abastecimento de veículo automotor elétrico ou elétrico híbrido, recebeu a designação de um relator em 03/04/2013, o Dep. Dudimar Paxiuba (PSDB-PA), na comissão de Minas e Energia.

Em 10/04/2013 o Projeto de Lei (PL) 3895/12 recebeu de seu relator parecer favorável, pela aprovação. Veja o teor do parecer, na integra aqui: Comissão de Minas e Energia - Projeto de Lei 3.895/2012 - Relatório.

Conforme a proposta, a ideia é criar a figura do revendedor de energia para exercer essa atividade, que poderá ser exercida, tanto por concessionárias, quanto por permissionárias da rede pública de distribuição de energia elétrica ou por revendedor varejista de eletricidade, que venha a ser registrado na Agência Nacional de Energia Elétrica (Aneel).

A proposta estabelece, ainda, que o revendedor varejista poderá produzir, total ou parcialmente, a energia elétrica que comercializar.

O deputado Ronaldo Benedet, corretamente, argumenta que os automóveis do futuro serão Veículos Elétricos, e a falta de uma legislação específica, sobre a venda de energia com esta finalidade, poderá comprometer, ou limitar, as possibilidades implantação dos veículos elétricos..Na avaliação do autor, o projeto tem por objetivo suprir a ausência na legislação brasileira, da regulação de venda de energia elétrica para fins automotivos: “Sem regras definidas, é possível que ocorra uma limitação nas possibilidades de abastecimento desses veículos”

Tramitação:

A proposta tramita em caráter conclusivo e deve estar sendo analisada por ambas as comissões, a de Minas e Energia; e a de Constituição e Justiça e de Cidadania. A situação atual do PL 3895/12 é: "Aguardando Deliberação na Comissão de Minas e Energia (CME)".

Um ponto interessante que eu pude perceber nele, é que o revendedor varejista vai poderá também produzir, total ou parcialmente, a energia que for comercializar. Dessa forma, as concessionárias de energia poderão atuar também no setor automotivo, criando postos de recarga ou dispositivos de cobrança com esse objetivo.

A Comissão de Minas e Energia (CME) da Câmara deve estar, atualmente, se preparando para votar o relatório do deputado Arthur Maia (BA) sobre o PL 3895/2012, que regula a atividade de revenda varejista de eletricidade para o abastecimento de carros elétricos ou híbridos.

Apesar de eu ainda não entender claramente o que são e, no que diferem entre si, exatamente, "concessionárias" e "permissionárias" no contexto deste PL pois, eu não li ainda, detidamente, a íntegra da proposta, eu já posso adiantar que eu concordo plenamente com o autor, quando este diz que "automóveis do futuro serão elétricos. São veículos que contribuirão decisivamente para a melhoria da qualidade de vida nas grandes cidades, pois são silenciosos e não emitem gases poluentes”,

Todavia, outra dúvida que eu tenho, é se o nobre deputado esta preocupado com a limitação do ABASTECIMENTO de energia nas baterias de tração dos VEs ou, se a preocupação é com o ABASTECIMENTO de VEs no mercado consumidor automotivo brasileiro (coisa que ainda inexiste, ou melhor dizendo, as grandes montadoras de automóveis não trarão, efetivamente, seus VEs para serem vendidos, e muito menos montados, cá no Brasil, enquanto não houver a tal legislação).

Eu estou aberto a ser esclarecido por comentários, aqui mesmo neste blog mas, particularmente, eu penso que mais do que apenas "regulamentação do comércio de energia de abastecimento", os VEs não chegarão aos motoristas residentes no Brasil, enquanto não for criada uma política mínima de incentivos, de ampla abrangência para o contexto dos VEs.

Vale lembrar que pela mesma época em que o PL 3895/12 foi originalmente criado, o Sr. João Paulo dos Reis Velloso, Coordenador-Geral do Fórum Nacional., assinava mais uma pesquisa do INAE - Instituto Nacional de Altos Estudos, em que era apontado como uma das Áreas de Grandes Oportunidades Brasileiras, a Estratégia de Implantação do Carro Elétrico (em paralelo com os Biocombustíveis). Eu particularmente penso que VEs são a grande sacada dessa primeira metade do século XXI.

Todavia, todos já sabem que em nosso país, o lobby do álcool tem barrado os incentivos ao carro elétrico e tem obrigado os governos a ficarem do lado deles,.na hora de decidir, se investe na tendência mundial dos carros elétricos que já tem, não apenas projetos mas produtos avançados, ou no etanol. Pena que, mais uma vez, essa seja uma escolha decisiva errada, prejudicial ao futuro do país.

Entre 2009 e 2010, o então (atualmente extinto) Grupo de trabalho no Brasil, formado por montadoras e BNDES, fez um amplo estudo sobre as vantagens destes veículos e apresentou a Lula, porém, nada de concreto foi levado a cabo pelo governo.

Como verdade histórica, ficou o fato de que, podem existir vários motivos justificáveis, para o governo federal ter tirado o projeto do carro elétrico brasileiro da tomada mas, o que não pode ser alegado, é que faltaram informações.

O grupo de trabalho para avaliar o assunto, era composto por diversas entidades e esteve no Banco Nacional do Desenvolvimento (BNDES), onde subsidiou o governo federal com um arsenal de números, dados e perspectivas, que convergiam sempre para a mesma questão: o carro elétrico, ou mesmo híbrido, só daria (dará) a partida de fato com apoio do governo federal – que chegou a falar em incentivos ao segmento, mas acabou, por fim, recuando.

Siga ligação para obter, como eu obtive, acesso à integra da proposta atual do projeto de lei em questão: PL 3895/12

Mas Antes de deixar esta página, veja que ironia (ou lógica causa-efeito) do sistema!

Enquanto nós aqui nos enrolamos todos, por quase 5 meses já, com um Projeto de Lei de apenas dois parágrafos, lá dos EUA, sobre exatamente a mesma questão, nos chega a seguinte notícia:

"Fabricante de carro elétrico espalhará postos gratuitos nos Estados Unidos"


A fabricante americana de veículos elétricos Tesla Motors anunciou que vai espalhar postos de abastecimento (Estações Públicas de Abastecimento de VEs) nos Estados Unidos, nos quais os motoristas poderão carregar seus carros gratuitamente, conforme relata o site da Forbes.


Essas centrais de abastecimento, no entanto, servirão apenas para um dos modelos da Tesla, o Model S.

Em dois anos – isso não é exagero – em dois anos nós vamos cobrir quase inteiramente os Estados Unidos de ‘superchargers’ (os postos de abastecimento) e você vai poder viajar praticamente para qualquer lugar (do país)”, afirmou o presidente da empresa, Elon Musk. Ele disse que planeja, mais para frente, instalar postos na Europa e na Ásia.

Hoje, um dos problemas de quem tem carro elétrico é a escassez de postos. “As pessoas têm a ideia de que se você tem um carro elétrico, não há liberdade; você está preso”, disse o executivo. Sua intenção é de que, com os postos gratuitos, as pessoas “tenham mais liberdade do que com qualquer outra coisa”.

A Tesla Motors vem se firmando como uma das "novas marcas" mais promissoras. Interessante novidade do cenário automobilístico mundial, inclusive no aspecto tecnológico.

Apesar dela ter nascido do mais genuíno ventre da mobilidade elétrica, ela tem se caracterizado por apostar em carros especialmente potentes e, cada vez mais potentes (e luxuosos). Há uma postagem tecnicamente bem abrangente sobre o novo Tesla Modelo S, bem aqui mesmo, neste blog.

Com toda certeza, há e haverá, sempre, uma fatia generosa de mercado para essa linha de produto, contudo, obviamente, não será com ela (talvez através dela mas, não com ela), que os VEs irão se popularizar mundo afora.

Assim, eu, particularmente, continuo acreditando muito mais num carro tipo "padrão Nissan Leaf" para o mercado norte-americano real, nessa primeira metade do século XXI e, continuo apostando na segurança e no conforto do cotidiano, que são propiciados pelo fato de todo motorista de VE poder ter a sua própria estação de carregamento em sua casa.

Claro que poder viajar distâncias maiores do que 200 km sem precisar ter que "armar uma verdadeira operação de segurança militar" é importante para todos, porém, a preocupação com a mobilidade do dia a dia é maior em prioridade, para o motorista médio mundial.

Mesmo que a estação de carregamento doméstica não seja uma "super-ultra-mega-extra charger", que carregue a bateria do seu VE em 15 minutos (talvez 12 min., e prejudicando, DE FATO, a vida útil dela), poder fazer o carregamento da bateria do sistema de tração de um VE médio, em sua própria casa, com caga total em tempo decorrido de 3 ~ 6 hs, deixando o carro descansando na garagem, para iniciar a carregar automaticamente, a partir das 23hs00min (ajudando, assim, o país, na redução do famigerado horário de pico de consumo de energia elétrica), automaticamente, isso sim, é a "pedra de toque" para a "popularização" dos carros elétricos, em qualquer mercado do mundo.

Quem viver, verá! No entanto, obviamente que, Estações Públicas de Abastecimento de VEs, quanto mais, melhor!! Os norte-americanos (estadunidenses, como dizem os portugueses, alias portugueses mais enfronhados em VEs do que nós brasileiros) que o digam! Independente delas "matarem precocemente" as baterias (fazer o quê?), elas são desejáveis e necessárias. O site da AFDC - Alternative Fuels Data Center do governo norte-americano, apresenta, organizadas por Estado, o número de todas as Estações Públicas de Abastecimento de VEs existentes por lá, além de mapas e gráficos que mostram os dados de transporte e tendências relacionadas a combustíveis alternativos e veículos. Confira!

Sem mais para o momento

atenciosamente.

ALLenz

sábado, 29 de setembro de 2012

Arduino Uno (ou Duemilanove) Aplicada ao Controle de Estação de Recarga Doméstica (SAE-J1772, CA, Nível 2) - Parte 2

Aqui começaremos a PARTE 2 deste artigo! Se preferir voltar a PARTE 1, eis o linque de ligação:

O Arduino Uno (ou Duemilanove) Aplicado a uma EVSE (SAE-J1772 CA Nível 2) - Parte 1


Se desejar contextualizar melhor com o básico Equipamento de Abastecimento de Veículo Elétrico, veja estas postagens anteriores:

EVSE - Electric Vehicle Supply Equipment (Equipto de Abastec. de Veículo Elétr.) - Nível 1 e 2



Open-EVSE:

O termo Open-EVSE (em inglês, Open-Electric Vehicle Supply Equipment), em geral, refere-se a uma placa de extensão (shield) para plataforma Arduino específica. Porém, pode também referir-se a um conjunto de diferentes shields de Arduino em separado, como, por exemplo:

  • Uma shield de Fonte de Alimentação Avançada (que além de prover a tensão CC de 12V para alimentação geral do controle, ainda faz a função de Monitoramento da(s) Presença(s) da(s) Tensão(ões) de Fase da Rede CA após o Relé Principal (Monitor de Relé Principal Atracado) e;
  • Uma segunda shield que faz a função de interface para o restante das funções do controle, tais como:

    ☻Interrupção da Corrente de Carregamento por Falha de Terra (conhecido em inglês pelo acrônimo GFCI);

    ☻Processamento da função Piloto (incluindo aqui a Conversão CC/CC para obter saídas de tensão de alimentação CC simétricas, de +12V e de -12V, isoladas);

    ☻Acionamento da(s) “bobinas” do(s) Relé(s) Principal(is);

    ☻Interação entre a máquina e o operador humano, com o emprego de um LCD Multicolorido (RGB), que apresenta 2 linhas x 16 caracteres e com um teclado de 5 cinco teclas. A mudança da cor do fundo do LCD é usada para produzir sinalização luminosa de estado e alertas, pertinentes ao estado da operação da EVSE, quanto ao protocolo SAE J1772, dispensando o emprego de um LED RGB extra.

Apesar deste ser um projeto bastante simples, ele é de grande importância estratégica no contexto das políticas de Veículos Elétricos pois, a Open-VSE ajuda, bastante, a promover a popularização dos carregadores domésticos para VEs, para carregamento de veículos compatíveis com o conector e protocolo tipo SAE-J1772 (ou seja, praticamente TODOS os VEs atuais).

Não obstante a relativamente grande oferta de suporte documental ao projeto de Open-EVSEs, deve-se ficar atento e ter cuidados com alguns erros e omissões que atualmente aparecem nas documentações apresentadas, como por exemplo, diagramas de ligação de blocos que se referem a Open-EVSE versão 2 (com fonte avançada, ou seja, com detecção de relé principal atracado) que, no entanto, não mostra os dois sinais digitais de monitoramento de atraque do relé principal sendo enviado da Shield da Fonte Avançada para a placa controladora Arduino.

Assim, estaremos propondo aqui, um projeto (até onde eu sei) renovado e, ao que me parece, inédito em publicação, até aqui , no qual comporemos uma “nova shield” para a plataforma Arduino, dedicada a aplicação de EVSE, para ser uma Shield Única, ou seja, uma shield que englobe a função de fonte avançada, juntamente com todas as demais funções de interface para o restante das funções do controle e de interface humana (que descritas pouco acima), em uma placa única, que é plugada plugada diretamente a placa controladora Arduino.

Assim, mesmo o diagrama de blocos da EVSE apresentado na nossa postagem anterior, apesar de não estar errado, passa a se torna inconveniente na sua forma e precisa ser refeito, conforme a nova versão mostrada abaixo:


No entanto, antes de nos aprofundarmos em detalhes sobre a Shield Open-EVSE que está sendo proposta, vejamos, apenas, alguns comentários, pertinentes a diferenciação entre o Arduino 2009 e o Arduino UNO e outros detalhes sobre comunicação e programação deles.

O Arduino UNO é a última versão do Arduino que é Padrão atual da plataforma Arduino. Este veio cerca de um ano depois do Duemilanove (2009) e, devido a essa defasagem de tempo, apesar de ambas usarem absolutamente o mesmo microcontrolador principal, o Atmega 328, o Arduino UNO se diferencia do Arduino 2009, apenas por um pequeno detalhe de hardware: na parte de comunicação ele usa um microcontrolador em separado, o ATmega8U2, ao invés do FTDI, presente no Arduino 2009. O FTDI de comunicação do Duemilanove não é programável.

FTDI é um acrônimo para Future Technology Devices International, que é uma empresa escocesa criadora de dispositivos semicondutores, especializada em tecnologia USB. Ela desenvolve, manufatura e da suporte a dispositivos e seus programas e drivers relacionados a conversão de RS-232 ou TTL para sinais USB, permitindo que hardwares seriais antigos sejam compatíveis com computadores mais recentes. Como desenvolvedora de circuitos integrados para aplicações específicas, a principal fonte de serviço da companhia é o FTDI Chip, um circuito integrado que é um dispositivo comum encontrado em microcontroladores, tais como na plataforma Arduino 2009.

Já, o microcontrolador RISC ATmega8U2 pode ser reprogramado a partir do terminal de 6 furos logo acima do chip principal Atmega 328 da UNO (destaque em vermelho na figura ao lado). Isso dá mais poder e flexibilidade à projetos avançados, pois possibilita o Arduino UNO trabalhar com qualquer dispositivo USB, como teclados e mouses, em aplicações usando os USB HID API complexos. Isso tornou, consequentemente, a operação de gravação de programas no UNO mais rápida do que era, antes, no Duemilanove.. Isso é uma vantagem interessante pois, quando estamos fazendo sucessivos testes e modificações em no programa (esboço), esperar os LEDs verdinhos (TX-RX) do Arduino pararem de piscar, parece durar uma eternidade.

No caso da última revisão da placa Uno, o microcontrolador dedicado da comunicação USB passou a ser o Atmega16U2, ao invés do 8U2 encontrado no Uno original (ou o FTDI encontrado em gerações anteriores). Isso permite taxas de transferência ainda mais rápidas e mais memória. Não há drivers necessários para Linux ou Mac (inf para o Windows é necessário e incluído no IDE Arduino), e a capacidade de ter o Uno mostrar-se como um teclado, mouse, joystick, etc

A placa Uno R3 Uno também adiciona os pinos SDA e SCL  próximos ao AREF (compare foto anterior, que é uma placa Uno anterior ao R3, com a foto Uno R3 que virá seguir). Além disso, há dois pinos de novas colocadas perto do pino de RESET. Um deles é o que permite que os IOREF escudos para se adaptar à voltagem fornecida a partir da placa. O outro é um não conectado, e é reservada para efeitos futuros. O R3 Uno trabalha com todos os escudos existentes, mas pode se adaptar a novos escudos que usar esses pinos adicionais.

Arduino é uma plataforma open-source de computação física baseada em uma simples placa I / O e um ambiente de desenvolvimento que implementa o processamento / linguagem fiação. Arduino pode ser usado para desenvolver independentes objetos interativos ou pode ser conectado ao software em seu computador (por exemplo, Flash, Processing, MaxMSP). O IDE de código aberto pode ser baixado gratuitamente (atualmente para Mac OS X, Windows e Linux).

O Arduino Uno R3 requer a pasta de drivers Arduino 1,0 para instalar corretamente em alguns computadores. Testes confirmaram que a Uno R3 pode ser programada em versões mais antigas do IDE Arduino. No entanto, a primeira vez usando o R3 em um novo computador, você precisará ter Arduino 1.0 instalado na máquina.

Todavia, nada disso implica em nenhuma outra diferença que mereça maior preocupação. O Arduino Duemilanove não tem diferenças de software com o Arduino UNO e, assim, é 100% compatível para qualquer situação que o UNO possa enfrentar. Então, na prática, eles são exatamente iguais, exceto pelo detalhe da comunicação via USB: o Uno usa um chip de comunicação serial USB mais novo, que pode ser programado para funcionar como USB HID (Human Interface Devices).

Universal Serial Bus (USB) é uma arquitetura de comunicações que proporciona um subsistema computadorizado a capacidade de interligar uma série de dispositivos utilizando um cabo de 4 vias simples. O USB é, na verdade, um laço de comunicação serial a dois fios que funciona em ambos velocidades, 1,5 ou 12 Mbits/s (MB).

Protocolos USB pode configurar dispositivos na inicialização ou quando eles estão conectados em tempo de execução. Estes dispositivos são divididos em classes de dispositivos diversos. Cada classe de dispositivo define o comportamento comum e protocolos para dispositivos que servem funções similares. Alguns exemplos principais de classes de dispositivos USB são a seguintes:

  • Exibição (ex.: Monitor);
  • Comunicação (ex.: Modem);
  • Áudio (ex.: Alto-falantes);
  • Armazenamento de Massa (ex.: Pen drive);
  • Interface Humana (ex.: Luva de dados).

Então, com as placas Arduino mais novas, não apenas a UNO e a atual Uno R3, como também a recém-lançada Arduino Leonardo, graças ao ATmega8U2 (Atmega16U2, no caso da Uno R3 e Atmega 32U4 no caso do Leonardo), podemos usar uma ATmega8 para ler sinais de controle e fornecer conectividade USB, com a pilha V-USB, enumerando cada dispositivo como um dispositivo HID.

Isso provê algumas características muito interessantes, principalmente a capacidade da placa controladora Arduino poder agir, por exemplo, como um teclado ou mouse USB. Este recurso não é exclusivo do Leonardo pois, o Arduino Uno também pode servir como um teclado USB HID, a partir de apenas uma atualização de firmware.

No entanto, eu não vislumbro ocasião para emular um teclado ou um Joystick USB e, como a diferença entre UNO e Duemilanove, na praticamente é apenas isso, então para mim “é tudo a mesma coisa”. Talvez uma boa razão para adquirir o UNO seja, simplesmente, o fato de que ele é a atual referência para plataforma Arduinos padão. Mas atente para o fato de que, sendo o seu chip de comunicação serial USB programável, isso pode significar, hoje e, ainda por um certo tempo, um preço ligeiramente maior para a UNO frente a 2009. Todavia, o mercado é algo imprevisível: minha últimas aquisição (5 peças) foi do UNO, a R$ 54,90 cada, porém, cada peça forçosamente acompanhada do cabo USB.

Placa atual Uno R3

Depois que a placa Arduino estiver instalada e funcionando dentro de uma EVSE que se tornar operante, muito provavelmente, o seu porte USB, nunca mais será usado. Algumas pessoas pura e simplesmente tem preconceito da 2009, por seu nome estar associado a uma época que já ficou no passado, outros, pelo simples fato de que o cristal de 16MHz mudou de lugar de uma placa para outra, acreditam erroneamente, que a Duemilanove é mais precisa em aplicações de tempo crítico pois, pensam que a Uno, diferente do Duemilanove, tem um ressonador capacitivo instável: isso tudo bobagem!

O Bootloader:

Porém, outro ponto importante é a redução no tamanho do Bootloader, que no caso do Uno ocupa apenas 0,5 KB, contra 2 KB do Duemilanove, o que implica em mais espaço disponível na memória para a programação do usuário.

O Arduino é “Open” (Hardware e software) e pode ser fabricado em qualquer lugar. Os criadores do Arduino são italianos e fabricam o modelo na Itália assim o Arduino Uno Italiano muitas vezes é chamado de original. Mas não ha diferença estrutural entre os que são fabricados em outro local. A diferença é fabrica mesmo.

Você pode, também, trocar o chip microcontrolador Atmega da placa por outro, tanto no Arduino Duemilanove, quanto no Uno, ambos aceitam o Atmega8, Atmega168 ou Atemga328. Entretanto é preciso não se esquecer que é necessário fazer, antes de tudo, o carregamento do bootloader do Arduino para chip novo, para que tudo funcione perfeitamente.

O bootloader nada mais é do que um pequeno pedaço de software que vem pré-gravado para os chips que vêm nas placas Arduino. Todavia, ele é muito importante, permitindo, por exemplo, que se faça o carregamento de esboços de programas para a placa Arduino, sem a necessidade do auxílio de hardware externo de gravação.

Reiniciar uma placa Arduino refere-se, justamente, ao comando que causa executar o programa do bootloader (se houver um bootloader previamente carregado). O bootloader rodando, produz pulsos no pino da saída digital 13 (pode-se conectar um LED a ela para ter certeza de que o bootloader esteja instalado). O bootloader então aguarda alguns segundos para que comandos ou dados possam chegar a partir do computador.

Normalmente, estes dados enviados são os códigos de um esboço, que o bootloader então escreverá para a memória flash no chip ATmega8. Alguns segundos depois, o bootloader lança, automaticamente, esse programa recém-carregado. No entanto, se os dados não chegam a partir do computador, o bootloader lançará qualquer último programa do usuário que tenha sido previamente enviados para o chip. Se o chip ainda é "virgem" e o bootloader é o único programa na memória, ele inicia novamente, de modo recorrente.

A utilização de um carregador de inicialização (bootloader) permite evitar a necessidade da utilização de hardware de programadores de externo adicional. No entanto, gravar o bootloader num chip novo requer um programador externo.

Se você quiser usar o toda a área de programa da memória (flash) do chip ou se você deseja evitar o tempo de atraso devido ao processamento do bootloader, então você precisa gravar seus esboços (programa do usuário) usando sempre um programador externo.

Para gravar o bootloader, você precisa ter disponível um AVR-ISP (programador in-system) ou construir um Programador por Porta Paralela ou DAPA (Direct AVR Parallel Access). Certifique-se de conectá-lo no caminho certo. A placa deve ser alimentada por uma fonte de alimentação externa ou via porta USB.

Do mesmo modo, para fazer o carregamento do firmware para uma Open-EVSE poderá requerer um ISP, se não houver o bootloader previamente carregado no microcontrolador. Há muitos programadores compatíveis AVR disponíveis. Os ISPs são projetados para atualizações de campo de produtos existentes, usando a arquitetura Atmel AVR e com base em hardware e software STK500 .

O Mature AVR ISP, da própria Atmel, é uma opção. O Kit USBtinyISP de Adafruit é uma outra boa escolha, é barato e aberto. Algumas ferramentas, como o Avrdude, o Arduino IDE e o AVR Studio, suportam todos os dispositivos AVR ISP. A “ajuda online ” do AVR Studio, por exemplo, contém as informações mais atuais e uma lista completa de dispositivos suportados.


Já o programador paralelo requer apenas 3 resistores e os conectores. A programação serial (SPI) do AVR envolve apenas pulsar adequadamente três sinais lógicos (RESET, SCK e MOSI) e ler em momentos adequadas um quarto sinal (MISO). Um trabalho perfeito para a porta paralela de um PC, controlada por um software adequado. O programador paralelo consiste simplesmente em conectar alguns pinos da porta paralela aos pinos do microcontrolador, com resistores em série no caso dos sinais MISO, MOSI e SCK:


Neste caso, a alimentação do microcontrolador precisará ser feita com uma fonte externa.

Atente para não confundir, como muitos costumam fazer, os acrônimos de ISP (In-System Programming), originário na cultura AVR, que é o mesmo que ICSP (In-Circuit Serial Programming) na cultura PIC, com SPI (Serial Peripheral Interface).

ISP e ICSP, referem aos dispositivos de programação, enquanto que, SPI refere-se ao protocolo serial. A Interface Periférica Serial (SPI) é composto por três fios: um para o sinal Serial Clock (SCK), ou seja, clock serial, outro para o sinal Mestre In - Slave Out (MISO), ou seja, dados que vão do escravo para o mestre, e, Master Out - Slave In (MOSI), ou seja, dados que vão do mestre para o escravo. Ao programar o AVR, o programador In-System (ISP) sempre opera como o Mestre, e o sistema alvo sempre operar como Escravo.

Um programador In-System (Master) fornece os pulsos de relógio para a comunicação na linha SCK. Cada pulso na Linha SCK transfere um bit do Programador (mestre) para o destino (escravo) na linha MOSI. Ao mesmo tempo, cada pulso na Linha SCK transfere um pouco do alvo (Slave) ao programador (Master) na linha MISO.

Obviamente, para assegurar a comunicação correta sobre as três linhas de SPI, é necessário ligar o programador no para a terra no ponto (GND).

Para entrar e permanecer no Modo de Programação Serial, a linha de reset do microcontrolador AVR tem que ser mantida ativo (baixo). Essa mesma linha (/RES), também é comumente utilizada para seleção de escravo, linha de seleção, selecionando um escravo dentre vários, sendo trazida nível baixo para ser ativo.

Além disso, para realizar um Erase Chip, o Reset tem que ser pulsado até terminar o ciclo Erase Chip. Para facilitar a tarefa de programação, é preferível deixar o programador assumir o controle da linha de reset do microcontrolador alvo para automatizar esse processo usando uma quarta linha de controle quarta (Reset).

Para permitir a programação de microcontroladores alvo operando sob qualquer tensão dentro da faixa permitida (2,7 - 6,0 V), o programador pode extrair energia do sistema alvo (VCC). Isto elimina a necessidade de uma fonte de alimentação separada para o programador. Em alternativa, o sistema alvo pode ser alimentado a partir do programador, no momento da programação, eliminando a necessidade de ligar o sistema alvo através do seu conector de alimentação regular durante a programação.

Instalado o ISP, em seguida, basta lançar ou o comando "Bootloader Burn" (para AVR-ISP) ou "Burn Bootloader Parallel", a partir do menu Ferramentas do ambiente (IDE) Arduino. Gravar o bootloader pode levar 15 segundos ou mais.

Pode ocorrer alguma dificuldade em se fazer funcionar adequadamente o carregador paralelo em um PC com Windows XP, uma vez que o Windows XP faz polling da porta paralela (Windows periódica e imprevisivelmente escreve para a porta paralela, fazendo pesquisa para novos dispositivos, o que acarreta a interrupção do processo de gravação de bootloader. A chave do Registro pode desativar parcialmente esse comportamento. Você precisará deste patch de registro:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Parport\Parameters]
"DisableWarmPoll"=dword:00000001

As versões mais novas do bootloader comunica-se com o computador a 19200 baud; versões mais antigas usam 9600 baud. A fim de conseguir carregar programas para a placa, esta taxa deve coincidir com o parâmetro serial.download_rate em seu arquivo preferences.txt (que assume por default 19200).

Um bootloader pré-compilado (arquivo . hex) vem com o ambiente Arduino, que comunica a 19200 baud (mas veja a nota para placas mais antigas acima). Ambos os comandos "Burn Bootloader" no ambiente Arduino usam uma ferramenta open-source, Uisp. Há quatro etapas (cada uma chamada separada para Uisp):

  • desbloquear a seção de bootloader do chip;
  • definir os fusíveis no chip;
  • fazer o upload do código do bootloader para o chip e;
  • bloquear a seção de bootloader seção do chip.

Estes são controlados por um conjunto de preferências no arquivo de preferências Arduino:

  • bootloader.programmer (valor padrão: STK500) é o que deefine o protocolo usado pelo bootloader;
  • bootloader.unlock_bits (valor padrão: 0xFF) é o valor a ser escrito para o byte bloqueio ATmega8 para desbloquear a seção bootloader;
  • bootloader.high_fuses (valor padrão para um ATmega8 em uma placa Arduino: 0xca) é o valor a ser escrito para o byte mais alto dos fusíveis do ATmega8;
  • bootloader.low_fuses (valor padrão para um ATmega8 em uma placa Arduino: 0xDF) é o valor a ser escrito para o byte mais baixo dos fusíveis dos ATmega8;
  • bootloader.path (valor padrão: bootloader) é o nome do caminho (relativo ao diretório do aplicativo Arduino) contendo o arquivo bootloader pré-compilado;
  • bootloader.file (valor padrão: ATmegaBOOT.hex) é o nome do arquivo que contém o código do bootloader pré-compilado (em bootloader.path);
  • bootloader.lock_bits (valor padrão: 0xCF) é o valor a ser escrito para o byte bloqueio ATmega8 para bloquear a seção bootloader (para que ele não seja acidentalmente substituído (sobrescrito) quando você carregar um esboço.

Saber destes detalhes é muito bom, porém,

Programação:

A interface do hospedeiro é simples, podendo ser escrita em várias linguagens. A mais popular é a Processing, mas outras que podem comunicar-se com a conexão serial são: Max/MSP, Pure Data, SuperCollider, ActionScript e Java. Em 2010 foi realizado um documentário sobre a plataforma chamado “Arduino: The Documentary”. Confira em Português: http://vimeo.com/31389230

O Arduino Duemilanove pode ser programado com o software Arduino. O ATmega328 no Arduino Duemilanove vem pré-gravado com um bootloader que permite enviar novos programas sem o uso de um programador de hardware externo. Ele se comunica utilizando o protocolo original STK500.

O protocolo STK500 publicado juntamente com a versão 4.11 do AVRStudio é totalmente incompatível com as versões inicial e anteriores, àquela do protocolo. A partir dali, o protocolo STK500 passou a ser, além de baseado em protocolos anteriores feitos para ferramentas AVR e outros, e totalmente compatível com eles, não havendo sobreposição ou redefinição de comando algum.

Todos os comandos (os dois comandos e respostas) são caracteres ASCII padrão entre 0x00 – 0x7F. Os dados podem ser qualquer entidade com valor entre 0x00 – 0xFF.

O STK500 não precisa de mais estruturas de dados de dependentes de dispositivos no hardware programador. Toda a lógica dependente do dispositivo, passou a estar no software do programador em execução no PC. A partir dali, o AVRStudio (para Windows) e avrdude (para sistemas operacionais múltiplos, incluindo Linux) passou a suportar esta versão 2 do protocolo STK500.

A interface de hardware físico ao PC é USB. Dessa forma, podemos construir um programador rápido e moderno, que pode ser usado no Linux, BSD, Windows e MacOS X.

A definição de todos os comandos, respostas, parâmetros e outros valores definidos podem ser encontrados no ficheiro "command.h". Os códigos de dispositivo pode ser encontrado no arquivo "devices.h". Esses arquivos estão localizados na seção de software no site da Atmel,

Também poder-se-á programar o ATmega328 através do ICSP (In-Circuit Serial Programming) header;

Reset automático (Software):

Algumas versões anteriores do Arduino requerem um reset físico (pressionando o botão de reset na placa) antes de carregar um esboço. O Arduino Duemilanove é projetado de modo a permitir que isto seja feito através do software que esteja correndo no computador a que está ligado. Uma das linhas de controle de hardware (DTR) do FT232RL está ligada ao reset do ATmega328 por via de um capacitor de 100 nF.

Quando é feito o reset a esta linha (ativo baixo), o sinal cai por tempo suficiente para efetuar o reset ao chip. O software Arduino usa esta característica para permitir carregar o programa simplesmente pressionando o botão “upload” no ambiente Arduino. Isto significa que o “bootloader” pode ter um “timeout” mais curto, já que a ativação do DTR (sinal baixo) pode ser bem coordenada com o início do “upload”.

Esta configuração tem outras implicações. Quando o Duemilanove está ligado a um computador com o Mac OS X ou Linux, ele faz o reset cada vez que a ligação é feita por software (via USB). No próximo meio segundo aproximadamente, o bootloader estará correndo no Duemilanove. Considerando-se que é programado para ignorar dados espúrios (i.e. qualquer coisa a não ser um “upload” de um novo código), ele interceptará os primeiros bytes dos dados que são enviados para a placa depois que a ligação é aberta.

Se um esboço que se encontra sendo executado na placa recebe uma configuração ou outros dados ao inicializar, dever-se-á assegurar que o software esteja em comunicação e espere um segundo depois de aberta a ligação antes de enviar estes dados.

USB:

Conectores Universal Serial Bus (USB) são destinadas a conexão de dispositivos periféricos externos com um computador tais como o mouse, o teclado, um disco rígido portátil, câmara digital, telefone VoIP (Skype) ou da impressora.

Teoricamente, é possível se conectar a um controlador host USB de cerca de 127 dispositivos. A velocidade máxima de transferência é 12 Mbit / s para o padrão USB 1.1 e 480 Mbit / s para USB 2.0 de alta velocidade. Fisicamente, os conectores de padrões USB 1.1 e 2.0 de alta velocidade são idênticos. Distinções são cobertos em velocidade de transferência e um conjunto de funções de controlador de host USB de um computador, e dispositivos USB.

USB fornece uma fonte de energia para dispositivos, portanto, eles podem trabalhar a partir da interface sem uma fonte adicional (a interface USB provê alimentação necessária, não mais do que 500 mA em 5V). Existem três tipos básicos de conectores USB: USB A, USB B e mini USB.


Proteção contra sobrecorrente USB:

O Arduino Duemilanove tem um fusível que protege a porta USB do seu computador contra sobrecarga. Apesar da maioria dos computadores possuírem proteção interna própria, o fusível proporciona uma proteção extra. Se mais de 500 mA forem demandados a partir da porta USB, o fusível irá automaticamente interromper a ligação até que a sobrecarga seja eliminada.

Características físicas:

O comprimento e largura máximos do Duemilanove são 2,7” (68,50 mm) e 2,1” (53,34 mm) respectivamente, com o conector USB e o jaque de alimentação indo um pouco além destas dimensões. Três furos de fixação permitem a montagem da placa numa superfície ou caixa. Note que a distância entre os pinos de entrada e saídas digitais nº 7 e nº 8 é de 160 mil (milésimos de polegada), não é sequer múltiplo do espaçamento de 100 mil dos outros pinos.

O Primeiro Projeto com o Arduino: Colocação de um LED para piscar!

Existem dois blocos distintos de instruções entre chavetas (box 2).

A função setup() é chamada quando o código (esboço) é executado. Use-a para:

  • Iniciar variáveis;
  • O modo como os pinos deverão funcionar: entrada (INPUT) ou saída (OUTPUT);
  • Bibliotecas;
  • Cabeçalhos

Mas, atenção! Tudo o que estiver no setup() será executado apenas uma vez imediatamente após o esboço ter sido carregado para o microcontrolador (ou ser após o microcontrolador ser alimentado).

Caso o Botão de RESET, que se encontra na placa do Arduino, seja pressionado, ou houver uma falha na alimentação, o código será reiniciado e nessa condição especial o setup() será executado novamente.


A função loop() tem um pressuposto fundamental que é repetir infinitamente o que está escrito. Bem... mas qual a finalidade disso?

Ao repetir a mesma função, o microcontrolador nunca para de funcionar. Imagine como seria se ao digitar uma letra no editor de texto parasse de funcionar, e fosse preciso abri-lo nova-mente para escrever as outras letras da palavra? Ou, se após um carro passar num semáforo de trânsito, as luzes não brilhassem mais?

Basicamente, o loop() será o seu escravo e o setup() dirá como o escravo se comportará.

Usa-se: // (duas barras invertidas) para fazer comentários na linha de código. O objetivo é deixar o mais claro possível para que terceiros possam entender o programa.

Tudo que é deixado como comentário será descartado no momento da gravação no microcontrolador.

Na próxima postagem, trataremos menos de Arduíno e mais de questões diretamente ligadas ao projeto da EVSE.

Licença Creative Commons
Este trabalho de André Luis Lenz, foi licenciado com uma Licença Creative Commons - Atribuição - NãoComercial - CompartilhaIgual 3.0 Não Adaptada.