Beispiel #1
0
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()
Beispiel #2
0
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()