REM temperature monitor, Joost & Jurjen Kranenborg symbol number_of_measurements = 255 symbol measured = b2 symbol counter = b0 symbol temp_value = b4 symbol eeprom_pointer = b1 symbol counter_w = w3 symbol temp_inputpin = 0 symbol measure_or_send_inputpin = pin7 symbol Vcc_DS18B20 = 0 symbol leds_off = %00000000 symbol leds_on = %11100000 symbol led_red_on = %00100000 initialize: let eeprom_pointer = 0 let pins = leds_on nap 7 let pins = leds_off low Vcc_DS18B20 main: if measure_or_send_inputpin = 1 then send_results measurements: gosub signal_start_measurements for measured = 0 to number_of_measurements pulsout 7, 10000 gosub measure_temperature gosub store_temperature_in_eeprom gosub pause_interval next gosub signal_measurements_finished end send_results: gosub signal_send_measurements gosub send_measurements end ;======================================== ;======================================== signal_start_measurements: for counter = 1 to 10 let pins = leds_on nap 5 let pins = leds_off nap 5 next return signal_send_measurements: for counter = 1 to 5 let pins = led_red_on nap 5 let pins = leds_off nap 5 next return measure_temperature: high Vcc_DS18B20 ; turn Vcc for DS18B20 on sleep 1 ; wait for temperature conversion to be completed readtemp temp_inputpin, temp_value ; read temperature sensor low Vcc_DS18B20 ; turn sensor off to save power return store_temperature_in_eeprom: write eeprom_pointer, temp_value let eeprom_pointer = eeprom_pointer + 1 return pause_interval: for counter = 1 to 73 pulsout 6, 2000 sleep 1 next return send_measurements: pause 1000 sertxd("tempwaarde:", 13, 10) for counter = 0 to number_of_measurements read eeprom_pointer, temp_value let eeprom_pointer = eeprom_pointer + 1 sertxd(#temp_value, 13, 10) next return signal_measurements_finished: for counter_w = 1 to 500 high 5 nap 3 low 5 nap 6 next return