Переделка логики яркости и ограничение максимума в 100
Этот коммит содержится в:
родитель
e2ebb77bf0
коммит
222e044bc1
2 изменённых файлов: 68 добавлений и 36 удалений
42
main.go.h
42
main.go.h
|
@ -1,34 +1,50 @@
|
||||||
void initSvet();
|
void initSvet();
|
||||||
void DvizhEst(int start);
|
void DvizhEst();
|
||||||
void DvizhaNet();
|
void DvizhaNet();
|
||||||
void PlavnoVklyuchit(int start);
|
void PlavnoVklyuchit();
|
||||||
void PlavnoVyklyuchit();
|
void PlavnoVyklyuchit();
|
||||||
|
bool Vklyucheno();
|
||||||
void Vklyuchit();
|
void Vklyuchit();
|
||||||
void Vyklyuchit();
|
void Vyklyuchit();
|
||||||
|
void Yarkost(int i);
|
||||||
|
void Enable();
|
||||||
|
void Disable();
|
||||||
void TaskSveta();
|
void TaskSveta();
|
||||||
|
|
||||||
|
|
||||||
const unsigned long VREMYA_SVETA = 20000; TickType_t loopBlockTime = pdMS_TO_TICKS(1000); int vklYarkBlockTime = 10; TickType_t vyklYarkBlockTime = pdMS_TO_TICKS(50); bool vkl; unsigned long kogdaVyklyuchit; void initSvet() {
|
const int MAX_YARKOST = 100; const int MIN_YARKOST = 0; const unsigned long VREMYA_SVETA = 20000; TickType_t loopBlockTime = pdMS_TO_TICKS(1000); int vklYarkBlockTime = 10; TickType_t vyklYarkBlockTime = pdMS_TO_TICKS(50); int yarkost; unsigned long kogdaVyklyuchit; void initSvet() {
|
||||||
vkl=false; kogdaVyklyuchit=0; Vyklyuchit();
|
yarkost=0; kogdaVyklyuchit=0; Vyklyuchit();
|
||||||
}
|
}
|
||||||
void DvizhEst(int start) {
|
void DvizhEst() {
|
||||||
kogdaVyklyuchit=millis()+VREMYA_SVETA; if (!vkl) { vkl=true; if (DEBUG) { Serial.println("Vkl svet"); } PlavnoVklyuchit(start); }
|
kogdaVyklyuchit=millis()+VREMYA_SVETA; if (!Vklyucheno()) { if (DEBUG) { Serial.println("Vkl svet"); } PlavnoVklyuchit(); }
|
||||||
}
|
}
|
||||||
void DvizhaNet() {
|
void DvizhaNet() {
|
||||||
if (kogdaVyklyuchit>millis()) { return; } if (vkl) { vkl=false; if (DEBUG) { Serial.println("Vykl"); } PlavnoVyklyuchit(); }
|
if (kogdaVyklyuchit>millis()) { return; } if (Vklyucheno()) { if (DEBUG) { Serial.println("Vykl"); } PlavnoVyklyuchit(); }
|
||||||
}
|
}
|
||||||
void PlavnoVklyuchit(int start) {
|
void PlavnoVklyuchit() {
|
||||||
digitalWrite(SVET_ONOFF_PIN,1); int i; for(i=start; i>=0; i--) {analogWrite(SVET_YARK_PIN,i); if (DEBUG) { Serial.println(i); } delay(vklYarkBlockTime);} Vklyuchit();
|
Enable(); for(yarkost=yarkost; yarkost<=MAX_YARKOST; yarkost++) {Yarkost(yarkost); if (DEBUG) { Serial.println(yarkost); } delay(vklYarkBlockTime);} Vklyuchit();
|
||||||
}
|
}
|
||||||
void PlavnoVyklyuchit() {
|
void PlavnoVyklyuchit() {
|
||||||
int v; int i; for(i=0; i<=255; i++) {analogWrite(SVET_YARK_PIN,i); if (DEBUG) { Serial.println(i); } v=ulTaskNotifyTake(0,vyklYarkBlockTime); if (v>0) { DvizhEst(i); return; }} Vyklyuchit();
|
int v; for(yarkost=yarkost; yarkost>=MIN_YARKOST; yarkost--) {Yarkost(yarkost); if (DEBUG) { Serial.println(yarkost); } v=ulTaskNotifyTake(0,vyklYarkBlockTime); if (v>0) { DvizhEst(); return; }} Vyklyuchit();
|
||||||
|
}
|
||||||
|
bool Vklyucheno() {
|
||||||
|
return yarkost>0;
|
||||||
}
|
}
|
||||||
void Vklyuchit() {
|
void Vklyuchit() {
|
||||||
digitalWrite(SVET_YARK_PIN,0); digitalWrite(SVET_ONOFF_PIN,1);
|
Yarkost(MAX_YARKOST); Enable();
|
||||||
}
|
}
|
||||||
void Vyklyuchit() {
|
void Vyklyuchit() {
|
||||||
digitalWrite(SVET_YARK_PIN,1); digitalWrite(SVET_ONOFF_PIN,0);
|
Yarkost(MIN_YARKOST); Disable();
|
||||||
|
}
|
||||||
|
void Yarkost(int i) {
|
||||||
|
analogWrite(SVET_YARK_PIN,255-i);
|
||||||
|
}
|
||||||
|
void Enable() {
|
||||||
|
digitalWrite(SVET_ONOFF_PIN,1);
|
||||||
|
}
|
||||||
|
void Disable() {
|
||||||
|
digitalWrite(SVET_ONOFF_PIN,0);
|
||||||
}
|
}
|
||||||
void TaskSveta() {
|
void TaskSveta() {
|
||||||
int v; while(1) {v=ulTaskNotifyTake(0,loopBlockTime); if (v>0) { DvizhEst(255); } else { DvizhaNet(); }}
|
int v; while(1) {v=ulTaskNotifyTake(0,loopBlockTime); if (v>0) { DvizhEst(); } else { DvizhaNet(); }}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,31 +8,36 @@ import (
|
||||||
"my/go-controller/timer"
|
"my/go-controller/timer"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// 150 - примерно то же, что и 255 (должно быть те 1.25В где-то там же)
|
||||||
|
// 100 - средненько
|
||||||
|
|
||||||
|
const MAX_YARKOST int = 100
|
||||||
|
const MIN_YARKOST int = 0
|
||||||
|
|
||||||
const VREMYA_SVETA uint32 = 20000
|
const VREMYA_SVETA uint32 = 20000
|
||||||
|
|
||||||
var loopBlockTime task.TickType = task.MS_TO_TICKS(1000)
|
var loopBlockTime task.TickType = task.MS_TO_TICKS(1000)
|
||||||
var vklYarkBlockTime int = 10
|
var vklYarkBlockTime int = 10
|
||||||
var vyklYarkBlockTime task.TickType = task.MS_TO_TICKS(50)
|
var vyklYarkBlockTime task.TickType = task.MS_TO_TICKS(50)
|
||||||
|
|
||||||
var vkl bool
|
var yarkost int
|
||||||
var kogdaVyklyuchit uint32
|
var kogdaVyklyuchit uint32
|
||||||
|
|
||||||
func initSvet() {
|
func initSvet() {
|
||||||
vkl = false
|
yarkost = 0
|
||||||
kogdaVyklyuchit = 0
|
kogdaVyklyuchit = 0
|
||||||
|
|
||||||
Vyklyuchit()
|
Vyklyuchit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func DvizhEst(start int) {
|
func DvizhEst() {
|
||||||
kogdaVyklyuchit = timer.Millis() + VREMYA_SVETA
|
kogdaVyklyuchit = timer.Millis() + VREMYA_SVETA
|
||||||
|
|
||||||
if !vkl {
|
if !Vklyucheno() {
|
||||||
vkl = true
|
|
||||||
if DEBUG {
|
if DEBUG {
|
||||||
serial.Println("Vkl svet")
|
serial.Println("Vkl svet")
|
||||||
}
|
}
|
||||||
PlavnoVklyuchit(start)
|
PlavnoVklyuchit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func DvizhaNet() {
|
func DvizhaNet() {
|
||||||
|
@ -40,8 +45,7 @@ func DvizhaNet() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if vkl {
|
if Vklyucheno() {
|
||||||
vkl = false
|
|
||||||
if DEBUG {
|
if DEBUG {
|
||||||
serial.Println("Vykl")
|
serial.Println("Vykl")
|
||||||
}
|
}
|
||||||
|
@ -49,14 +53,13 @@ func DvizhaNet() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func PlavnoVklyuchit(start int) {
|
func PlavnoVklyuchit() {
|
||||||
digital.Write(SVET_ONOFF_PIN, 1)
|
Enable()
|
||||||
|
|
||||||
var i int
|
for yarkost = yarkost; yarkost <= MAX_YARKOST; yarkost++ {
|
||||||
for i = start; i >= 0; i-- {
|
Yarkost(yarkost)
|
||||||
analog.Write(SVET_YARK_PIN, i)
|
|
||||||
if DEBUG {
|
if DEBUG {
|
||||||
serial.Println(i)
|
serial.Println(yarkost)
|
||||||
}
|
}
|
||||||
timer.Delay(vklYarkBlockTime)
|
timer.Delay(vklYarkBlockTime)
|
||||||
}
|
}
|
||||||
|
@ -65,28 +68,41 @@ func PlavnoVklyuchit(start int) {
|
||||||
}
|
}
|
||||||
func PlavnoVyklyuchit() {
|
func PlavnoVyklyuchit() {
|
||||||
var v int
|
var v int
|
||||||
var i int
|
for yarkost = yarkost; yarkost >= MIN_YARKOST; yarkost-- {
|
||||||
for i = 0; i <= 255; i++ {
|
Yarkost(yarkost)
|
||||||
analog.Write(SVET_YARK_PIN, i)
|
|
||||||
if DEBUG {
|
if DEBUG {
|
||||||
serial.Println(i)
|
serial.Println(yarkost)
|
||||||
}
|
}
|
||||||
|
|
||||||
v = task.TaskNotifyTake(0, vyklYarkBlockTime)
|
v = task.TaskNotifyTake(0, vyklYarkBlockTime)
|
||||||
if v > 0 {
|
if v > 0 {
|
||||||
DvizhEst(i)
|
DvizhEst()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Vyklyuchit()
|
Vyklyuchit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Vklyucheno() bool {
|
||||||
|
return yarkost > 0
|
||||||
|
}
|
||||||
func Vklyuchit() {
|
func Vklyuchit() {
|
||||||
digital.Write(SVET_YARK_PIN, 0) // логика яркости инвертирована
|
Yarkost(MAX_YARKOST)
|
||||||
digital.Write(SVET_ONOFF_PIN, 1)
|
Enable()
|
||||||
}
|
}
|
||||||
func Vyklyuchit() {
|
func Vyklyuchit() {
|
||||||
digital.Write(SVET_YARK_PIN, 1) // логика яркости инвертирована
|
Yarkost(MIN_YARKOST)
|
||||||
|
Disable()
|
||||||
|
}
|
||||||
|
|
||||||
|
func Yarkost(i int) {
|
||||||
|
// логика яркости инвертирована
|
||||||
|
analog.Write(SVET_YARK_PIN, 255-i)
|
||||||
|
}
|
||||||
|
func Enable() {
|
||||||
|
digital.Write(SVET_ONOFF_PIN, 1)
|
||||||
|
}
|
||||||
|
func Disable() {
|
||||||
digital.Write(SVET_ONOFF_PIN, 0)
|
digital.Write(SVET_ONOFF_PIN, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +121,7 @@ func TaskSveta() {
|
||||||
deferred interrupt event is processed at a time. */
|
deferred interrupt event is processed at a time. */
|
||||||
v = task.TaskNotifyTake(0, loopBlockTime)
|
v = task.TaskNotifyTake(0, loopBlockTime)
|
||||||
if v > 0 {
|
if v > 0 {
|
||||||
DvizhEst(255)
|
DvizhEst()
|
||||||
} else {
|
} else {
|
||||||
DvizhaNet()
|
DvizhaNet()
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче