Skip to content
Snippets Groups Projects
Commit 2b194f53 authored by fxk8y's avatar fxk8y :spider:
Browse files

Merge branch 'master' of git.services.c3pb.de:fxk8y/CyanLight

parents 9dab9fb0 e6c2ee77
No related branches found
No related tags found
No related merge requests found
#include "FastDimmer.hpp"
#include "driver/gpio.h"
#include "driver/ledc.h"
static uint8_t channel = 0;
ledc_channel_t getNextLEDChannel() {
return (ledc_channel_t)channel++;
}
static bool timerConfigured = false;
static void configureTimer() {
if (!timerConfigured) {
ledc_timer_config_t ledc_timer;
ledc_timer.duty_resolution = LEDC_TIMER_1_BIT, // resolution of PWM duty
ledc_timer.freq_hz = 38000, // frequency of PWM signal; 2KHz is max for CN5711
ledc_timer.speed_mode = LEDC_HIGH_SPEED_MODE, // timer mode
ledc_timer.timer_num = LEDC_TIMER_0, // timer index
// Required for newer esp-idf:
//ledc_timer.clk_cfg = LEDC_AUTO_CLK, // Auto select the source clock
ledc_timer_config(&ledc_timer);
ledc_fade_func_install(0);
timerConfigured = true;
}
}
FastDimmer::FastDimmer(uint8_t gpio) {
configureTimer();
gpio_config_t conf;
conf.intr_type = GPIO_INTR_DISABLE;
conf.mode = GPIO_MODE_OUTPUT;
conf.pin_bit_mask = 1ULL << gpio;
conf.pull_up_en = GPIO_PULLUP_DISABLE;
conf.pull_down_en = GPIO_PULLDOWN_DISABLE;
gpio_config(&conf);
gpio_set_level((gpio_num_t)gpio, 0);
ledc_channel_config_t ledc_channel;
ledc_channel.channel = this->channel;
ledc_channel.duty = 0;
ledc_channel.gpio_num = (gpio_num_t)gpio;
ledc_channel.speed_mode = LEDC_HIGH_SPEED_MODE;
ledc_channel.hpoint = 0;
ledc_channel.timer_sel = LEDC_TIMER_0;
ledc_channel_config(&ledc_channel);
// setBrightness(0);
ledc_set_duty(LEDC_HIGH_SPEED_MODE, this->channel, 1);
ledc_update_duty(LEDC_HIGH_SPEED_MODE, this->channel);
}
const float maxPWM = 1024.0f;
void FastDimmer::setBrightness(float b) {
uint16_t pwm = (uint16_t)( b*b * maxPWM );
ledc_set_duty(LEDC_HIGH_SPEED_MODE, this->channel, pwm);
ledc_update_duty(LEDC_HIGH_SPEED_MODE, this->channel);
}
#pragma once
#include <qthing.h>
#include "driver/ledc.h"
ledc_channel_t getNextLEDChannel();
class FastDimmer {
public:
FastDimmer(uint8_t gpio);
void setBrightness(float b);
private:
ledc_channel_t channel = getNextLEDChannel();
};
/*
const uart_port_t uart_num = UART_NUM_2;
uart_config_t uart_config = {
.baud_rate = 115200,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS,
.rx_flow_ctrl_thresh = 122,
};
// Configure UART parameters
ESP_ERROR_CHECK(uart_param_config(uart_num, &uart_config));
*/
#include <cinttypes>
// hostname and device namespace
#define DEVICE_NAME "CyanLight"
#define NTP_SERVER "pool.ntp.org"
#define DEVICE_IP "192.168.0.254"
#define DEVICE_GW "192.168.0.1"
#define DEVICE_NETMASK "255.255.255.0"
#include <qthing.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "mqtt_common.h"
#include "esp_log.h"
#include "FastDimmer.hpp"
#include "Arduino.h"
// #######################
// ####### CONFIG ########
// #######################
const uint8_t senderTX = 26;
const uint8_t senderCLK = 25;
const uint8_t receiverRX = 23;
// ### end cfg ###
HardwareSerial sender(1);
HardwareSerial receiver(2);
void senderTask(void *ignored) {
uint16_t delay = 10;
vTaskDelay(delay / portTICK_PERIOD_MS);
while (true) {
sender.print("Hello, Infrared communication!");
vTaskDelay(delay / portTICK_PERIOD_MS);
sender.print(" typing…");
vTaskDelay(delay / portTICK_PERIOD_MS);
sender.print(" 🐾…");
vTaskDelay(delay / portTICK_PERIOD_MS);
sender.println(" 🕷🕸😏");
vTaskDelay(delay / portTICK_PERIOD_MS);
}
}
void receiverTask(void *ignored) {
while (true) {
if (receiver.available())
Serial.print( (char)receiver.read() );
else
vTaskDelay(2);
}
}
void device_main() {
// enable_wlan();
// FastDimmer pt4115(IO_PT4115);
FastDimmer baseClock(senderCLK);
Serial.begin(115200);
uint16_t baud = 4800;
sender.begin(baud, SERIAL_8N1, -1, senderTX); // tx = 27
receiver.begin(baud, SERIAL_8N1, receiverRX, -1); // rx = 26
xTaskCreate(senderTask, "sender", 8192, NULL, 6, NULL);
xTaskCreate(receiverTask, "receiver", 8192, NULL, 6, NULL);
}
Subproject commit a04734c6fe90526c2a2b60c76e9cbbf9e1908225
Subproject commit 9feca91c60c8050f8df978ac0cb11ec11b4794ed
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment