summaryrefslogtreecommitdiff
path: root/main/sprayduck.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/sprayduck.c')
-rw-r--r--main/sprayduck.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/main/sprayduck.c b/main/sprayduck.c
new file mode 100644
index 0000000..8619c3d
--- /dev/null
+++ b/main/sprayduck.c
@@ -0,0 +1,59 @@
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "esp_log.h"
+#include "hal/gpio_types.h"
+#include <driver/gpio.h>
+#include "esp_wifi.h"
+#include "hal/adc_types.h"
+#include "esp_adc/adc_oneshot.h"
+
+#define LED_GPIO_PIN 22
+#define SENSOR_CHANNEL ADC_CHANNEL_7
+#define TAG "sprayduck"
+
+static int adc_raw[10];
+
+void app_main(void)
+{
+
+ bool led_state = false;
+
+ gpio_reset_pin(LED_GPIO_PIN);
+ gpio_set_direction(LED_GPIO_PIN, GPIO_MODE_OUTPUT);
+ adc_oneshot_unit_handle_t handler;
+
+ adc_oneshot_unit_init_cfg_t adc_config = {
+ .unit_id = ADC_UNIT_1,
+ .ulp_mode = ADC_ULP_MODE_DISABLE,
+ };
+
+ ESP_ERROR_CHECK(adc_oneshot_new_unit(&adc_config, &handler));
+
+ adc_oneshot_chan_cfg_t channel_config = {
+ .bitwidth = ADC_BITWIDTH_DEFAULT,
+ .atten = ADC_ATTEN_DB_12,
+};
+
+ESP_ERROR_CHECK(adc_oneshot_config_channel(handler, SENSOR_CHANNEL, &channel_config));
+
+
+
+
+
+
+ while (1) {
+ //ESP_LOGI("sprayduck", "Flipping LED - state %d!", led_state);
+ if (led_state) {
+ gpio_set_level((gpio_num_t) LED_GPIO_PIN, 0);
+
+ } else {
+ gpio_set_level((gpio_num_t) LED_GPIO_PIN, 1);
+ }
+
+ led_state = !led_state;
+ESP_ERROR_CHECK(adc_oneshot_read(handler, SENSOR_CHANNEL, &adc_raw[0]));
+ESP_LOGI(TAG, "ADC%d Channel[%d] Raw Data: %d", ADC_UNIT_1 + 1, SENSOR_CHANNEL, adc_raw[0]);
+ vTaskDelay(1000 / portTICK_PERIOD_MS);
+
+ }
+}