//ALESSANDRA KIMIE HIRO.
//EMBARCATEC IFMA - GRUPO 02
//TAREFA 2
//6. Refaça o programa pratico 01 presente no Ebook do Capítulo de ADC,
//mude a unidade de medida da temperatura de celsius para fahrenheit.
#include <stdio.h> // Biblioteca padrão para entrada e saída, utilizada para printf.
#include "pico/stdlib.h" // Biblioteca padrão para funções básicas do Pico, como GPIO e temporização.
#include "hardware/adc.h" // Biblioteca para controle do ADC (Conversor Analógico-Digital).
int main() {
// Inicializa a comunicação serial para permitir o uso de printf
// Isso permite enviar mensagens via USB para depuração.
stdio_init_all();
// Inicializa o módulo ADC (Conversor Analógico-Digital) do Pico
// Isso prepara o ADC para começar a ler os valores dos canais analógicos.
adc_init();
// Configura o pino GPIO 26 para uso como entrada ADC (Canal 0)
// O pino 26 está associado ao canal 0 do ADC.
adc_gpio_init(26);
// Seleciona o canal 0 do ADC para leitura
// Essa função configura o ADC para ler o valor do pino 26.
adc_select_input(0);
// Exibe a mensagem pedindo ao usuário para digitar a temperatura em Celsius
printf("Digite a temperatura em Celsius para converter para Fahrenheit:\n");
// Loop infinito para a interação com o usuário
while (true) {
char input[10]; // Buffer para armazenar a entrada do usuário
float celsius, fahrenheit;
// Aguarda o usuário digitar a temperatura
if (fgets(input, sizeof(input), stdin) != NULL) {
// Converte a entrada para um número float
sscanf(input, "%f", &celsius);
// Converte Celsius para Fahrenheit
fahrenheit = (celsius * 9.0 / 5.0) + 32.0;
// Exibe a temperatura convertida em Fahrenheit
printf("Temperatura: %.2f °F\n", fahrenheit);
}
// Lê o valor do ADC no canal selecionado (canal 0)
// O valor lido será um número de 0 a 4095, correspondente ao valor analógico.
uint16_t adc_value = adc_read();
// Converte o valor lido para a temperatura em Celsius
// O valor lido do ADC pode estar diretamente relacionado a uma escala de temperatura em Celsius.
float temperature_celsius = (adc_value / 4095.0) * 100.0; // Exemplo: mapeia 0-4095 para 0-100°C
// Converte a temperatura de Celsius para Fahrenheit
float temperature_fahrenheit = (temperature_celsius * 9.0 / 5.0) + 32.0;
// Imprime o valor da temperatura em Fahrenheit na comunicação serial
// Isso envia o valor lido para o console, facilitando a depuração e visualização.
printf("Temperatura do ADC: %.2f °F\n", temperature_fahrenheit);
// Atraso de 500 milissegundos para evitar a sobrecarga na comunicação serial
// Isso evita que a leitura e impressão sejam feitas muito rapidamente.
sleep_ms(500);
}
// Retorna 0 indicando que o programa terminou com sucesso
// Embora este código nunca chegue a este ponto, pois o loop é infinito.
return 0;
}
Loading
pi-pico-w
pi-pico-w