class SIPO_IC: def __init__(self,baudrate): self.baudrate=baudrate self.setup() self.run() self.exit() def setup(self): self.obj_arduino=Arduino() self.port=self.obj_arduino.locateport() self.obj_arduino.open_serial(1,self.port,self.baudrate) def run(self): pinstate=0 data=[0 for _ in range(0,8)] #an 8-elements list representing an 8 bit binary number dataPin=11 clockPin=9 latchPin=10 inPin=5 for _ in range(0,50): pinstate=self.obj_arduino.cmd_digital_in(1,inPin) if pinstate=='1': data[0]=1 #the msb becomes 1 when input is given #high which is henceforth shifted else: data[0]=0 print data self.obj_arduino.cmd_digital_out(1,latchPin,0) self.obj_arduino.cmd_shift_out(dataPin,clockPin,'LSBFIRST',data) self.obj_arduino.cmd_digital_out(1,latchPin,1) sleep(0.5) for k in range(0,7): data[7-k]=data[6-k] data[0]=0 #every element of the matrix is #shifted one place to the right #so effectively the 8 bit #binary number is divided by 2 def exit(self): self.obj_arduino.close_serial()
class SIPO_IC: def __init__(self,baudrate): self.baudrate=baudrate self.setup() self.run() self.exit() def setup(self): self.obj_arduino=Arduino() self.port=self.obj_arduino.locateport() self.obj_arduino.open_serial(1,self.port,self.baudrate) # self.obj_icm=IC_methods(self.baudrate) def run(self): dataPin=11 clockPin=9 latchPin=10 #inPin=5 for x in range(0,256): self.obj_arduino.cmd_digital_out(1,latchPin,0) #So that the data is stored and not passed on to the output LEDs self.obj_arduino.cmd_shift_out(dataPin,clockPin,'MSBFIRST',x) self.obj_arduino.cmd_digital_out(1,latchPin,1) #So that the stored data is now passed on to the output LEDs #and the output is obtained sleep(0.5) def exit(self): self.obj_arduino.close_serial()
class SIPO_IC: def __init__(self, baudrate): self.baudrate = baudrate self.setup() self.run() self.exit() def setup(self): self.obj_arduino = Arduino() self.port = self.obj_arduino.locateport() self.obj_arduino.open_serial(1, self.port, self.baudrate) def run(self): pinstate = 0 data = [0 for _ in range(0, 8) ] #an 8-elements list representing an 8 bit binary number dataPin = 11 clockPin = 9 latchPin = 10 inPin = 5 for _ in range(0, 50): pinstate = self.obj_arduino.cmd_digital_in(1, inPin) if pinstate == '1': data[0] = 1 #the msb becomes 1 when input is given #high which is henceforth shifted else: data[0] = 0 print data self.obj_arduino.cmd_digital_out(1, latchPin, 0) self.obj_arduino.cmd_shift_out(dataPin, clockPin, 'LSBFIRST', data) self.obj_arduino.cmd_digital_out(1, latchPin, 1) sleep(0.5) for k in range(0, 7): data[7 - k] = data[6 - k] data[0] = 0 #every element of the matrix is #shifted one place to the right #so effectively the 8 bit #binary number is divided by 2 def exit(self): self.obj_arduino.close_serial()