Camless Engine Capstone project attempt on a 25cc edger engine w/ electronic ignition by WVU students and the help of a very intelligent professor. We ran out of time before we get it to run consistently.
main(){ wait for pulse loop IF pulse port goto 'openintakevalve' ELSE 'wait for pulse loop' goto 'openintakevalve' countdown goto 'closeintakevalve' countdown wait for pulse loop goto 'spark' countdown goto 'openexhaustvalve' countdown gotoc 'closeexhaustvalve' countdown goto 'openintakevalve' etc, etc. } you 'countdown ' loop is dynamic here. but you have lots of tools in your MCU, watchdog timer, interrupts. this is a RAW idea of code, requires some more logic. been a while, last pic probes
I wish our microcontroller was 40khz. We had six months to design and construct. With limited resources. I'm sure if we had more time and money we could have gone a lot further with the project. 1 second per rotation of the engine is terribly slow. If an engine is running at 3000 RPMs thats 50 revolutions per second thus the intake or exhaust valve will be opening 25 times per second. An absolute encoder proved to be the easiest to implement, and code.
Our rotary encoder is a "abosulte MAGNETIC rotary encoder" it has no moving parts.
It will last as long as the magnet will stay magnetized. I think you might be missing the point to camless engine. We could completely control the valve train digitally. SO it doesn't matter what position the engines in when it stops we can start the engine on any of the 4 cycles when we restart the engine. Retaining the crank position after power down is not necessary.
Mitsubishi was trying to came with this idea, as well as an electric water pump
and further electric brake system, but it never happen
stealhty1 3 months ago
How did you wire the encoder, I got the same one but I have no idea whats up with all the different cables they sent.
wshelto6 10 months ago
'Retaining the crank position after power down is not necessary.'
why not?
how you know, you reached the upper death point?
i have worked as service mechanic in the industry, the machines i saw and worked on, need recalibration after a unexpected los of power happend.
'my machines' calibrate automaticly and have sensors on each end on the all axis.
ofcourse i'm not aware of all models out there.
: ) but yet i'm curious.
naturalyshocked 1 year ago
i know 1 rpm = 1 sec is slow, but was just an example.
naturalyshocked 1 year ago
use bitshift to keep track of the 'strokes' in the cycle.
pulse ... bitshift ... countdown ... bitshift .... countdown ... pulse ... bitshift
a countdown is made by storing a number (i.e. 11111111 (255)) in a register is decrease it with 1 bit and compare with 0
don't forgot some intructions require 2 cycles on the MCU
naturalyshocked 1 year ago
naturalyshocked 1 year ago
@naturalyshocked
I wish our microcontroller was 40khz. We had six months to design and construct. With limited resources. I'm sure if we had more time and money we could have gone a lot further with the project. 1 second per rotation of the engine is terribly slow. If an engine is running at 3000 RPMs thats 50 revolutions per second thus the intake or exhaust valve will be opening 25 times per second. An absolute encoder proved to be the easiest to implement, and code.
bbaldwin1987 1 year ago
@naturalyshocked
Our rotary encoder is a "abosulte MAGNETIC rotary encoder" it has no moving parts.
It will last as long as the magnet will stay magnetized. I think you might be missing the point to camless engine. We could completely control the valve train digitally. SO it doesn't matter what position the engines in when it stops we can start the engine on any of the 4 cycles when we restart the engine. Retaining the crank position after power down is not necessary.
bbaldwin1987 1 year ago
if your microchip = 40khz and your pulse from the upper death point sensor takes 1 second for a full rotation, your mcu has done 土 40 million cycles.
make a main(){...}
that measures 1 revulution and than devides into 2.
that's the time you have for 1 valve to open en close just in time.
if you use assembler you could countdown (decreasing the number or cycle required).
naturalyshocked 1 year ago
but as far as i know, you only use 'rotary encoders' in industrial applications.
i don't know how long they work with lots of rpm.
cars in real live have 1 sensor on the crank, flywheel, enough to serve 4, 6, 8, 12, etc, etc, cyl.
i think your rotary encoder will wear out soon.
how you store the crank position after you powered off?
how do you detect 'upper death point'?
if your math is good, there should be no problem.
i think your looking the wrong direction
naturalyshocked 1 year ago