# coding: latin1 ''' Baseado no exemplo disponibilizado pela biblioteca Exemplo de manipulação de GPIO como entrada usando a bilbioteca wiringx86 Gustavo Voltani von Atzingen 15/04/2017 Updated: 28/09/2017 Curso IoT 2017 - IFSP Piracicaba ''' import time from wiringx86 import GPIOGalileo as GPIO pinos = GPIO(debug=False) numero_pino = 13 pinos.pinMode(numero_pino, pinos.INPUT) try: while True: print pinos.digitalWrite(numero_pino) time.sleep(1) except KeyboardInterrupt: print '\nLimpando o uso para fechar o programa' pinos.cleanup()
def main(argv): gpio = GPIO(debug=True) pin = 13 state = gpio.HIGH servo_pin = 9 gpio.pinMode(pin, gpio.OUTPUT) gpio.pinMode(servo_pin, gpio.PWM) # PWM period for G2 is same for all pins so second call is redundant pwm_period = 3000000 gpio.setPWMPeriod(servo_pin, pwm_period) # Turn on LED gpio.digitalWrite(pin, gpio.HIGH) # Read analog input from pin 14 adc_l = 14 # A0 # Set pin 14 to be used as an analog input GPIO pin. gpio.pinMode(adc_l, gpio.ANALOG_INPUT) # With a 100 Ohm resistor and 3.3K resistor and 10k Pot the min max vals # read from the ADC are around min_val = 204 max_val = 994 val_range = float(max_val - min_val) # Servo min and max pulse in ms min_pulse = 500000 max_pulse = 2500000 pulse_range = float(max_pulse-min_pulse) print 'Analog reading from pin %d now...' % adc_l try: old_pulse_length = 0 while(True): value_l = gpio.analogRead(adc_l) print value_l print "" norm_val = float(value_l - min_val) / val_range norm_val = min( max(0.0, norm_val), 1.0 ) print norm_val # What is duty cycle? pulse_length = (norm_val * pulse_range) + min_pulse pulse_pct = float(abs(pulse_length - old_pulse_length)) / \ float(pulse_length) # Only write new duty cycle if there is significant change from # previous value if pulse_pct > 0.02: gpio.analogWrite(servo_pin, \ int(float(pulse_length)/pwm_period * 255.0)) else: pass old_pulse_length = pulse_length time.sleep(0.2) except KeyboardInterrupt: gpio.analogWrite(servo_pin, 0) # Leave the led turned off. gpio.digitalWrite(pin, gpio.LOW) print '\nCleaning up...' gpio.cleanup()
print 'Setting up pin %d' % pin gpio.pinMode(pin, gpio.OUTPUT) gpio.pinMode(analogpin, gpio.ANALOG_INPUT) print 'Blinking pin %d now...' % pin try: while (True): # Write a state to the pin. ON or OFF. gpio.digitalWrite(pin, state) value = gpio.analogRead(analogpin) temp = value * 5 / 1024.0 temp_2 = temp - 0.5 temp_3 = (temp_2 / 0.01) print "Value from " + str(analogpin) + " is: " + str( value) + " | temp: " + str(temp_3) # Toggle the state. state = gpio.LOW if state == gpio.HIGH else gpio.HIGH # Sleep for a while. time.sleep(0.5) # When you get tired of seeing the led blinking kill the loop with Ctrl-C. except KeyboardInterrupt: # Leave the led turned off. print '\nCleaning up...' gpio.digitalWrite(pin, gpio.LOW) # Do a general cleanup. Calling this function is not mandatory. gpio.cleanup()
def main(argv): gpio = GPIO(debug=True) pin = 13 state = gpio.HIGH servo_pin = 9 gpio.pinMode(pin, gpio.OUTPUT) gpio.pinMode(servo_pin, gpio.PWM) # PWM period for G2 is same for all pins so second call is redundant pwm_period = 3000000 gpio.setPWMPeriod(servo_pin, pwm_period) # Turn on LED gpio.digitalWrite(pin, gpio.HIGH) # Read analog input from pin 14 adc_l = 14 # A0 # Set pin 14 to be used as an analog input GPIO pin. gpio.pinMode(adc_l, gpio.ANALOG_INPUT) # With a 100 Ohm resistor and 3.3K resistor and 10k Pot the min max vals # read from the ADC are around min_val = 204 max_val = 994 val_range = float(max_val - min_val) # Servo min and max pulse in ms min_pulse = 500000 max_pulse = 2500000 pulse_range = float(max_pulse - min_pulse) print 'Analog reading from pin %d now...' % adc_l try: old_pulse_length = 0 while (True): value_l = gpio.analogRead(adc_l) print value_l print "" norm_val = float(value_l - min_val) / val_range norm_val = min(max(0.0, norm_val), 1.0) print norm_val # What is duty cycle? pulse_length = (norm_val * pulse_range) + min_pulse pulse_pct = float(abs(pulse_length - old_pulse_length)) / \ float(pulse_length) # Only write new duty cycle if there is significant change from # previous value if pulse_pct > 0.02: gpio.analogWrite(servo_pin, \ int(float(pulse_length)/pwm_period * 255.0)) else: pass old_pulse_length = pulse_length time.sleep(0.2) except KeyboardInterrupt: gpio.analogWrite(servo_pin, 0) # Leave the led turned off. gpio.digitalWrite(pin, gpio.LOW) print '\nCleaning up...' gpio.cleanup()