Comprei uma ESP32-CAM junto de um FTDI para conectar em meu computador para começar meu projeto, ainda estou aprendendo como utilizá-la e me surgiu uma dúvida, qual a função de utilizar config.pin e porque colocar em todas as entradas do ESP32 ? Maioria dos programas tutoriais fazem isso, segue o exemplo.
A diretriz #define é usada pelo compilador como uma espécie de alias. Funciona mais ou menos assim:
#define Y2_GPIO_NUM 5 é a mesma coisa que dizer:
"onde houver Y2_GPIO_NUM substitua por 5"
Desse modo, quando o programa traz mais embaixo:
config.pin_d0 = Y2_GPIO_NUM;
o que está sendo compilado na verdade é:
config.pin_d0 = 5;
A associação dos pinos é necessária como setup da placa e como os pinos podem variar de uma placa para outra, se você troca a placa, altera apenas os #define, não precisa alterar cada linha do programa que faz referência aquele pino.
Obrigado por responder, compreendi a parte do #define ,mas como existe um pino -1? e um pino 32? sendo que existem 16 pinos no ESP32.
E sobre o config ,qual a utilidade dele ? é tipo um pinMode?
Sobre as entradas TX e RX da ESP32-CAM , há alguma necessidade de utilizá-las ? entendo que seja de entrada e saída mas qual a diferença das demais ? nunca utilizei elas em projetos no arduino
Na placa ESP32 CAM existem 16 pinos disponíveis para conexão, mas o microcontrolador ESP32 tem 39 pinos ao todo. Parte deles é usada em outras aplicações e não é disponibilizada para uso, como no caso dessa placa.
Veja que várias GPIOs não têm pinos correspondentes, porque elas são internamente destinadas ao uso da câmera.
Note que as GPIOs 2,4,12,13,14 e 15 aparecem em pinos, mas elas são para uso do SD card. Então se você estiver usando o SD card, não pode conectar nada nesses pinos.
O config é o que vai associar cada GPIO a cada função que ele vai realizar. Nesse caso, às conexões da câmera (veja novamente a figura).
Os pinos TX e RX são usados para comunicação serial. São pouco usados nos ESP porque o microcontrolador já tem Bluetooth e Wi-fi. É muito mais fácil nesse caso usar o Bluetooth ou o wi-fi para transmitir dados do que ficar conectando coisas por fios. No Arduino UNO por exemplo, você pode usar as portas TX e RX para conectar um módulo bluetooth (ex: HC-05).