from machine import Pin, ADC, I2C
import time
import ssd1306
student_name = "Demchuk"
i2c = I2C(scl=Pin(22), sda=Pin(21))
lcd = ssd1306.SSD1306_I2C(128, 64, i2c)
sensor_pins = [34, 35, 36, 39, 32, 33, 25, 26]
num_sensors = len(sensor_pins)
sensor_max_voltages = [5.0, 3.3, 4.0, 5.0, 2.5, 5.0, 5.0, 3.3]
sensor_thresholds = [3.0, 2.0, 2.5, 4.0, 1.0, 3.0, 3.5, 2.0]
sensors = [ADC(Pin(pin)) for pin in sensor_pins]
def map_to_voltage(reading, sensor_idx):
return (reading / 4095) * sensor_max_voltages[sensor_idx]
while True:
sensor_values = []
statuses = []
for i in range(num_sensors):
sensor_values.append(sensors[i].read())
voltage = map_to_voltage(sensor_values[i], i)
status = 1 if voltage > sensor_thresholds[i] else 0
statuses.append(status)
= print(f"Sensor {i + 1}: {voltage:.2f}V | Status: {status}")
= lcd.fill(0)
lcd.text('Sensor Status:', 0, 0)
for i in range(num_sensors):
lcd.text(f'{statuses[i]} ', 0, 10 + i*10)
lcd.show()
time.sleep(0.5)