kopia lustrzana https://github.com/pimoroni/pimoroni-pico
Added analog class for plasma current reading
rodzic
84acf406a2
commit
fa17f2e77e
|
@ -1,3 +1,4 @@
|
|||
add_subdirectory(analog)
|
||||
add_subdirectory(esp32spi)
|
||||
add_subdirectory(ioexpander)
|
||||
add_subdirectory(ltp305)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
include(analog.cmake)
|
|
@ -0,0 +1,11 @@
|
|||
set(DRIVER_NAME analog)
|
||||
add_library(${DRIVER_NAME} INTERFACE)
|
||||
|
||||
target_sources(${DRIVER_NAME} INTERFACE
|
||||
${CMAKE_CURRENT_LIST_DIR}/${DRIVER_NAME}.cpp
|
||||
)
|
||||
|
||||
target_include_directories(${DRIVER_NAME} INTERFACE ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
# Pull in pico libraries that we need
|
||||
target_link_libraries(${DRIVER_NAME} INTERFACE pico_stdlib hardware_adc)
|
|
@ -0,0 +1,18 @@
|
|||
#include "analog.hpp"
|
||||
|
||||
namespace pimoroni {
|
||||
uint16_t Analog::read_raw() {
|
||||
return adc_read();
|
||||
}
|
||||
|
||||
float Analog::read_voltage() {
|
||||
return ((float)adc_read() * 3.3f) / (1 << 12) / amplifier_gain;
|
||||
}
|
||||
|
||||
float Analog::read_current() {
|
||||
if(resistor > 0.0f)
|
||||
return read_voltage() / resistor;
|
||||
else
|
||||
return read_voltage();
|
||||
}
|
||||
};
|
|
@ -0,0 +1,31 @@
|
|||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "pico/stdlib.h"
|
||||
#include "hardware/adc.h"
|
||||
#include "common/pimoroni_common.hpp"
|
||||
|
||||
namespace pimoroni {
|
||||
|
||||
class Analog {
|
||||
public:
|
||||
Analog(uint pin, float amplifier_gain = 1.0f, float resistor = 0.0f) :
|
||||
pin(pin), amplifier_gain(amplifier_gain), resistor(resistor) {
|
||||
adc_init();
|
||||
|
||||
//Make sure GPIO is high-impedance, no pullups etc
|
||||
adc_gpio_init(pin);
|
||||
|
||||
//Select ADC input 0 (GPIO26)
|
||||
adc_select_input(pin - 26);
|
||||
};
|
||||
uint16_t read_raw();
|
||||
float read_voltage();
|
||||
float read_current();
|
||||
private:
|
||||
uint pin;
|
||||
float amplifier_gain;
|
||||
float resistor;
|
||||
};
|
||||
|
||||
}
|
Ładowanie…
Reference in New Issue