Documente Academic
Documente Profesional
Documente Cultură
BAURU
20142015
BAURU
2014
Maranho
Banca examinadora:
_____________________________
Prof. Dr. Edilson Moura Pinto
______________________________
Prof. Esp. Eng. Flvio Tonello Tavares
Universidade do Sagrado Corao
______________________________
Prof. Me. Eng. Alexander da Silva Maranho
Universidade do Sagrado Corao
AGRADECIMENTOS
RESUMO
O avano tecnolgico tem proporcionado reduo no preo dos equipamentos
eletroeletrnicos e o consequente aumento de seu uso. Estes equipamentos, por
sua vez, dependem de uma fonte de energia para seu funcionamento e, por se tratar
de uma fonte de fcil transporte, transformao e utilizao. A energia eltrica a
escolhida para este tipo de dispositivo. Apesar do desenvolvimento cada vez maior
de tecnologias que promovem a reduo do consumo de energia eltrica nos
dispositivos eletrnicos, a crescente utilizao dos mesmos, aliada cultura do
desperdcio, vem causando aumento no consumo de energia eltrica no mundo.
medida que a demanda por energia aumenta, preciso aumentar sua gerao.
Porm, para uma maior gerao so necessrios investimentos e, em alguns casos
construes de novas usinas, sejam elas termeltricas, hidreltricas, nucleares ou
elicas. As consequncias disto vo desde impactos ambientais (alterao de curso
das guas, emisso de gs carbnico na atmosfera etc.) a socioeconmicos (com
desapropriao de terras e aumento no custo da energia, por exemplo). Visando
desacelerar o crescimento da demanda por energia eltrica, causado principalmente
pela cultura do desperdcio, prope-se o desenvolvimento de um dispositivo que
realizar a medio e o controle do consumo de energia eltrica em residncias,
principalmente as de baixa renda que podero ser beneficiadas pela tarifao
diferenciada deste setor. Os resultados obtidos mostraram que a utilizao de um
dispositivo que realiza o chaveamento das cargas capaz de reduzir o consumo de
energia eltrica em aproximadamente 28%, equivalente reduo de 11kWh no ms
(de 41kWh para 30kWh), este percentual de reduo, no entanto relativo e varia
de consumidor para consumidor.
Palavras-chave: Controle de consumo. Demanda de energia. Energia eltrica.
Dispositivo de controle.
ABSTRACT
Technological advancement has reduced the price of electronic
equipments and the consequent increase of the use of this devices. These
equipments, by turn, depend on a source of energy for its operation and, since
this is a source of easy transport, transform and use, the electric energy is
chosen for this type of device. Despite the increasing development of
technologies that promote reducing the power consumption in electronic
devices, the increasing use of them, associated with the culture of waste, is
causing the increase of electricity consumption in the world .As the demand
for energy increases, their generation must increase. However, for more
generation, investment is necessary and in some cases construction of new
plants, whether they be thermoelectric, hydroelectric, nuclear or wind farms.
The consequences of this range from environmental (change of course of
water, carbon dioxide emissions in the atmosphere and more) to
socioeconomic (with land acquisition and increase in the cost of energy for
example) impacts. Aiming to slow the growth of electricity demand, caused
mainly by the "culture of waste", is proposed the development of a device that
performs the measurement and control of energy consumption in households,
especially low-income that could be reached by differential pricing of this
sector . The results showed that the use of a device that performs switching of
the loads is able to reduce the consumption of electric energy in about 28%,
equivalent to the reduction of 11kWh month ( 41kWh to 30kWh ) however, this
percentage of reduction is relative and varies from consumer to consumer.
Keywords: Eletric energy. Consumption control. Energy demand. Control device.
LISTA DE FIGURAS
Figura 1 - Curva de carga tpica Residencial...........................................................16
Figura 2 - Consumo final de Combustveis no mundo em 1973 e 2011.....................18
Figura 3 - Consumo de energia eltrica no mundo por setor .....................................19
Figura 4 - Resultados CPFL Paulista (2006 - 2010)...................................................26
Figura 5 - Dispositivos de controle de consumo de energia eltrica. .........................29
Figura 6 - Instalao do sistema Smart Gate-C da Gestal.........................................32
Figura 7 - Organizao do controlador de consumo de energia eltrica ....................36
Figura 8 - Etapas de funcionamento...........................................................................37
Figura 9 - Arduino Mega 2560.....................................................................................38
Figura 10 - IDE Arduino...............................................................................................39
Figura 11 - Sensor de corrente ACS712.....................................................................41
Figura 12 - Mdulo Rel..............................................................................................42
Figura 13 - Arduino TFT Screen..................................................................................42
Figura 14 - Sensor de Tenso: Esquema eltrico.......................................................44
Figura 15 - Sensor de Corrente: Esquema eltrico....................................................45
Figura 16 - Botes: Esquema eltrico.........................................................................45
Figura 17 - Grfico - Comparativo de Consumo/Hora................................................52
Figura 18 - Grfico - consumo de energia dirio: Controlado x Sem controle ...........53
Figura 19 - Grfico - Consumo mensal: Controlado x Sem controle ..........................53
LISTA DE TABELAS
Tabela 1 - Consumo de energia eltrica no mundo entre 2006 e 2010 por regio ....17
Tabela 2 - Consumo final de combustveis no mundo em 1973 e 2011 (em %). .......17
Tabela 3 - 10 maiores pases consumidores de energia eltrica em 2010 (TWh). ....19
Tabela 4 - Consumo energtico por fonte entre 2006 e 2007 (10 tep) ......................21
Tabela 5 - Informaes gerais do Brasil (2012)..........................................................21
Tabela 6 - Consumo total por classe - Brasil (GWh)...................................................22
Tabela 7 - Consumo total por regio geogrfica (GWh).............................................23
Tabela 8 - Consumo de Energia Eltrica por regio e por classe - Regio sudeste . .23
Tabela 9 - Consumo de energia eltrica da regio sudeste por UF (GWh) ...............24
Tabela 10 - Consumo por classe no estado de So Paulo (GWh). ............................24
Tabela 11 - Resultados CPFL Paulista (2006-2010)...................................................25
Tabela 12 - Domiclios com energia eltrica em Bauru..............................................27
Tabela 13 - Descontos programa "Baixa Renda"........................................................29
Tabela 14 - Resultados de Parametrizao................................................................49
Tabela 15 - Consumo de energia com chaveamento.................................................50
Tabela 16 - Consumo do dispositivo...........................................................................51
Tabela 17 - Comparao de consumo dirio: Controlado x Sem controle .................52
LISTA DE SMBOLOS
%: Variao Percentual
Vcc: Tenso em Corrente Contnua
SUMRIO
1
INTRODUO...............................................................................................12
1.1
OBJETIVO GERAL........................................................................................14
1.2
OBJETIVOS ESPECFICOS..........................................................................14
REVISO BIBLIOGRFICA.........................................................................15
2.1
A ENERGIA ELTRICA.................................................................................15
2.1.1
Panorama mundial.......................................................................................16
2.1.2
Panorama nacional......................................................................................20
2.1.3
Panorama estadual......................................................................................23
2.1.4
Panorama regional.......................................................................................25
2.2
REGIO DE BAURU.....................................................................................26
2.2.1
2.2.2
Tipos de Consumidores..............................................................................27
2.2.3
Categorias de Tarifao..............................................................................28
2.2.4
Baixa Renda..................................................................................................28
2.3
INOVAES TECNOLGICAS....................................................................29
2.3.1
2.3.2
2.3.3
2.4
TRABALHOS CORRELATOS........................................................................32
2.4.1
remoto...........................................................................................................32
2.4.2
MATERIAIS E MTODOS.............................................................................35
3.1
FUNCIONAMENTO DO DISPOSITIVO.........................................................35
3.2
COMPONENTES DO SISTEMA....................................................................37
3.2.1
O Arduino......................................................................................................37
3.2.2
IDE Arduino...................................................................................................39
3.2.3
Sensor de Tenso........................................................................................40
3.2.4
3.2.5
Mdulo Rel..................................................................................................41
3.2.6
3.2.7
Mdulo RTC..................................................................................................43
TESTES E RESULTADOS............................................................................44
4.1
4.2
4.3
DIFICULDADES ENCONTRADAS................................................................47
4.4
RESULTADOS OBTIDOS..............................................................................48
CONCLUSO................................................................................................54
5.1
REFERNCIAS...........................................................................................................55
APNDICE A ESQUEMA ELTRICO DO DISPOSITIVO......................................58
APNDICE B CDIGO FONTE..............................................................................59
APNDICE C DIAGRAMA DE ATIVIDADES..........................................................86
INTRODUO
10
demanda excedente ou, em casos extremos, cortes no fornecimento como foi o caso
do ocorrido em 2001 (SCHMIDT e LIMA, 2004).
Os prejuzos da falta de chuva e do consequente acionamento das
termeltricas vo desde ambientais - lanamento de poluentes na atmosfera,
gerados pela queima de combustveis - econmicos, uma vez que a produo de
energia eltrica por meios trmicos tem custo elevado e, para arcar com esta
despesa, o consumidor o maior prejudicado. (ROSA, 2007)
O Brasil possui um sistema integrado de energia eltrica, sendo assim, o
aumento do consumo nacional refletido em todos os estados e muncipios.
Consequentemente, os custos extras gerados pelas medidas de segurana que so
tomadas para evitar o corte total de energia eltrica atinge todo o pas, como
consequncia disto o preo do quilowatt hora aumenta para toda a populao.
(ANEEL, 2008a).
Como a populao de baixa renda a mais afetada por essas alteraes no
custo do quilowatt hora, foram criados os programas de tarifao diferenciada para
esta parcela da populao, entretanto para se encaixar neste programa, algumas
regras devem ser seguidas e uma delas se da pelo consumo mdio mensal de
energia eltrica que varia de 0 a 220 kWh/ms (BASIL, 2010), obtido pela mdia
mvel dos ltimos 12 meses.
Este projeto prope a reduo do consumo residencial individual de energia
eltrica utilizando um prottipo de controlador de demanda de energia eltrica que
faz a aferio da demanda atual, estima o consumo mensal final baseado em dados
anteriores e compara com a demanda mxima definida pelo consumidor com um
valor mximo de 220 kWh/ms - dependendo da categoria de tarifao a que se
enquadra a unidade consumidora. O algoritmo desenvolvido baseia-se nas
prioridades das cargas, efetuando o desligamento das mesmas de tal forma que as
de menor prioridade so as primeiras a serem desligadas, enquanto que as de
prioridade crtica no sero desligadas.
1.1
OBJETIVO GERAL
11
OBJETIVOS ESPECFICOS
12
REVISO BIBLIOGRFICA
2.1
A ENERGIA ELTRICA
Para Creder (2012, p.14),
13
14
Agency (IEA) compara o ano de 1973 com o ano de 2011, Tabela 2 e Figura 2, e
revela um grande aumento no consumo total de energia. O consumo praticamente
dobrou nesses 28 anos, saltando de 4.674 milhes de toneladas equivalentes de
petrleo (tep) em 1973 para 8.918 milhes de tep em 2011. Desse total o consumo
de eletricidade tambm praticamente dobrou passando de 9,4% em 1973 para
17,7% em 2011.
Tabela 1 - Consumo de energia eltrica no mundo entre 2006 e 2010 por regio
(TWh).
2006
2007
2008
2009
2010
Part. %
Mundo
16.391,5
17.151,4
17.445,0
17.360,3
18.466,5
(2010/09)
6,4
mundial
100,0
sia &
5.490,6
6.000,2
6 198,5
6.473,9
7.052,7
8,9
38,2
Oceania
Amrica do
4.543,9
4.630,5
4.601,9
4.422,4
4.599,6
4,0
24,9
Norte
Europa
3.306,4
3.345,1
3.378,2
3.219,0
3.369,7
4,7
18,2
Amrica do
806,1
844,6
874,3
877,6
929,7
5,9
5,0
Sul e Central
Oriente
557,2
582,9
622,6
656,2
709,2
8,1
3,8
Mdio
frica
493,2
521,4
525,8
530,0
559,6
5,6
3,0
Fonte: U.S. Energy Information Administration (EIA); Elaborao: EPE (2013, p.53).
1973
2011
48,1
1,6
9,4
13,7
14,0
13,2
40,8
3,4
17,7
10,1
15,5
12,5
15
16
de 1040,0 TWh em 2008 para 993,1 TWh em 2009. De 2010 a 2012 este consumo
voltou a aumentar e, entre 2012 e 2013, permaneceu com volume consumido
praticamente estvel (-0,5%). ndia e China apresentaram crescimento constante,
sendo que entre 2012 e 2013 as variaes no consumo foram de, respectivamente,
4,8% e 7,6%. No Brasil, o aumento do consumo se mostrou constante at 2008
permanecendo praticamente estvel em 2009. Em 2010 o consumo torna a subir at
2013, sendo que a variao entre 2012 e 2013 foi de 1,2%.
Figura 3 - Consumo de energia eltrica no mundo por setor
em 1973 e 2011
2007
2009
2010
Part. %
17.360,3
3 723,8
18.466,5
3 886,4
(2010/09)
6,4
4,4
mundial
100,0
21,0
2.525,0
985,3
816,2
532,0
550,1
529,3
445,6
390,0
364,6
3.271,2
938,2
818,3
661,0
515,0
493,4
444,2
426,1
408,5
3.633,8
1.002,4
861,5
698,8
549,1
499,9
471,0
464,8
449,5
11,1
6,8
5,3
5,7
6,6
1,3
6,0
9,1
10,0
19,7
5,4
4,7
3,8
3,0
2,7
2,6
2,5
2,4
2.874,1
1.010,5
844,5
591,3
550,9
536,6
447,5
412,2
386,2
2008
3.054,1
965,9
857,8
617,3
548,2
529,1
460,0
428,3
402,1
17
Sul
Fonte: U.S. Energy Information Administration (EIA); Para o Brasil, dados do Balano Energtico
Nacional (BEN). 2013; Elaborao: EPE (2013, p.53).
18
fontes citadas, ainda que sua variao entre esses anos no tenha sido to
expressiva.
De acordo com a EPE (2013), quando relacionados populao total e
consumo de energia eltrica no Brasil, Tabela 5, verifica-se que, do total de clientes
do pas (aproximadamente 72 milhes), mais da metade (aproximadamente 62
milhes) so residenciais e seu consumo mdio de 158,9 kWh/ms (quilowatt hora
por ms).
Tabela 4 - Consumo energtico por fonte entre 2006 e 2007 (10 tep)
Fonte
Eletricidade
leo diesel
Bagao de cana
Lenha
Gs natural
Gasolina*
lcool etlico
Gs liquefeito de
petrleo
Outras fontes**
2006
33.536
32.816
24.208
16.414
13.625
14.494
6.395
7.199
2007
35.443
34.836
26.745
16.310
14.731
14.342
8.612
7.433
Variao (%)
5,7%
6,2%
10,5%
-0,6%
8,1%
-1,0%
34,7%
3,2%
39.887
42.957
* Inclui apenas gasolina A (automotiva).
7,7%
Quantidade
194.684 mil
448.117 GWh
2.545 kWh/ano
62.056 MW mdio
72.377 mil
61.697 mil
516,0 kWh/ms
158,9 kWh/ms
19
consumo entre 2011 e 2012. Fica evidente, tambm, o crescimento nas outras
classes consumidoras. Destacam-se as classes: rural e comercial, que
apresentaram as maiores variaes percentuais frente s outras. Do consumo total
tem destaque, tambm, a classe residencial responsvel por 26,3% do total de
energia eltrica consumida no pas, ficando atrs apenas da classe industrial.
Apesar da grande diferena na participao nacional, todas as regies
apresentaram variaes positivas entre os anos de 2011 e 2012, Tabela 7. O
destaque vai para as regies Centro-Oeste e Nordeste, pois foram as regies que
apresentaram o maior crescimento nos anos citados. A regio Sudeste, que
apresentou menor variao, ainda a que tem maior participao no cenrio
nacional sendo responsvel por 52,5% do consumo total do pas.
Tabela 6 - Consumo total por classe - Brasil (GWh)
2008
2009
2010
2011
2012
Part. %
Brasil
388.47
384.306
415.683
433.034
448.117
(2012/11)
3,5
(2012)
100,0
Residencial
Industrial
2
94.746
175.83
100.776
161.799
107.215
179.478
111.971
183.576
117.646
183.475
5,1
-0,1
26,3
40,9
Comercial
Rural
Poder Pblico
Iluminao
4
61.813
17.941
11.585
11.429
65.255
17.304
12.176
11.782
69.170
18.906
12.817
12.051
73.482
21.027
13.222
12.478
79.238
22.952
14.077
12.916
7,8
9,2
6,5
3,5
17,7
5,1
3,1
2,9
Pblica
Servio Pblico
Prprio
12.853
2.270
14.525
3.288
3,9
-0,2
3,2
0,7
12.898
13.589
13.983
2.319
2.456
3.295
Nota: consumo cativo + livre
Fonte: EPE (2013, p.87).
20
Brasil
Norte
Nordeste
Sudeste
Sul
CentroOeste
2008
2009
388.472
23.873
65.103
209.944
65.900
23.652
2010
2011
2012
384.306
24.083
65.244
204.555
65.528
(2012/11)
415.683 433.034 448.117
3,5
26.237
27.777
29.049
4,6
71.197
71.194
75.610
5,1
222.005 230.668 235.237
2,0
69.934
74.470
77.503
4,1
24.896
26.310
28.205
30.718
8,9
Part. %
(2012)
100,0
6,5
16,9
52,5
17,3
6,9
388.472
Total
Residencial
Industrial
Comercial
Rural
Poder Pblico
Iluminao Pblica
Servio Pblico
209.944
51.477
98.515
34.685
6.000
5.215
5.375
7.356
Prprio
1.319
2009
2010
2011
2012
Part. %
(2012/11)
(2012)
448.117
3,5
100
235.237
61.595
100.787
43.312
7.080
6.221
5.859
8.235
2,0
3,8
-1,6
7,0
5,9
5,4
2,7
2,9
52,5
26,2
42,8
18,4
3,0
2,6
2,5
3,5
2.149
-1,1
0,9
21
2009
2010
2011
2012
209.944 204.555
222.005
230.668
235.237
48.659
45.091
51 313
53.611
53.407
8.602
7.970
9 386
9.768
10.060
33.723
33.311
35.801
37.008
38.050
118.960 118.182
125.505
130.282
133.721
*Participao do estado na regio em que se encontra.
Part. %
(2012/11)
2,0
-0,4
3,0
2,8
2,6
(2012)*
52,5**
22,7
4,3
16,2
56,8
2009
2010
2011
2012
%
(2012/11)
22
Residencial
Industrial
Comercial
Rural
Poder Pblico
Iluminao Pblica
Servio Pblico
Prprio*
31.301
54.033
20.744
2.635
2.574
2.867
4.534
271
32.871
50.611
21.751
2.478
2.718
2.929
4.604
221
34.214
54.780
22.867
2.848
2.822
2.938
4.803
232
35.918
55.989
24.253
2.883
2.940
3.008
5.026
265
37.680
55.628
25.871
2.974
3.107
3.072
5.171
217
4,9
-0,6
6,7
3,2
5,6
2,1
2,9
-17,9
2006
2007
2008
2009
2010
3 332
23 065
18 295
4 770
234
3 415
24 437
18 868
5 569
234
3 500
25 288
19 544
5 743
234
3 566
25 267
19 977
5 290
234
3 660
26 988
20 649
6 339
234
23
2.2
REGIO DE BAURU
24
Como o setor eltrico composto pelo Sistema Interligado Nacional (SIN) onde
uma grande rede de transmisso permite o trnsito de energia por todo o Brasil e
pelos Sistemas Isolados localizados principalmente na regio Norte (ANEEL, 2008,
p.7), no h, portanto, uma fonte geradora nica para Bauru.
A distribuio realizada por meio de oito concessionrias em quatro estados
(So Paulo, Minas Gerais, Paran e Rio Grande do Sul), sendo a CPFL Paulista
responsvel pela distribuio da energia eltrica para vrios muncipios do interior
de So Paulo, dentre eles Bauru. (CPFL..., [2011?]).
Considerando o consumo mdio residencial brasileiro de 158,9 kWh/ms e
sabendo-se que, o nmero de domiclios que possuem energia eltrica na cidade de
Bauru, Tabela 12, de 109.715 domiclios (IBGE, 2010), estima-se que o consumo
de energia eltrica no municpio foi de aproximadamente 17,5 GWh/ms em 2010.
Tabela 12 - Domiclios com energia eltrica em Bauru
Residncia
Quantidade
Sem energia
Total
109.715
eltrica
160
109.875
25
26
2.3
INOVAES TECNOLGICAS
27
28
29
2.4
TRABALHOS CORRELATOS
30
31
32
MATERIAIS E MTODOS
FUNCIONAMENTO DO DISPOSITIVO
33
34
3.2
COMPONENTES DO SISTEMA
35
36
para interagir com o mundo (BANZI, 2011), para obter esta grandeza, basta reduzir a
37
tenso da rede eltrica que se deseja obter a leitura para um valor que no danifique
o Arduino (geralmente de 0 a 5V); retificar de forma que a tenso seja transmitida
de maneira digital e, ento, atravs do software efetuar os clculos de
proporcionalidade.
Para realizar a medio da tenso, a utilizao de um optoacoplador com
sada de fototransistor com conexo de base. Neste componente a intensidade
luminosa de um led realiza o controle da tenso de sada de um fototransistor, com
isso possvel realizar a leitura da tenso alternada e traduzi-la para o Arduino em
faixas menores (de 0 a 5V), possibilitando a realizao, via software, dos clculos da
tenso real da rede.
3.2.4 Sensor de Corrente ACS712
um dispositivo eletrnico capaz de realizar a medio de corrente eltrica
utilizando um Circuito Integrado de efeito Hall, que converte o campo magntico,
gerado pela corrente que atravessa um condutor de cobre, em tenso proporcional
(ALLEGRO, c2013), possibilitando a leitura pela placa Arduino sem danific-la.
Alm do circuito integrado ACS712-30A a montagem da placa de circuito
impresso, Figura 11, possui bornes para ligao na rede eltrica de onde ser
retirada a leitura da corrente e os pinos para comunicao com o Arduino.
O pino de alimentao (Vcc) utilizado para alimentar o sensor com os 5V
em corrente contnua fornecidos pelo Arduino, o pino de referncia, terra ou ground
(GND) utilizado para fechar o circuito para que haja o correto funcionamento do
sensor e o pino de sada (Out) fornece a leitura obtida e a envia para uma das portas
de entrada analgica do Arduino.
Por se tratar de um sensor de corrente, sua instalao deve ser realizada em
srie carga, ou seja, podem-se ligar os pinos 1 e 2, ligados eletricamente carga
ou os pinos 3 e 4 tambm ligados eletricamente carga. Aps selecionados os
pinos, os outros devero ser ligados de forma que o circuito seja fechado e assim a
corrente gerada.
38
39
40
41
4
4.1
TESTES E RESULTADOS
42
43
Atualiza-se o horrio;
Realizam-se as leituras dos sensores;
Calcula-se o consumo instantneo (C) atravs da equao 1, calculando-se a
potncia atravs do produto entre a tenso e a corrente (lidos), convertendose em kWh:
C=
1
.(
(V.I
)
1000
3600 )
(1)
44
(2)
( )
( )
(3)
encontra o dispositivo;
Realizam-se as comparaes de data e hora para que os dados sejam
gravados no arquivo;
Realizam-se as comparaes e o chaveamento das cargas.
4.3
DIFICULDADES ENCONTRADAS
45
RESULTADOS OBTIDOS
46
Data
24/10/201
Consumo
00:59
4
24/10/201
5,956 x10-2
4
24/10/201
6,000 x10-2
4
24/10/201
5,982 x10-2
4
24/10/201
6,002 x10-2
4
24/10/201
6,007 x10-2
4
24/10/201
6,042 x10-2
4
24/10/201
5,977 x10-2
4
24/10/201
5,882 x10-2
4
24/10/201
5,832 x10-2
4
24/10/201
5,892 x10-2
4
24/10/201
5,781 x10-2
4
24/10/201
5,799 x10-2
4
24/10/201
5,562 x10-2
4
24/10/201
5,502 x10-2
4
24/10/201
5,433 x10-2
4
24/10/201
5,458 x10-2
5,601 x10-2
01:59
02:59
03:59
04:59
05:59
06:59
07:59
08:59
09:59
10:59
11:59
12:59
13:59
14:59
15:59
16:59
Unidade
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
47
24/10/201
17:59
18:59
19:59
20:59
21:59
22:59
23:59
TOTAL
kWh
4
24/10/201
5,594 x10-2
4
24/10/201
5,722 x10-2
4
24/10/201
5,622 x10-2
4
24/10/201
5,655 x10-2
4
24/10/201
5,655 x10-2
4
24/10/201
2,534 x10-2
4
24/10/201
5,760 x10-2
kWh
kWh
kWh
kWh
kWh
kWh
kWh
1,3525
Nota: Elaborado pelo autor.
Data
22/10/201
Consumo
00:59*
01:59*
4
22/10/201
2,933 x10-2
3,059 x10-2
Unidade
kWh
kWh
48
4
22/10/201
02:59*
03:59*
04:59*
05:59*
06:59*
07:59*
08:59
09:59
10:59
11:59*
12:59
13:59
14:59
15:59
16:59**
17:59**
18:59**
19:59**
20:59**
21:59***
kWh
4
22/10/201
4,207 x10-2
4
22/10/201
7,170 x10-2
4
22/10/201
7,542 x10-2
4
22/10/201
7,757 x10-2
4
22/10/201
7,892 x10-2
4
22/10/201
3,686 x10-2
4
22/10/201
6,813 x10-3
4
22/10/201
6,733 x10-3
4
22/10/201
6,655 x10-3
4
22/10/201
1,687 x10-2
4
22/10/201
6,854 x10-3
4
22/10/201
8,594 x10-3
4
22/10/201
8,832 x10-3
4
22/10/201
9,043 x10-3
4
22/10/201
1,121 x10-2
4
22/10/201
1,496 x10-2
4
22/10/201
1,370 x10-2
4
22/10/201
2,872 x10-2
4
22/10/201
2,949 x10-2
5,600 x10-2
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
49
4
22/10/201
22:59***
23:59***
TOTAL
kWh
4
22/10/201
5,757 x10-2
4
22/10/201
5,810 x10-2
7,8262 x10-1
kWh
kWh
Nota: Elaborado pelo autor
Data
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
Consumo
7,725 x10-3
7,736 x10-3
7,845 x10-3
7,835 x10-3
7,711 x10-3
7,747 x10-3
7,681 x10-3
7,671 x10-3
7,543 x10-3
7,522 x10-3
7,606 x10-3
7,702 x10-3
7,627 x10-3
7,389 x10-3
7,324 x10-3
7,310 x10-3
7,433 x10-3
7,407 x10-3
7,327 x10-3
7,162 x10-3
Unidade
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
50
20:59
21:59
22:59
23:59
TOTAL
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
7,186 x10-3
7,706 x10-3
8,970 x10-3
1,030 x10-2
1,8546 x10-1
kWh
kWh
kWh
kWh
kWh
Comparativo - Consumo/Hora
0.100
0.080
0.060
0.040
0.020
Sem Chaveamento0.000
Comsumo (kWh)
Com Chaveamento
Horrio
Consumo
51
TOTAL
Controle
1,352
Controlado
7,826 x10-01
dispositivo
9,681 x10-01
(kWh)
Nota: Elaborado pelo autor.
kWh
1.5000
Consumo sem
Controle
1.0000
Consumo
Controlado
0.5000
Consumo
Controlado com
dispositivo
0.0000
Consumo
Nota: Elaborado pelo autor.
(4)
52
40.00
35.00
30.00
Consu
25.00
Consu
Total (kWh)
20.00
15.00
10.00
5.00
0.00
Consumo
53
CONCLUSO
54
REFERNCIAS
ACS712: Fully Integrated, Hall-Effect-Based Linear Current Sensor Ic With 2.1 Kvrms
Voltage Isolation And A Low-Resistance Current Conductor. Allegro microsystems,
c2006-2013. Disponvel em: <http://www.allegromicro.com/en/products/currentsensor-ics/zero-to-fifty-amp-integrated-conductor-sensor-ics/acs712.aspx>. Acesso
em: 03 maio 2014.
Agncia Nacional de Energia Eltrica (Brasil) (ANEEL). Atlas de energia eltrica do
Brasil. 3. ed. Braslia: ANEEL, 2008a. Disponvel em:
<http://www.aneel.gov.br/arquivos/PDF/atlas3ed.pdf >. Acesso em: 01 mar. 2014.
Agncia Nacional de Energia Eltrica (Brasil) (ANEEL). Por dentro da conta de luz:
informao de utilidade pblica. 4. ed. Braslia: ANEEL, 2008b. 32p.
Agncia Nacional de Energia Eltrica (Brasil) (ANEEL). Tarifas de fornecimento de
energia eltrica. Braslia : ANEEL, 2005. 30p. Disponvel em:
<http://www.aneel.gov.br/arquivos/pdf/caderno4capa.pdf>. Acesso em:
ANDREOLI, A. L.. Controlador de demanda e fator de potncia de baixo custo
para unidades consumidoras de energia eltrica. 2005. 217 f. Dissertao
(Mestrado em Engenharia Industrial) - Faculdade de Engenharia. Universidade
Estadual Paulista, Bauru, SP, 2005.
ARDUINO Mega 2560. Arduino, c2014a. Disponvel em:
<http://arduino.cc/en/Main/arduinoBoardMega2560>. Acesso em: 10 out. 2014.
ARDUINO Development Environment. Arduino, c2014b. Disponvel em:
<http://arduino.cc/en/Guide/Environment>. Acesso em: 04 maio 2014.
ARDUINO TFT Screen. Arduino, c2014c. Disponvel em: <
http://arduino.cc/en/Main/GTFT>. Acesso em: 18 jul. 2014.
BANZI, M. Primeiros passos com Arduino. 1 ed. [So Paulo]: Novatec, 2011.
55
BERNDT, E. R.. The demand for electricity: structural and time series approaches. In:
______. The practice of Econometrics: classic and contemporary. [S.I.] AddisonWesley Publishing Company, 1991. Cap 7, p.306-337, 702p.
BICALHO, R.. A energia dos BRICs. Blog Infopetro, c2013. Disponvel em:
http://infopetro.wordpress.com/2013/01/07/a-energia-dos-brics/. Acesso em: 01 mar.
2014.
BP GLOBAL. BP Statistical Review of World Energy June 2014, c1996-2014.
Disponvel em: < http://www.bp.com/content/dam/bp/pdf/Energyeconomics/statistical-review-2014/BP-statistical-review-of-world-energy-2014electricity-section.pdf>. Acesso em: 18 jul. 2014.
56
57
58
59
60
//#===============================================
============================
//# PROGRAMA - CONTROLE DE CONSUMO DE ENERGIA ELTRICA
//# ORIENTADOR: ALEXANDER DA SILVA MARANHO
//# AUTOR: VINCIUS ROSSI BSCOA
//################################################
############################
//Incluso das bibliotecas
#include <Time.h>
#include <SD.h>
#include <SPI.h>
#include <TFT.h>
#include <DS1302RTC.h>
//################################################
############################
//Definir Constantes
//Pinos de entrada dos sensores
#define pin_tensao A0
#define pin_corrente A1
#define button_pin A5
#define qtde_amostras 1000
//Pinos do microSD e da tela TFT
#define miso
50
#define sck
52
#define mosi
51
#define sd_cs
#define lcd_cs
10
61
#define dc
#define rst
#define bl
//Pinos do DS1302
#define RST
#define DAT
#define CLK
22
//################################################
############################
//Declarao das variveis globais
int info_cargas[5][3] = {};
62
//Manipulao de menus/botes
int botao, leitura, menu_cont = 0, select_button = 0;
//String para armazenar o texto a ser mostrado na TFT
String txt_tela = String();
//Arquivos
File conf, totalkwh, tempfile;
//Tela
TFT tela = TFT(lcd_cs, dc, rst);
//RTC - Real Time Clock
DS1302RTC RTC(RST, DAT, CLK);
//Variveis para calculo de corrente
const unsigned long sampleTime = 100000UL;
// Amostragem
// nmero de
amostras para dividir sampleTime exatamente, mas baixo o suficiente para ADC
manter salvo
const unsigned long sampleInterval = sampleTime/numSamples;
//
Intervalo de amostragem, deve ser mais longo que o tempo de converso do ADC
const int adc_zero = 509;
63
void trata_botao_prioridade();
void pisca_prioridade(int indice);
void pisca_parametro(int parametro);
void ordena();
void trata_botao();
void atualiza_menu();
void menus();
//Mostra menu
correspondente
//Inicia Tela
analogReference(EXTERNAL);
setSyncProvider(RTC.get);
//Sincroniza o tempo
do RTC com o do Arduino
64
if (timeStatus() == timeNotSet) {
//Testa se o tempo
if (!SD.begin(sd_cs)) {
//Evita parada do
//se no existir
//se criou
limite = 220;
lim.print(limite);
lim.close();
//Se existir
//Abre arquivo
65
int linha = 0;
int coluna = 0;
char caract;
while (conf.available()) {
//Loop de leitura do
if (caract == '\n') {
if (linha < 4) {
linha++;
//incrementa 1 linha
}
else {
linha = 0;
coluna = 0;
//reseta a contagem de
colunas a cada nova linha
}
if (coluna < 2) {
coluna++;
//incrementa 1 coluna
}
else {
coluna = 0;
//reseta contagem de
colunas);
}
}
else {
66
if (caract != '\r') {
//armazena o
conf.close();
else {
//Cria o arquivo
de configurao
if (conf) {
int carga_novo = 30;
for (int l = 0; l < 5; l++) {
info_cargas[l][0] = carga_novo;
info_cargas[l][1] = 0;
carga_novo++;
}
for (int i = 0; i < 5; i++) {
conf.print(info_cargas[i][0]);
conf.print(";");
conf.print(info_cargas[i][1]);
conf.print('\n');
}
conf.close();
//menu_p();
//Inicia o menu de
configurao
}
67
//Define os pinos dos sensores de corrente e tenso e dos botes como entrada
de dados.
pinMode (pin_corrente, INPUT);
pinMode (pin_tensao, INPUT);
pinMode (button_pin, INPUT);
//Define o pino de cada carga lida do SD como sada
for (int i = 0; i < 5; i++) {
pinMode(info_cargas[i][0], OUTPUT);
}
//Reseta o estado de cada carga para "ligado"
for (int aux = 0; aux < 5; aux++) {
liga_carga(info_cargas[aux][0]);
}
//Ordena as cargas a partir das prioridades definidas.
ordena();
//Carregar o valor total armazenado no SD
if (SD.exists("totalkwh.txt")) {
//Se o arquivo
existir
//Abre
68
//Converte para
numero
}
totalkwh.close();
else {
//Cria
arquivo "totalkwh.txt"
if (totalkwh) {
totalkwh.print("0.0");
totalkwh.close();
horario_atual = RTC.get();
//armazena hora
//Atualiza a varivel
//Atualiza a varivel
69
de amostragem
{
tensao += analogRead(pin_tensao);
valor varivel
70
//incrementa 1 ao
contador
//realiza o
ajuste na tenso
//calcula potencia
instantanea (em W)
kwhInst = ((kwhInst2 / 1000.0) * (1.0 / 3600.0)); //calcula o consumo
instantaneo (em kWh)
kwhTotal += kwhInst;
kwhParcD += kwhInst;
kwParcH += kwhInst;
//estima o consumo da
hora
//estima o consumo do
dia
//verifica se alguma carga foi desligada/ligada
//se foi desligada
if (desligou) {
71
if (c_loop < 4) {
cont = c_loop +1;
//inverte o sinal da
carga
}
est_con_ant = 0.0;
desligou = false;
cont = c_loop - 1;
else cont = 0;
consumo_carga[cont] = 0.0;
est_con_ant = 0.0;
ligou = false;
cont = c_loop;
consumo_carga[cont] = 0.0;
posio (contador) zero
//consumo da carga na
72
est_con_ant = 0.0;
//Abre o arquivo
"totalkwh.txt" no
//modo de escrita
if (totalkwh) {
//armazena a posio
atual do cursor
for (int i = posicao; i >= 0; i--) {
//para cada
posio do cursor
totalkwh.seek(i);
totalkwh.write("");
//apaga o contedo
}
totalkwh.seek(0);
//retorna posio 0
totalkwh.print(kwhTotal, DEC);
//grava o valor
de kwhTotal
}
totalkwh.close();
//fecha e salva o
arquivo
}
//Armazena consumo
atual na varivel kwHora
73
arquivo += String(dia_a);
arquivo += String(mes_a);
arquivo += ".txt";
gravar_dados(arquivo, kwHora);
kwParcH = 0;
}//fim hora_mudou
//Testa se o dia atual mudou, se sim grava dados no arquivo
if (dia != dia_a) {
kwhDia = kwhParcD;
//liga todas as cargas com prioridade 0 que esto desligadas (caso haja
alterao pelo usurio em tempo de execuo)
for (int i; i < 5; i++) {
if (info_cargas[i][1] == 0 && info_cargas[i][2] == 0) {
74
liga_carga(info_cargas[i][0]);
}
if (info_cargas[i][1] != 0 && c_loop < i && info_cargas[i][2] == 1){
desliga_carga(info_cargas[i][0]);
consumo_carga[i] = 0.0;
}
}//fim ligar cargas com prioridade 0
//Estima o limite de consumo do dia
if ((limite - kwhTotal > 0) && (total_dias - dia <= 0)) {
limite_dia = limite - kwhTotal;
}
else if ((limite - kwhTotal > 0) && (total_dias - dia > 0)) {
limite_dia = (limite - kwhTotal) / (total_dias - dia);
}
else {
limite_dia = 0.0;
}// fim estimativa
int i = c_loop;
// Teste para limite de consumo
if (est_con_dia >= limite_dia) {
est_con_ant = est_con_dia;
//Se a prioridade da carga atual for diferente de 0
if (info_cargas[c_loop][1] != 0 && info_cargas[c_loop][2] == 1)
{
desliga_carga(info_cargas[c_loop][0]);
//Desliga
a carga atual
desligou = true;
}
c_loop--;
//decrementa 1 de
c_loop
if (c_loop <= 0) {
//Testa se o c_loop
0e
c_loop = 0;
}
}
//se diferenca do consumo + consumo atual for maior que o limite
75
c_loop++;
//Incrementa 1 ao c_loop
if (c_loop >= 4) {
//liga a carga
atual
ligou = true;
}
}
}// fim loop
/
*################################################
##########################*/
/*#
*################################################
##########################*/
// Funo para ativar rel (desligar carga)
void desliga_carga(int carga) {
for (int i = 0; i < 5; i++) {
if (info_cargas[i][0] == carga) {
digitalWrite (carga, HIGH);
info_cargas[i][2] = 0;
}
}
}//fim desliga_carga
76
77
boto de seleo
select_button = 1;
}
else if (leitura > 710 && leitura <= 740) {
boto "baixo"
menu_cont++;
//incrementa 1 ao
contador de menus
}
boto "cima"
menu_cont--;
//decrementa 1 ao
contador de menus
}
trata_botao();
menus();
//armazena texto na
variavel
txt_tela += " ";
txt_tela += String(kwhTotal, DEC);
//concatena texto na
varivel
txt_tela += "\n Corrente\n";
txt_tela += " ";
txt_tela += String (corrente, DEC);
78
//concatena texto na
varavel
txt_tela += " ";
mostra_data();
//converte a
if (select_button == 1) {
select_button = 0;
79
else if (menu_cont == 1) {
limpa_menu();
txt_tela = "Prioridades\n\n";
//armazena texto na
variavel
if (select_button == 1) {
//testa se o botao de
seleo foi pressionado
while (select_button == 1) {
//enquanto o boto
botes
limpa_menu();
txt_tela = "Prioridades\n\n";
//armazena texto na
variavel
//concatena a
";
txt_tela += String(info_cargas[i][1]);
txt_tela += "
|\n";
//cria vetor de
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
//converte a
tela.text(a_txt_tela, 5, 10);
//mostra texto na
tela
trata_botao_prioridade();
80
//incrementa 1 ao indice
if (indice > 4) {
indice = 0;
//retorna ao primeiro
indice (0)
}
}
pressionado
tela.background(195, 195, 195);
indice--;
//decrementa 1 do indice
if (indice < 0) {
indice = 4;
pressionado
tela.background(195, 195, 195);
info_cargas[indice][1]++;
//incrementa 1 ao nvel de
prioridade da carga
if (info_cargas[indice][1] > 3) {
maior que 3
info_cargas[indice][1] = 0;
pressionado
tela.background(195, 195, 195);
info_cargas[indice][1]--;
//decrementa 1 ao nivel de
prioridade da carga
if (info_cargas[indice][1] < 0) {
81
}
}
else if (leitura > 660 && leitura <= 690) {
boto "confirma"
select_button = 0;
//inverte o estado do
boto de seleo
trata_botao();
ordena();
//ordena o vetor
atualizado
if (SD.exists("config.csv")) {
SD.remove("config.csv");
//cria novamente o
arquivo
for (int i = 0; i < 5; i++) {
conf.print(info_cargas[i][0]);
conf.print(";");
//ponto-e-virgula
separao em colunas
conf.print(info_cargas[i][1]);
//nvel de prioridade da
carga em questo
conf.print('\n');
//nova linha
}
conf.close();
82
conf.print(info_cargas[i][1]);
conf.print('\n');
}
conf.close();
}
tela.background(195, 195, 195);
//limpa a tela
}//fim if confirma
}//fim while
}//fim if select_button
char a_txt_tela[txt_tela.length() + 1];
//cria vetor de
caracteres
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela)); //converte a varivel
txt_tela para vetor
tela.stroke(0, 0, 0);
tela.text(a_txt_tela, 5, 10);
else if (menu_cont == 2) {
limpa_menu();
//limpa o menu
txt_tela = "Data/Hora\n\n\n";
char a_txt_tela[txt_tela.length() + 1];
while (select_button == 1) {
//enquanto no salvar a
data/hora atual
leitura = analogRead(button_pin);
limpa_menu();
//le boto
//limpa a tela
txt_tela += "Data/Hora\n\n\n\n\n\n";
//exibe titulo do
menu
mostra_data();
83
//e exibe
informaes na tela
tela.stroke(0, 0, 0);
tela.text (a_txt_tela, 5, 10);
//pisca_parametro(param);
trata_botao2();
if (param == 1) {
leitura = analogRead(button_pin);
trata_botao2();
//le boto
//aguarda boto ser
pressionado
if (leitura > 910 && leitura <= 940 ) {
//se boto
//limpa tela
//incrementa 1 ao
parametro
if (param > 5) {
param = 1;
//retorna ao primeiro
parametro
}
}
//se boto
//limpa tela
//decrementa 1 do
parametro
if (param < 1) {
param = 5;
//salta ao ultimo
parametro
}
}
//se boto
84
//atualiza data/hora do
arduino
RTC.set(now());
//ajusta horrio
atualizado ao rtc
select_button = 0;
trata_botao();
//limpa tela
}
//se boto
//incrementa 1 a variavel
dia
85
//se o boto
//decrementa 1 ao dia
86
}
}
else if (leitura > 770 && leitura <= 800) {
tela.background(195, 195, 195);
param--;
if (param < 1) {
param = 5;
}
}
else if (leitura > 660 && leitura <= 690) {
setTime(hora, minutos, 0, dia, mes, ano);
RTC.set(now());
select_button = 0;
trata_botao();
tela.background(195, 195, 195);
}
else if (leitura > 835 && leitura <= 865) {
tela.background(195, 195, 195);
mes++;
if (mes > 12) {
mes = 1;
}
}
else if (leitura > 710 && leitura <= 740) {
tela.background(195, 195, 195);
mes--;
if (mes < 1) {
mes = 12;
}
}
}//fim param 2
//se o parametro for 3 (ano)
//realiza os mesmos procedimentos anteriores
else if (param == 3) {
leitura = analogRead(button_pin);
trata_botao2();
87
88
param++;
if (param > 5) {
param = 1;
}
}
else if (leitura > 770 && leitura <= 800) {
tela.background(195, 195, 195);
param--;
if (param < 1) {
param = 5;
}
}
else if (leitura > 660 && leitura <= 690) {
setTime(hora, minutos, 0, dia, mes, ano);
RTC.set(now());
select_button = 0;
trata_botao();
tela.background(195, 195, 195);
}
else if (leitura > 835 && leitura <= 865) {
tela.background(195, 195, 195);
hora++;
if (hora > 23) {
hora = 0;
}
}
else if (leitura > 710 && leitura <= 740) {
tela.background(195, 195, 195);
hora--;
if (hora < 0) {
hora = 23;
}
}
}// fim param 4
//se o parametro for 5 (minutos)
//realiza os mesmos procedimentos anteriores
89
else if (param == 5) {
leitura = analogRead(button_pin);
trata_botao2();
if (leitura > 910 && leitura <= 940 ) {
tela.background(195, 195, 195);
param++;
if (param > 5) {
param = 1;
}
}
else if (leitura > 770 && leitura <= 800) {
tela.background(195, 195, 195);
param--;
if (param < 1) {
param = 5;
}
}
else if (leitura > 660 && leitura <= 690) {
setTime(hora, minutos, 0, dia, mes, ano);
RTC.set(now());
select_button = 0;
trata_botao();
tela.background(195, 195, 195);
}
else if (leitura > 835 && leitura <= 865) {
tela.background(195, 195, 195);
minutos++;
if (minutos > 59) {
minutos = 0;
}
}
else if (leitura > 710 && leitura <= 740) {
tela.background(195, 195, 195);
minutos--;
if (minutos < 0) {
minutos = 59;
90
}
}
}// fim param 5
//se no for nenhum dos anteriores (segurana)
else {
leitura = analogRead(button_pin);
trata_botao2();
//le boto
//aguarda boto ser solto
//se boto
//incrementa 1 ao
parametro
if (param > 5) {
param = 1;
//retorna parametro a 1
}
}
pressionado
tela.background(195, 195, 195);
param--;
//dencrementa 1 ao
parametro
if (param < 1) {
param = 5;
//salta parametro a 5
}
}
pressionado
setTime(hora, minutos, 0, dia, mes, ano);
//atualiza data/hora do
arduino
RTC.set(now());
//ajusta RTC
select_button = 0;
91
}
txt_tela += "\n\n\n";
mostra_data();
char a_txt_tela[txt_tela.length() + 1];
//cria vetor de
//converte a
//mostra texto na
tela
}//fim param 0
}//fim while
//armazena
texto na variavel
if (select_button == 1) {
//testa se o botao de
seleo foi pressionado
while (select_button == 1) {
//enquanto o boto
botes
limpa_menu();
txt_tela = "Limite de Consumo \n\n";
//armazena
texto na variavel
txt_tela += String(limite);
txt_tela += " kWh/mes";
char a_txt_tela[txt_tela.length() + 1];
//cria vetor de
//converte a
92
tela.stroke(0, 0, 0);
tela.text(a_txt_tela, 5, 10);
//mostra texto na
tela
trata_botao3();
//Se boto
//dencrementa 1
do limite
if (limite < 0) {
limite = 220;
//Se o boto
//incrementa 1
ao limite
limite = 0;
//reseta limite
}
}
//se o boto
//incrementa 1
ao limite
limite = 0;
//reseta limite
}
}
93
//se o boto
//dencrementa 1
do limite
if (limite < 0) {
limite = 220;
//Se for
//inverte o estado do
boto de seleo
trata_botao();
if (SD.exists("limite.txt")) {
//verifica a existencia
do arquivo "limite.txt"
SD.remove("limite.txt");
//cria
novamente o arquivo
conf.print(limite);
conf.close();
//limpa a tela
94
}//fim if select_button
char a_txt_tela[txt_tela.length() + 1];
//cria vetor de
//converte a
tela.text(a_txt_tela, 5, 10);
//salta ao menu 2
}
//retorna ao menu 0
}
}//fim menus
leitura = analogRead(button_pin);
if (leitura > 100) {
break;
}
pisca_parametro(param);
//Mantem o parametro
atual piscando
leitura = analogRead(button_pin);
}
}//fim trata_botao
//Funo que aguarda boto ser solto
void trata_botao() {
while (leitura != 0 ) {
//le boto
95
leitura = analogRead(button_pin);
if (leitura > 100) {
break;
}
pisca_carga_prioridade(indice);
//mantem prioridade
atual piscando
leitura = analogRead(button_pin);
}
}
//Aguarda boto ser pressionado (para o menu de configurao do limite)
void trata_botao3(){
while (leitura < 100){
leitura = analogRead(button_pin);
if (leitura > 100){
break;
}
}
}
//Funo para exibir o numeral 0 antes de numeros que possuem 1 digito
void mostra2digitos(int numero) {
if (numero >= 0 && numero < 10)
txt_tela += String(numero);
}//fim mostra2digitos
//exibe o numero
96
txt_tela += "/";
mostra2digitos(mes);
txt_tela += "/";
txt_tela += String(ano);
txt_tela += " ";
mostra2digitos(hora);
txt_tela += ":";
mostra2digitos(minutos);
}//fim mostra_data
//Funo que realiza a gravao de dados no arquivo
void gravar_dados (String nome_arquivo, float dado) {
char tmp[nome_arquivo.length() + 1];
//cria
97
if (tempfile) {
grava2digitos(hora_a);
//grava
hora (com dois digitos)
tempfile.print(hora_a, DEC);
tempfile.print(":");
//dois pontos
grava2digitos(minuto_a);
//grava
minutos com 2 digitos
tempfile.print(minuto_a, DEC);
tempfile.print(";");
//ponto-evirgula
grava2digitos(dia_a);
//grava o dia
com 2 digitos
tempfile.print(dia_a, DEC);
tempfile.print("/");
//barra
grava2digitos(mes_a);
//grava o
mes com 2 digitos
tempfile.print(mes_a, DEC);
tempfile.print("/");
//barra
tempfile.print(ano_a, DEC);
//grava
ano (4 digitos)
tempfile.print(";");
//ponto-evirgula
tempfile.print(dado, DEC);
//grava o
//unidade de
medida de consumo "kWh"
tempfile.println(";");
98
99
100
101
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 58);
delay (250);
}
//se o indice for 2
//pisca prioridade da carga situada no indice 2 do vetor
if (index == 2) {
txt_tela = "";
txt_tela += info_cargas[index][1];
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 90, 74);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 74);
delay (250);
}
//se o indice for 3
//pisca prioridade da carga situada no indice 3 do vetor
if (index == 3) {
txt_tela = "";
txt_tela += info_cargas[index][1];
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 90, 90);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 90);
delay (250);
}
//se o indice for 4
//pisca prioridade da carga situada no indice 4 do vetor
if (index == 4) {
102
txt_tela = "";
txt_tela += info_cargas[index][1];
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 90, 106);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 106);
delay (250);
}
}
//##-=- FIM -=-##
103