#include <stdio.h>
#include <stdint.h>
#include "hardware/pwm.h"
#include "hardware/clocks.h"
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "hardware/adc.h"
int main() {
// declare pin variables
const unsigned int led_pin = 2, adc_pin=26;
// Setup PWM on GP3
gpio_set_function(led_pin, GPIO_FUNC_PWM);
uint slice_num = pwm_gpio_to_slice_num(led_pin);
uint chan = pwm_gpio_to_channel(led_pin);
// enable PWM
pwm_set_enabled(slice_num,true);
pwm_set_freq_duty(slice_num,chan,50,0);
// 12-bit conversion, assume max value == ADC_VREF == 3.3 V
const float conversion_factor = 100.0f / (1 << 12);
//declare variables for result
uint16_t result;
float resultf;
adc_init();
// Make sure GPIO is high-impedance, no pullups etc and select ADC0
adc_gpio_init(adc_pin);
adc_select_input(0);
// Loop forever
while (1) {
// read adc value and convert
result = adc_read();
resultf = result * conversion_factor;
pwm_set_duty(slice_num,chan, (int)resultf);
sleep_ms(500);
}
}