Digital I/O, Timing
Set and Sense Logic Levels¶
Set/Sense logic levels on digital pins SQ1, SQ2, OD1, SEN*, IN2
set_state : set a digital pin to HIGH (5V) /LOW (0V)¶
| parameter | description |
|---|---|
| **kwargs | |
| SQR1, SQR2, OD1 = False(LOW) or True( HIGH) |
Set SQ1 output to 5V, OD1 to 0V
import eyes17.eyes
p = eyes17.eyes.open()
p.set_state(SQR1=True, OD1=False)
get_states : get logic levels on digital input pins¶
p.get_states()
| Returns | description |
|---|---|
| dict | |
| {‘IN2’: T/F, ‘SQR1’: T/F, ‘OD1’: T/F, ‘SEN’: T/F, ‘SQR1_OUT’: T/F} |
Measure state of IN2
import eyes17.eyes
p = eyes17.eyes.open()
states = p.get_states()
print(f" IN2 is {'HIGH' if states['IN2'] else 'LOW'}")
Output for the above
In [1]: import eyes17.eyes
…: p = eyes17.eyes.open()
…: states = p.get_states()
…: print(f" IN2 is {'HIGH' if states['IN2'] else 'LOW'}")
IN2 is HIGH
In [2]: states
Out[2]:
{'IN2': True,
'SQR1': False,
'OD1': False,
'SEN': True,
'SQR1_OUT': False,
'OD1_OUT': False,
'CCS': False}
In [3]:
get_state : get logic level on any digital input pin¶
p.get_state(channel)
| Parameter | description |
|---|---|
| channel | ‘IN2’ , ‘OD1’, or ‘SEN’ |
| Returns | |
| bool | True/False |
Example
In [3]: p.get_state('SEN')
Out[3]: True
Measure Frequencies and time periods¶
get_freq :¶
Frequency measurement on IN2/SEN Measures time taken for 4 rising edges of input signal.
| parameter | description |
|---|---|
| channel | The input to measure frequency from ‘SEN’ / ‘IN2’ |
| return | freq in Hz. 0 if timed out |
p.get_freq('IN2')
Undocumented yet.¶
| ,MeasureInterval, | ,timing measurements for digital signals on IN2 or SEN, |
|---|---|
| ,MeasureMultipleDigitalEdges, | ,timing measurements for digital signals on IN2 or SEN, |
| ,SinglePinEdges, | ,timing measurements for digital signals on IN2 or SEN, |
| ,DoublePinEdges, | ,timing measurements for digital signals on IN2 or SEN, |
| ,stepper_move, | ,Stepper motor movement, |
| ,stepper_forward, | ,Stepper motor movement, |
| ,stepper_reverse, | ,Stepper motor movement, |
| ,set_multiplexer, | ,Set CS1-4 to control analog multiplexers . Only on SEElab3, |
| ,duty_cycle, | ,measure duty cycle on IN2, |
| ,r2rtime, | ,Timing measurements on IN2/SEN. Rising Edge to Rising edge, |
| ,f2ftime, | ,Timing measurements on IN2/SEN. Falling Edge to Falling edge, |
| ,r2ftime, | ,Timing measurements on IN2/SEN. , |
| ,f2rtime, | ,Timing measurements on IN2/SEN. , |
| ,multi_r2rtime, | ,Timing measurements on IN2/SEN. Multiple rising edges. , |
| ,set2rtime, | ,”Enable an output such as OD1/SQ1, and then measure time to a rising edge on IN2/SEN”, |
| ,set2ftime, | ,”Enable an output such as OD1/SQ1, and then measure time to a falling edge”, |
| ,clr2rtime, | ,”Turn off an output such as OD1/SQ1, and then measure time to a rising edge on IN2/SEN”, |
| ,clr2ftime, | ,”Turn off an output such as OD1/SQ1, and then measure time to a falling edge”, |