Vatten återvinnare (grå vatten) (3 / 6 steg)
Steg 3: Programmering PIC
http://www.rev-ED.co.uk
Koden är lätt ändras men jag har inte lagt alla "i kretsen" program huvuden på PCB så att du har att ta PIC att programmera.
Schematiskt & PCB kan användas för andra växling / sensor ändamål med kod obligatorisk ändringarna.
Här är den grundläggande koden:-
; Gråvatten controller MK2
symbol PUMP = 0; namn utgång 0 som pumpen
symbol ERROR_LED = 1; namnge resultat 1 som fel (fel) LED
hög waterfloat switch = ingång 3, låg vatten flottör = ingång 4
Låt dirs = % 0000111
Låt stift = % 0000000; se till alla utgångar låg
; nivåvakter är omvänd logik, en 0 betyder att den är påslagen
main_loop:
om input3 = 0 och INGÅNG4 = 0 då debounce; högvatten float mark
om INGÅNG4 = 0 då inc_timer, låg vatten flyta mark
gå till main_loop
inc_timer:
Låt w0 = w0 + 1
om w0 = 36000 sedan start_pump; om vattnet är i tanken i 10 timmar, starta pumpen
Pausa 1000, pausa 1 sekund
gå till main_loop
Debounce:
Pausa 500
om input3 = 1 då main_loop; kontrollera om flottören är fortfarande hög
start_pump:
hög PUMP, slå på pump relay
pump_loop:
om INGÅNG4 = 1 då stop_pump; kontrollera om låg vatten
om w1 = 3600 sedan pump_error; fel om pumpar fungerar oavbrutet i mer än 60 minuter
Låt w1 = w1 + 1
Pausa 1000
gå till pump_loop
stop_pump:
låg pumpen, stoppa pumpen
Låt w0 = 0; Återställ räknaren för inaktuella vatten
Låt w1 = 0; Återställ räknaren för fel
gå till main_loop
pump_error:
låg PUMP, stoppa pumpen
error_loop:
om INGÅNG4 = 1 då exit_loop; bo felaktiga tills tanken tom
hög ERROR_LED
Pausa 500
låg ERROR_LED
Pausa 500
gå till error_loop
exit_loop:
Låt w0 = 0; Återställ räknare
Låt w1 = 0
låg ERROR_LED, återställa fel LED
gå till main_loop
jag ställa upp följande krets på en prototyping styrelse att programmera PIC.