frvn — Introducción
frvn es la API de bajo nivel del protocolo. Trabajas con la placa “a pelo” a
través del objeto global board: configuras pines, lees entradas y escribes salidas.
Da control fino y cubre casos que no tienen un componente de alto nivel en
frvn componentes. Puedes mezclar ambos
estilos en el mismo boardCode.
El patrón de trabajo
Sección titulada «El patrón de trabajo»Casi todo en board sigue tres pasos:
- Configura el pin con un modo:
board.pinMode(pin, board.MODES.OUTPUT). - Escribe (
digitalWrite,analogWrite…) o lee (digitalRead,analogRead…). - Las lecturas son por eventos: pasas un callback que la plataforma llama cuando llega un dato nuevo desde la placa. No “preguntas y esperas”; te avisan.
board.pinMode(13, board.MODES.OUTPUT);board.digitalWrite(13, board.HIGH);Niveles digitales: board.HIGH y board.LOW
Sección titulada «Niveles digitales: board.HIGH y board.LOW»board.HIGHvale1: voltaje alto (5 V o 3,3 V según la placa).board.LOWvale0: 0 V (masa/GND).
Sirven tanto para escribir un nivel como para comparar lo que lees.
Notación que verás en esta sección
Sección titulada «Notación que verás en esta sección»En las páginas de buses (I2C, SPI, serie…) aparecen estas convenciones; conviene tenerlas claras de entrada:
- Hexadecimal (
0x68): un número escrito en base 16. El prefijo0xlo indica. Direcciones y registros se escriben así porque es como vienen en los datasheets.0x68es104en decimal: son el mismo número, solo cambia la forma de escribirlo. - Byte: un número entre
0y255(8 bits). Es la unidad mínima con la que hablan los buses. - Arreglo de bytes (
[0x6B, 0x00]): una lista de bytes que se envía o se recibe de un dispositivo, en orden.
Modos de pin: board.MODES
Sección titulada «Modos de pin: board.MODES»Cada pin se configura con un modo. Los que usarás:
| Modo | Para qué |
|---|---|
board.MODES.OUTPUT | salida digital (encender/apagar) |
board.MODES.INPUT | entrada digital |
board.MODES.PULLUP | entrada digital con resistencia pull-up interna |
board.MODES.ANALOG | entrada analógica |
board.MODES.PWM | salida PWM (analógica simulada) |
board.MODES.SERVO | servomotor |
board.MODES.I2C | bus I2C |
board.MODES.SPI | bus SPI |
board.MODES.SERIAL | puerto serie secundario |
board.MODES.DHT | sensor de temperatura/humedad |
board.MODES.FREQUENCY | conteo de pulsos/frecuencia |
(Muchos métodos —como analogRead o i2cConfig— ya ponen el modo correcto por ti;
lo verás en cada sección.)
Propiedades útiles de la placa
Sección titulada «Propiedades útiles de la placa»board.pins— arreglo con el estado de cada pin (modo y valor actuales).board.analogPins— mapa de índice analógico → número de pin físico.board.RESOLUTION— resolución de la placa. En placas Arduino clásicas, la entrada analógica va de 0 a 1023 y la salida PWM de 0 a 255.
Recuerda: tu código es autocontenido
Sección titulada «Recuerda: tu código es autocontenido»Cada guardado reinicia la placa y ejecuta tu boardCode desde cero. Abre los buses al
inicio (board.i2cConfig(...), board.spiBegin(...), board.serialConfig(...)) y no
asumas que un pin quedó configurado de antes. Ver
El entorno.
En esta sección
Sección titulada «En esta sección»Pines digitales · analógicos · intervalo de muestreo · PWM · servo · I2C · SPI · serie · DHT · frecuencia · consultas · avanzado · no soportado.