Измените обратные вызовы для двух кнопок на правильные функции.
self.printButton = Button(frame,
text="Start",
bg="green",
fg="black",
command=<b>lambda: solenoid_on(21)</b>,
width=20,
height=5)
и
self.printButton = Button(frame,
text="Start",
bg="red",
fg="black",
command=<b>lambda: solenoid_off(21)</b>,
width=20,
height=5)
Затем создайте экземпляр Cycle
с помощью
c = Cycle(root)
перед начало события l oop.