# [Programa] Potenciómetro #### Objectivo: Utilizar o *ESP32-WROOM-32E DevKitC v4* \[3\] para ler valor de tensão de saída de um potenciómetro. #### Lista de material: - *ESP32-WROOM-32E DevKitC v4* - Breadboards - Potenciómetro de 10kΩ - Fios de ligação - Cabo USB micro [![setup_a.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a.png) #### Contextualização: Um potenciómetro é um componente eletrónico que incorpora uma resistência elétrica ajustável \[5\]. ##### Potenciómetro Um potenciómetro possui tipicamente três terminais incluindo um contacto ajustável, deslizante ou rotativo, que forma um divisor de tensão ajustável \[5\].
[![eg_out_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/eg-out-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/eg-out-2.png)[![eg_0_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/eg-0-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/eg-0-2.png)[![eg_120_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/eg-120-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/eg-120-2.png)[![eg_240_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/eg-240-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/eg-240-2.png)
##### ESP32-WROOM-32E DevKitC v4 Apesar de se aconselhar a consulta da página do fabricante sobre o kit *ESP32-WROOM-32E DevKitC v4* \[3\] é possível considerar que em determinadas situações os terminais de entrada do microcontrolador ESP32 podem converter tensão (algo como uma quantidade analógica entre 0V e 3.3V) em um valor digital inteiro entre 0 e 4095 (num total de 212=4096 representações possíveis, \[1\]\[2, SAR ADC\]). [![esp32.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/esp32.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/esp32.png) #### Procedimento: Atentando ao objetivo enunciado, e escolhendo os terminais 33 (para o terminal de saída do potenciómetro), 3.3V e o GND do ESP32 como referência deve considerar-se o seguinte circuito: [![interruptor_montagem_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/Vi0interruptor-montagem-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/Vi0interruptor-montagem-2.png) ##### Instruções: (para uma primeira utilização do ESP32, sugere-se o tutorial *Primeiro Programa* \[4\]) - Montar o circuito esquematizado anteriormente (ver Secção **Montagem exemplificativa**, para mais detalhe) - Ligar a placa ESP32 ao computador por via de cabo USB micro - Abrir o IDE Arduino - Selecionar o dispositivo ESP32 adequado - Copiar o seguinte código ```C /* * Potenciómetro */ float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } // a função setup é executada pontualmente quando o botão reset é premido ou // a placa é alimentada: void setup() { // inicializa a comunicação série a 115200 bits por segundo: Serial.begin(115200); } // a função loop é executada sucessivamente, uma e outra vez, e por aí em diante void loop() { // leitura do valor de entrada no terminal analógico GPIO33: int analogValue = analogRead(33); // Normalização dos valores lidos para a tensão do potenciómetro float voltage = floatMap(analogValue, 0, 4095, 0, 3.3); // print out the value you read: Serial.print("valor lido: "); Serial.print(analogValue); Serial.print(", tensão: "); Serial.println(voltage); delay(1000); } ``` - Compilar e carregar o código para a placa ESP32 [![arduino.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/arduino.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/arduino.png) - Verificar o resultado
[![out_hand_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/out-hand-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/out-hand-2.png)[![serial_out_eg.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/serial-out-eg.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/serial-out-eg.png)
#### Montagem exemplificativa:
[![setup_a_1.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a-1.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a-1.png)[![setup_b_1.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-b-1.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-b-1.png)[![setup_a_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a-2.png)
[![setup_a_3.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a-3.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a-3.png)[![setup_b_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-b-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-b-2.png)[![setup_a_4.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a-4.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a-4.png)
[![setup_a_5.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a-5.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a-5.png)[![setup_b_3_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-b-3-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-b-3-2.png)[![setup_a_6_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a-6-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a-6-2.png)
[![setup_a_6_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a-6-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a-6-2.png)[![setup_b_4_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-b-4-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-b-4-2.png)[![setup_a_8_2.png](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/scaled-1680-/setup-a-8-2.png)](https://kb.deec.uc.pt/uploads/images/gallery/2023-08/setup-a-8-2.png)
#### Referências: \[1\] Ltd. Espressif Systems Co. Analog to Digital Converter (ADC). url: [https://docs.espressif.com/projects/esp-idf/en/release-v4.4/esp32/api-reference/peripherals/adc.html](https://docs.espressif.com/projects/esp-idf/en/release-v4.4/esp32/api-reference/peripherals/adc.html) (acedido em 23/08/2023). \[2\] Ltd. Espressif Systems Co. ESP32 Technical Reference Manual. Versão 5.0, pp. 631–637. url: [https://www.espressif.com/sites/default/files/documentation/esp32\_technical\_reference\_manual\_en.pdf](https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf) (acedido em 18/08/2023). \[3\] Ltd. Espressif Systems Co. ESP32-DevKitC V4 Getting Started Guide. url: [https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html) (acedido em 18/08/2023). \[4\] Paulo Menezes. Artigos de Suporte - DEEC - Kit Eletrónica - Primeiro Programa. url: [https://kb.deec.uc.pt/books/deec/page/primeiro-programa](https://kb.deec.uc.pt/books/deec/page/primeiro-programa) (acedido em 17/08/2023). \[5\]Wikipedia. Potentiometer. url: [https://en.wikipedia.org/wiki/Potentiometer](https://en.wikipedia.org/wiki/Potentiometer) (acedido em 23/08/2023).