Basic Library
Digital I/O
Analog I/O
Advanced I/O
Time
Math
Trigonometry
Random Numbers
Bits and Bytes
Interrupts
Serial Comm.
Standard Library
Ethernet
Servo Motor
Stepping Motor
Character LCD
SPI
I2C (Wire)
SD Card
SD (File Operations)
Periodic Operation
Clock (RTC)
PPG (Pulse Generator)
WiFiEsp
ICS (Serial Servo)
FreeRTOS Tips
Analog I/O
This library is to input/output an analog signal.
analogReference
- Description
- Configures the reference voltage used for analog input (i.e. the value used as the top of the input range).
- Syntax
- analogReference(uint8_t mode)
- Parameters
- mode:
DEFAULT: 3.3V
INTERNAL: 1.1V (internal voltage)
EXTERNAL: AVREF pin supply voltage - Returns
- None
analogRead
- Description
- Reads the value from the specified analog pin.
- Syntax
- int analogRead(uint8_t analog_pin)
- Parameters
- analog_pin: The number of the analog input pin to read from A0(14) to A5(19) and A6(10) to A9(13)
- Returns
- 0 to 4095
analogWrite
- Description
- Writes an analog value (PWM wave) to a pin. Can be used to light an LED at varying brightnesses or drive a motor at various speeds. The frequency of the PWM signal is approximately 490Hz.
- Syntax
- analogWrite(uint8_t pin, int value);
- Parameters
- pin: The number of the pin
value: The duty cycle of the output PWM (0 - 255). - Returns
- None
analogWriteDAC
- Description
- Outputs digital values which it first converts to analog. Unlike analogWrite, it does not output a PWM signal. 3.3V are output when the digital value is 4095.
- Syntax
- analogWriteDAC(int pin, int value)
- Parameters
- pin: The number of the pin to write to (24 only)
value: Analog converted value (0 - 4095). - Returns
- None
analogWriteFrequency
- Description
- Change the frequency of PWM from the default of 490Hz. The pins 3, 7, 9, 10, and 13 can be changed.
- Syntax
- analogWriteFrequency(uint32_t freq);
- Parameters
- freq: Frequency
- Returns
- None
Sample Program
The LED on the GR-ROSE board lights up smoothly.
#include <Arduino.h>
void setup(){
}
void loop(){
for(int i = 0; i < 256; i++){
analogWrite(PIN_LED1, i);
delay(3);
}
for(int i = 0; i < 256; i++){
analogWrite(PIN_LED1, 256 - i - 1);
delay(3);
}
}