Setting Pin and Device Values
In this section, we discuss writing data to:
- Digital pins.
- PWM pins.
- Piezo tone devices.
- Servo motors.
- Stepper motors.
Note: I2C devices are discussed in the next section of this guide.
analog_write
async def analog_write(self, pin, value)
This is an alias for PWM_write
It may be removed in the future.
Set the selected pin to the specified value.
:param pin: Analog output pin number
:param value: Pin value (0 - 0x4000)
Example:
Notes:
The value parameter is typically set between 0 and 255.
digital_write
async def digital_write(self, pin, value)
Set the specified pin to the specified value.
:param pin: arduino pin number
:param value: pin value (1 or 0)
Example:
pwm_write
async def pwm_write(self, pin, value)
Set the selected pin to the specified value.
:param pin: PWM pin number
:param value: Pin value (0 - 0x4000)
Example:
Notes:
The value parameter is typically set between 0 and 255.
play_tone
async def play_tone(self, pin_number, frequency, duration)
This is FirmataExpress feature
Play a tone at the specified frequency for the specified duration.
:param pin_number: arduino pin number
:param frequency: tone frequency in hz
:param duration: duration in milliseconds
Example:
play_tone_continuously
async def play_tone_continuously(self, pin_number, frequency)
This is a FirmataExpress feature
This method plays a tone continuously until play_tone_off is called.
:param pin_number: arduino pin number
:param frequency: tone frequency in hz
Example:
play_tone_off
async def play_tone_off(self, pin_number)
This is a FirmataExpress Feature
This method turns tone off for the specified pin.
:param pin_number: arduino pin number
Example:
servo_write
async def servo_write(self, pin, position)
This is an alias for pwm_write to set the position of a servo that has
been previously configured using set_pin_mode_servo.
:param pin: arduino pin number
:param position: servo position
Example:
Notes:
For an angular servo, the position parameter is set between 0 and 180 (degrees). For a continuous servo, 0 is full-speed in one direction, 180 is full speed in the other, and a value near 90 is no movement.
stepper_write
async def stepper_write(self, motor_speed, number_of_steps)
This is a FirmataExpress feature
Move a stepper motor for the number of steps at the specified speed.
This is a FirmataPlus feature.
:param motor_speed: 21 bits of data to set motor speed
:param number_of_steps: 14 bits for number of steps & direction positive is
forward, negative is reverse
Example:
Copyright (C) 2020 Alan Yorinks. All Rights Reserved.