50hz triac phase control with zero crossing timing synchronization. 100micro second timing tolerance or better. I ended up porting to Arduino/C++, too many limitations with UIFlow for now, python maybe to slow anyway. UIFlow is a good tool for higher level/basic control.
Posts made by birdsong
-
RE: UIFlow digital input interrupt
-
UIFlow digital input interrupt
In UIFlow is it possible to use an interrupt on an input? when I get a sub millisecond low signal on an input I would like to run some code.
-
RE: uiflow non-volatile memory - save variables
Thanks, I see eeprom option when I change ver to beta in UIFlow. Data in is stored as strings, that simplifies things.
-
M5Stack Delete App from App List UIFlow V1.5.4
How do I delete apps from the app list with the UIFlow firmware loaded?
-
uiflow non-volatile memory - save variables
In UIFlow, how do I save variables to non-volitile memory? When the M5stack starts I would like to load saved variables so I don't have to re set them every time the power is cycled. If there is a blackout I don't want to loose the current settings.
-
RE: How to set data type and intial values.
Converts to;if bRunFan and bRunFan != bRunFanOld: fPvHrs = 0.01 if bTm6min and bRunFan: fPvHrs = fPvHrs + 0.01 bRunFanOld = bRunFan
Thanks M5stack, this worked.
I didn't want to divide by 10 because I would have to do that everywhere, slow the execution speed, its a slippery slope. The esp32 has very long divide instruction time compared to addition and multiplication. -
How to set data type and intial values.
How can a make blockly keep a data type? this Function doesnt work, because 0.1 rounds down to 0 every time the code is executed. It is for an hour meter, I want to add 0.1 every 6mins.
This is what blockly automaticaly generates;if bTm6min and bRunFan: fPvHrs = (fPvHrs if isinstance(fPvHrs, Number) else 0) + 0.1
When i manually change the code the problem goes away until blockly reverts back to the old code again.fPvHrs = fPvHrs + 0.1
-
RE: Button Error
@m5stack Its ok thanks, problem solved. I gave the text label the name 'btnA' which is already a M5stack function, so renamingthe label cleared the problem.
-
RE: Button Error
@birdsong said in Button Error:
Solution:
I gave text a label btnA, when I changed it to labelA that bug was cleared. -
RE: Delivery times to Australia
Mine took 5 days to arrive in QLD through digi-key.
-
Button Error
What do you think is causing the error "'M5TextBox' object has no attribute 'wasReleased'" to display on the screen when I download the program to a M5stack?
def buttonC_wasReleased(): global bDecreaseSp, iMenu, bIncreaseSp, bTm250ms, thrd10ms, iBackLtTm20min, thrdDispStatBar, thrdDispPvSp, fPvHrs, bTm1s, thrdCtrlFan, thrd20ms, fPvTemp, bRunFan, bRunFanOld, bTm6min, thrd30ms, iTm250ms, bTm15min, iSpMode, iStatus, thrd40ms, fSpTemp, fSpRH, fSpMaxHrs, thrd50ms, thrd60ms, fPvRH, iTm1s, fSpHrs, iTm6min, iTm15min bDecreaseSp = True iBackLtTm20min = 4800 pass btnC.wasReleased(buttonC_wasReleased) def buttonA_wasReleased(): global bDecreaseSp, iMenu, bIncreaseSp, bTm250ms, thrd10ms, iBackLtTm20min, thrdDispStatBar, thrdDispPvSp, fPvHrs, bTm1s, thrdCtrlFan, thrd20ms, fPvTemp, bRunFan, bRunFanOld, bTm6min, thrd30ms, iTm250ms, bTm15min, iSpMode, iStatus, thrd40ms, fSpTemp, fSpRH, fSpMaxHrs, thrd50ms, thrd60ms, fPvRH, iTm1s, fSpHrs, iTm6min, iTm15min iMenu = (iMenu if isinstance(iMenu, Number) else 0) + 1 iBackLtTm20min = 4800 pass btnA.wasReleased(buttonA_wasReleased) def buttonB_wasReleased(): global bDecreaseSp, iMenu, bIncreaseSp, bTm250ms, thrd10ms, iBackLtTm20min, thrdDispStatBar, thrdDispPvSp, fPvHrs, bTm1s, thrdCtrlFan, thrd20ms, fPvTemp, bRunFan, bRunFanOld, bTm6min, thrd30ms, iTm250ms, bTm15min, iSpMode, iStatus, thrd40ms, fSpTemp, fSpRH, fSpMaxHrs, thrd50ms, thrd60ms, fPvRH, iTm1s, fSpHrs, iTm6min, iTm15min bIncreaseSp = True iBackLtTm20min = 4800 pass btnB.wasReleased(buttonB_wasReleased)