import time
from machine import Pin, PWM, SoftI2C
import ssd1306
time.sleep(0.1) # Wait for USB to become ready
botaoentrada = Pin(0, Pin.IN, Pin.PULL_DOWN)
botaosaida = Pin(3, Pin.IN, Pin.PULL_DOWN)
iluminacao = Pin(22, Pin.OUT)
i2c1 = SoftI2C(scl=Pin(17), sda=Pin(16))
i2c2 = SoftI2C(scl=Pin(21), sda=Pin(20))
oled1 = ssd1306.SSD1306_I2C(128, 64, i2c1)
oled2 = ssd1306.SSD1306_I2C(128, 64, i2c2)
red_entrada = PWM(Pin(14))
green_entrada = PWM(Pin(15))
red_saida = PWM(Pin(18))
green_saida = PWM(Pin(19))
cancela1 = PWM(Pin(27))
cancela2 = PWM(Pin(26))
cancela1.freq(50)
cancela2.freq(50)
red_entrada.freq(1000)
red_saida.freq(1000)
green_entrada.freq(1000)
green_saida.freq(1000)
contagemcarros = 0
vagas = 9
while True:
cancela1.duty_u16(4833)
cancela2.duty_u16(4833)
red_entrada.duty_u16(65535)
red_saida.duty_u16(65535)
if vagas > 0:
oled1.fill(0)
oled1.text("HJV Parking", 0, 0)
oled1.text("Vagas: {}".format(vagas), 0, 20)
oled1.text("Vaga disponivel!", 0, 40)
oled1.show()
elif vagas == 0:
oled1.fill(0)
oled1.text("HJV Parking", 0, 0)
oled1.text("Vagas: {}".format(vagas), 0, 20)
oled1.text("Sem vagas!", 0, 40)
oled1.show()
if vagas == 9:
iluminacao.value(False)
elif vagas <= 8:
iluminacao.value(True)
if botaoentrada.value():
time.sleep(0.5)
contagemcarros = contagemcarros + 1
print(contagemcarros)
if contagemcarros <= 9:
cancela1.duty_u16(1802)
red_entrada.duty_u16(0)
green_entrada.duty_u16(65535)
vagas = vagas - 1
oled1.fill(0)
oled1.text("HJV Parking", 0, 0)
oled1.text("Vagas: {}".format(vagas), 0, 20)
oled1.text("Seja bem vindo!", 0, 40)
oled1.show()
time.sleep(5)
green_entrada.duty_u16(0)
else:
oled1.fill(0)
oled1.text("HJV Parking", 0, 0)
oled1.text("Sem vagas!", 0, 20)
oled1.text("Volte em breve!", 0, 40)
oled1.show()
time.sleep(5)
contagemcarros = contagemcarros - 1
elif botaosaida.value():
time.sleep(0.5)
if contagemcarros == 0:
print("X")
else:
contagemcarros = contagemcarros - 1
print(contagemcarros)
cancela2.duty_u16(1802)
red_saida.duty_u16(0)
green_saida.duty_u16(65535)
vagas = vagas + 1
oled2.poweron()
oled2.fill(0)
oled2.text("HJV Parking", 0, 0)
oled2.text("Volte Sempre!", 0, 20)
oled2.show()
time.sleep(5)
green_saida.duty_u16(0)
oled2.poweroff()