Écriture logique (0 ou 1)
On utilise comme initialisation la méthode set_pin_mode_digital_output(pin).
Pour l’écriture, on utilise la méthode digital_write(pin,val) où val est 0 ou 1.
Voici un exemple d’une led qui clignote.
from pymata4 import pymata4
import sys
import time
carte = pymata4.Pymata4()
print("--------------- Début --------------")
# Constantes
DELAY = 0.5 # période d'attente
Led_bleue = 13 # Led
carte.set_pin_mode_digital_output(Led_bleue)
time.sleep(1)
for k in range(10):
print('ON')
carte.digital_write(Led_bleue, 0)
time.sleep(DELAY)
print('OFF')
carte.digital_write(Led_bleue, 1)
time.sleep(DELAY)
print("--------------- Fin --------------")
carte.shutdown()
sys.exit(0)
Écriture en PWM
PWM (Pulse Width Modulation) est un procédé permettant de simuler un tension autre que 0 ou 5V sur une patte.
Sur Arduino, certaines pattes numériques D_i (Digital output) accepte le PWM avec Pymata4.
Sur un Arduino UNO, il s’agit des pattes : 3,5,6,9,10 et 11.
On utilise ici les méthodes set_pin_mode_pwm_output(pin) et pwm_write(pin,val) où val est un entier entre 0 et 255.
from pymata4 import pymata4
import sys
import time
carte = pymata4.Pymata4()
print("--------------- Début --------------")
# Constantes
Delai=0.5
Led = 9 # port de la LED (PWM obligatoire)
#---------------- programme principal
val = 0
try :
carte.set_pin_mode_pwm_output(Led)
time.sleep(1)
while True:
for k in range(10):
val = val+10
carte.pwm_write(Led,val)
time.sleep(Delai)
for k in range(10):
val = val-10
carte.pwm_write(Led,val)
time.sleep(Delai)
except KeyboardInterrupt : # si on tape Ctl+C
print("--------------- Fin --------------")
carte.shutdown()
sys.exit(0)