Picaxe Dimmer |
|
To gain access to revision questions, please sign up and log in.


Note the improvised switches. Just press the brown and black wires down to make the pull-up connection to the + supply line..


; ==================================
; ===== INITIALISE THE PROGRAM =====
; ==================================
setfreq em16 ; External-clock Megahertz 16
; ===== Rename b1, b2 and b3 to make the program easier to read =====
symbol pulse_high = b1
symbol pulse_low = b2
symbol portc_data = b3
; ===== Start the program with about 50:50 mark space ratio
pulse_high = 128 ; 128 / 4 milliseconds
pulse_low = 255 - pulse_high ; (255 - 128) / 4 milliseconds
; =================================
; ===== THE MAIN PROGRAM LOOP =====
; =================================
start:
; ===== PULSE WIDTH MODULATION =============
high 0 ; Turn the motor on
pause pulse_high ; Short time delay
low 0 ; Turn the motor off
pause pulse_low ; Short time delay
; ==========================================
portc_data = pins ; Poll the speed control switches
; ===== Speed the motor up if this switch is pressed ==================
if portc_data = 1 then ; Test the switch on C.0
inc pulse_high ; If it's pressed, increase the pulse_high time
if pulse_high = 0 then; Prevent pulse_high going above 255
pulse_high = 255 ; Since 255 + 1 = 0, fix that problem
end if
pulse_low = 255 - pulse_high ; Calculate pulse_low
end if
; =====================================================================
; ===== Slow the motor down if this switch is pressed =================
if portc_data = 2 then ; Test the switch on C.1
dec pulse_high ; If it's pressed, decrease the pulse_high time
if pulse_high = 255 then; Prevent pulse_high going below 0
pulse_high = 0 ; Since 0 - 1 = 255, fix that problem
end if
pulse_low = 255 - pulse_high ; Calculate pulse_low
end if
; =====================================================================
jmp start ; Repeat the whole program loop
; =====================================================================
reviseOmatic V3 Contacts, ©, Cookies, Data Protection and Disclaimers Hosted at linode.com, London