Управление яркостью переведено на родной ESP32 LED интерфейс: к-во уровней 4096 - красота!
Этот коммит содержится в:
родитель
8f8f42990d
коммит
0aa4949404
3 изменённых файлов: 27 добавлений и 16 удалений
|
@ -39,7 +39,7 @@ void setup_dvizh() {
|
||||||
|
|
||||||
initSvet();
|
initSvet();
|
||||||
|
|
||||||
xTaskCreate(TaskInterruptsReceiver, "taskInterruptsReceiver", 4096, NULL, ESP_TASKD_EVENT_PRIO - 1, &taskInterruptsReceiverHandle);
|
xTaskCreate(TaskInterruptsReceiver, "taskInterruptsReceiver", 4096, NULL, ESP_TASKD_EVENT_PRIO - 3, &taskInterruptsReceiverHandle);
|
||||||
attachInterrupt(DVIZH_VERH_PIN, dvizhHandler, DVIZH_TRIGGER);
|
attachInterrupt(DVIZH_VERH_PIN, dvizhHandler, DVIZH_TRIGGER);
|
||||||
attachInterrupt(DVIZH_NIZ_PIN, dvizhHandler, DVIZH_TRIGGER);
|
attachInterrupt(DVIZH_NIZ_PIN, dvizhHandler, DVIZH_TRIGGER);
|
||||||
}
|
}
|
||||||
|
|
14
main.go.h
14
main.go.h
|
@ -6,15 +6,16 @@ void PlavnoVyklyuchit();
|
||||||
bool Vklyucheno();
|
bool Vklyucheno();
|
||||||
void Vklyuchit();
|
void Vklyuchit();
|
||||||
void Vyklyuchit();
|
void Vyklyuchit();
|
||||||
void Yarkost(int i);
|
void initLED();
|
||||||
|
void Yarkost(unsigned long i);
|
||||||
void Enable();
|
void Enable();
|
||||||
void Disable();
|
void Disable();
|
||||||
void TaskSveta();
|
void TaskSveta();
|
||||||
void PropustitRaz();
|
void PropustitRaz();
|
||||||
|
|
||||||
|
|
||||||
const int MAX_YARKOST = 25; const int MIN_YARKOST = 15; const int VREMYA_VKL = 2000; const unsigned long VREMYA_SVETA = 10000; const int VREMYA_VYKL = 10000; const int DIFF_YARKOST = MAX_YARKOST-MIN_YARKOST; TickType_t loopBlockTime = pdMS_TO_TICKS(1000); TickType_t vyklYarkBlockTime = pdMS_TO_TICKS(VREMYA_VYKL/DIFF_YARKOST); int yarkost; unsigned long kogdaVyklyuchit; void initSvet() {
|
const unsigned long MAX_YARKOST = 1000; const unsigned long MIN_YARKOST = 500; const int VREMYA_VKL = 2000; const unsigned long VREMYA_SVETA = 10000; const int VREMYA_VYKL = 10000; const byte LEDC_CHANNEL_0 = 0; const int LEDC_RESOLUTION_BITS = 12; const unsigned long MAX_CHANNEL_VALUE = 0xfff-1; const int LEDC_BASE_FREQ = 5000; const int DIFF_YARKOST = int(MAX_YARKOST-MIN_YARKOST); TickType_t loopBlockTime = pdMS_TO_TICKS(1000); TickType_t vyklYarkBlockTime = pdMS_TO_TICKS(VREMYA_VYKL/DIFF_YARKOST); unsigned long yarkost; unsigned long kogdaVyklyuchit; void initSvet() {
|
||||||
yarkost=MIN_YARKOST; kogdaVyklyuchit=0; Vyklyuchit();
|
yarkost=MIN_YARKOST; kogdaVyklyuchit=0; initLED(); Vyklyuchit();
|
||||||
}
|
}
|
||||||
void DvizhEst() {
|
void DvizhEst() {
|
||||||
kogdaVyklyuchit=millis()+VREMYA_SVETA; if (DEBUG) { Serial.println("Vkl svet"); } PlavnoVklyuchit();
|
kogdaVyklyuchit=millis()+VREMYA_SVETA; if (DEBUG) { Serial.println("Vkl svet"); } PlavnoVklyuchit();
|
||||||
|
@ -37,8 +38,11 @@ void Vklyuchit() {
|
||||||
void Vyklyuchit() {
|
void Vyklyuchit() {
|
||||||
Yarkost(MIN_YARKOST); Disable();
|
Yarkost(MIN_YARKOST); Disable();
|
||||||
}
|
}
|
||||||
void Yarkost(int i) {
|
void initLED() {
|
||||||
analogWrite(SVET_YARK_PIN,255-i);
|
ledcSetup(LEDC_CHANNEL_0,LEDC_BASE_FREQ,LEDC_RESOLUTION_BITS); ledcAttachPin(SVET_YARK_PIN,LEDC_CHANNEL_0);
|
||||||
|
}
|
||||||
|
void Yarkost(unsigned long i) {
|
||||||
|
ledcWrite(LEDC_CHANNEL_0,MAX_CHANNEL_VALUE-i);
|
||||||
}
|
}
|
||||||
void Enable() {
|
void Enable() {
|
||||||
digitalWrite(SVET_ONOFF_PIN,1);
|
digitalWrite(SVET_ONOFF_PIN,1);
|
||||||
|
|
|
@ -8,30 +8,32 @@ import (
|
||||||
"my/go-controller/timer"
|
"my/go-controller/timer"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 150 - примерно то же, что и 255 (должно быть те 1.25В где-то там же)
|
const MAX_YARKOST uint32 = 1000
|
||||||
// 100 - средненько
|
const MIN_YARKOST uint32 = 500
|
||||||
// 50 - приглушённо
|
|
||||||
|
|
||||||
const MAX_YARKOST int = 25
|
|
||||||
const MIN_YARKOST int = 15
|
|
||||||
|
|
||||||
const VREMYA_VKL int = 2000
|
const VREMYA_VKL int = 2000
|
||||||
const VREMYA_SVETA uint32 = 10000
|
const VREMYA_SVETA uint32 = 10000
|
||||||
const VREMYA_VYKL int = 10000
|
const VREMYA_VYKL int = 10000
|
||||||
|
|
||||||
const DIFF_YARKOST int = MAX_YARKOST - MIN_YARKOST
|
const LEDC_CHANNEL_0 byte = 0
|
||||||
|
const LEDC_RESOLUTION_BITS int = 12
|
||||||
|
const MAX_CHANNEL_VALUE uint32 = 0xfff - 1
|
||||||
|
const LEDC_BASE_FREQ int = 5000
|
||||||
|
|
||||||
|
const DIFF_YARKOST int = int(MAX_YARKOST - MIN_YARKOST)
|
||||||
|
|
||||||
var loopBlockTime task.TickType = task.MS_TO_TICKS(1000)
|
var loopBlockTime task.TickType = task.MS_TO_TICKS(1000)
|
||||||
|
|
||||||
var vyklYarkBlockTime task.TickType = task.MS_TO_TICKS(VREMYA_VYKL / DIFF_YARKOST)
|
var vyklYarkBlockTime task.TickType = task.MS_TO_TICKS(VREMYA_VYKL / DIFF_YARKOST)
|
||||||
|
|
||||||
var yarkost int
|
var yarkost uint32
|
||||||
var kogdaVyklyuchit uint32
|
var kogdaVyklyuchit uint32
|
||||||
|
|
||||||
func initSvet() {
|
func initSvet() {
|
||||||
yarkost = MIN_YARKOST
|
yarkost = MIN_YARKOST
|
||||||
kogdaVyklyuchit = 0
|
kogdaVyklyuchit = 0
|
||||||
|
|
||||||
|
initLED()
|
||||||
Vyklyuchit()
|
Vyklyuchit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,9 +101,14 @@ func Vyklyuchit() {
|
||||||
Disable()
|
Disable()
|
||||||
}
|
}
|
||||||
|
|
||||||
func Yarkost(i int) {
|
func initLED() {
|
||||||
|
analog.LEDcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_RESOLUTION_BITS)
|
||||||
|
analog.LEDcAttachPin(SVET_YARK_PIN, LEDC_CHANNEL_0)
|
||||||
|
}
|
||||||
|
func Yarkost(i uint32) {
|
||||||
// логика яркости инвертирована
|
// логика яркости инвертирована
|
||||||
analog.Write(SVET_YARK_PIN, 255-i)
|
// analog.Write(SVET_YARK_PIN)
|
||||||
|
analog.LEDcWrite(LEDC_CHANNEL_0, MAX_CHANNEL_VALUE-i)
|
||||||
}
|
}
|
||||||
func Enable() {
|
func Enable() {
|
||||||
digital.Write(SVET_ONOFF_PIN, 1)
|
digital.Write(SVET_ONOFF_PIN, 1)
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче