Boa tarde à todos.
Estou tentando funcionar um display com funções através de um encoder, informo que já peguei o código fonte de terceiro e estou analisando para certificar-me que atende as necessidades do projeto, trata-se de um simulador de ECUs para linha diesel, ao tentar compilar na ide do arduino, ocorreram erros nas seguintes declarações:
//U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* Enable=*/35, /* RW=*/32, /* RS=*/33, /* reset=*/ 34);
U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* Enable=*/25, /* RW=*/32, /* RS=*/33, /* reset=*/ 34);
Erros apontados:
Arduino: 1.8.9 (Windows 10), Placa:"ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"
SimuladorEcuDiesel:17:33: error: redefinition of 'U8G2_ST7920_128X64_1_SW_SPI u8g2'
U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* Enable=*/25, /* RW=*/32, /* RS=*/33, /* reset=*/ 34);
^
C:\Users\ednilzodeSouza\Desktop\Oficina\RepairECU\EletrAutos\Projects\ProjetoSimulador\SimuladorCaseiro\SimuladorEcuDiesel.ino\SimuladorEcuDiesel\SimuladorEcuDiesel.ino:16:29: note: 'U8G2_ST7920_128X64_1_SW_SPI u8g2' previously declared here
U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* Enable=*/35, /* RW=*/32, /* RS=*/33, /* reset=*/ 34);
^
exit status 1
redefinition of 'U8G2_ST7920_128X64_1_SW_SPI u8g2'
Este relatório teria mais informações com
"Mostrar a saida detalhada durante a compilação"
opção pode ser ativada em "Arquivo -> Preferências"
Se eu deixar uma das linhas com comentários, roda normalmente. A duvida é que não sei se funcionará sem uma das linhas declaradas.
Segundo erro: Aponta para esta linha do código, Serial.println(encoder.getCount());
Se eu deixar como comentários, roda normalmente, não sei qual a finalidade de imprimir este resultado, segue o terecho desse código e os erros apresentados.
void TelaMenuECU(){ //
u8g2.firstPage();
_idMenuECU = map(encoder.getCount(),0,25,0,5);
if(encoder.getCount() >25) encoder.setCount(25);
if(encoder.getCount() <0) encoder.setCount(0);
Serial.println(encoder.getCount());
int item = 0;
if(_idMenuECU>3){
item = _idMenuECU-3;
}
do {
int x = 0, y = 0;
u8g2.setFont(u8g_font_helvB08);
u8g2.drawStr(30, 0, "Modelo da Central");
u8g2.drawLine(x,y+=12,128,y);
u8g2.setFont(u8g2_font_6x10_mf);
u8g2.setDrawColor(1);
y-=9;
for (int i=0; i < 4; i++) {
if (i+item == _idMenuECU) {
u8g2.setDrawColor(1);
u8g2.drawBox(x, y += 12, 125, 11);
u8g2.setDrawColor(0);
u8g2.setCursor(x, y);
u8g2.print(itensMenuECU[i+item]);
u8g2.setDrawColor(1);
//_idMenu=i+item;
} else {
u8g2.setCursor(x, y += 12);
u8g2.print(itensMenuECU[i+item]);
}
}
} while (u8g2.nextPage());
}
Erros apresentados:
Arduino: 1.8.9 (Windows 10), Placa:"ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"
C:\Users\ednilzodeSouza\Desktop\Oficina\RepairECU\EletrAutos\Projects\ProjetoSimulador\SimuladorCaseiro\SimuladorEcuDiesel.ino\SimuladorEcuDiesel\SimuladorEcuDiesel.ino: In function 'void TelaMenuECU()':
SimuladorEcuDiesel:378:36: error: call of overloaded 'println(int64_t)' is ambiguous
Serial.println(encoder.getCount());
^
In file included from C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Stream.h:26:0,
from C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Arduino.h:153,
from sketch\SimuladorEcuDiesel.ino.cpp:1:
C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Print.h:91:12: note: candidate: size_t Print::println(char)
size_t println(char);
^
C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Print.h:92:12: note: candidate: size_t Print::println(unsigned char, int)
size_t println(unsigned char, int = DEC);
^
C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Print.h:93:12: note: candidate: size_t Print::println(int, int)
size_t println(int, int = DEC);
^
C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Print.h:94:12: note: candidate: size_t Print::println(unsigned int, int)
size_t println(unsigned int, int = DEC);
^
C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Print.h:95:12: note: candidate: size_t Print::println(long int, int)
size_t println(long, int = DEC);
^
C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Print.h:96:12: note: candidate: size_t Print::println(long unsigned int, int)
size_t println(unsigned long, int = DEC);
^
C:\Users\ednilzodeSouza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\cores\esp32/Print.h:97:12: note: candidate: size_t Print::println(double, int)
size_t println(double, int = 2);
^
exit status 1
call of overloaded 'println(int64_t)' is ambiguous
Este relatório teria mais informações com
"Mostrar a saida detalhada durante a compilação"
opção pode ser ativada em "Arquivo -> Preferências"
Agradeço a todos que puderem colaborar.
Tags:
As respostas para este tópico estão encerradas.
Qual display está usando? e qual o esquema de ligação? o primeiro erro se refere a isso, comente a linha que não corresponde a sua ligação com o display.
o segundo erro, é necessário printar isso na serial? se for, experimente printar transformando para String
Serial.println(String(encoder.getCount(),0));
Boa noite caro professor SaidPef.
O display utilizado, será o da descrição do tópico, display gráfico 128X64, vou determinar as gpios selecionando uma destas linhas e eliminar a outra, quanto ao segundo erro, analisarei com mais atenção para verificar a necessidade do print.
Conforme o avanço e as dificuldades apresentadas, postarei neste espaço, até a conclusão do projeto, não esquecendo de dar crédito aos nobres colaboradores.
Grato pela contribuição de informações, uma excelente noite, saúde e paz.
Bom dia caro SayidPef.
Confirmo que o display é o ST7920, conforme declarado no código e confirmado pelo fornecedor. Em relação o esquema de ligação, estou repassando todas gpios, para verificar se não haverá conflito entre os componentes que fazem parte do projeto.
Informo que já determinei a segunda linha para as ligações do display e deixei as demais linhas que apresentavam erros como comentários, feito isso a compilação foi concluída com êxito.
Grato por suas considerações.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por