Notas de estudio de Arduino (1): conceptos básicos

Estructura del programa Arduino

Incluye dos funciones principales:

  1. void setup () {} La
    función de configuración se llamará una vez cuando el programa se esté ejecutando, que se usa principalmente para inicializar variables y establecer modos de trabajo de pines.
  2. void loop () {} es
    equivalente a un bucle infinito while (1) {}.
    Por supuesto, puede personalizar la función y ser llamado en las dos funciones anteriores. Tenga en cuenta que la función de configuración y la función de bucle son esenciales.

tipo de datos

Inserte la descripción de la imagen aquíbyte: Un byte, almacena un número sin firmar de 8 bits.
palabra: En Uno y otras placas basadas en ATMEGA, se almacena un número sin firmar de 16 bits; mientras que en Vencimiento y Cero, se almacena un número sin firmar de 32 bits.
matriz: no es un tipo de datos, solo significa que se admite una matriz.
Objeto String (String): se puede crear y asignar un valor o cadena como una variable normal. El operador de asignación no se puede utilizar para matrices de caracteres, pero se puede utilizar para objetos String. La principal desventaja es que ocupa mucha memoria.

Función de tiempo

  1. La función delay (), en milisegundos, bloquea el retraso.
  2. La función delayMicroseconds (), en microsegundos, bloquea el retraso.
  3. La función millis (), en milisegundos, devuelve el tiempo desde que se enciende la placa Arduino.
  4. La función micros (), en microsegundos, devuelve el tiempo desde que se enciende la placa Arduino.

Función de E / S

Los pines de Arduino están en modo de entrada por defecto, mostrando un estado de alta impedancia. El pin se puede establecer en INPUT_PULLUP a través de la función pinMode (), y la resistencia pull-up está habilitada, y el nivel del pin es alto en el estado inactivo. La resistencia pull-up puede proporcionar suficiente corriente para hacer que la luz LED se ilumine.
Cuando el pin está configurado en modo de salida, presentará un estado de baja impedancia.

función pinMode ()

Prototipo de función: pinMode (pin, mode). El pin especificado se puede configurar en modo de entrada o salida. Use el modo INPUT_PULLUP para habilitar la resistencia de pull-up interna, mientras que el modo INPUT deshabilita el pull-up interno.

función digitalWrite ()

Prototipo de función: digitalWrite (pin, valor). El valor ALTO o BAJO se puede escribir en el pin digital designado. Si un pin está configurado en modo INPUT, llame a la función digitalWrite () para habilitar (HIGH) o deshabilitar (LOW) la resistencia interna de pull-up del pin.

función digitalRead ()

Prototipo de función: digitalRead (pin). Se puede leer el nivel del pin digital especificado.

función analogWrite ()

Prototipo de función: analogWrite (pin, valor). Se utiliza para generar una onda PWM con un cierto ciclo de trabajo al pin especificado. Valor: 0 ~ 255 (encendido-apagado). En la mayoría de las placas Arduino, esta función admite los pines digitales 3, 5, 6, 9, 10 y 11, que son pines digitales con "~".

función analogRead ()

Prototipo de función: analogRead (pin). Se puede leer el voltaje del pin analógico designado y se puede devolver el valor AD correspondiente (0 ~ 1023), que corresponde a 0 ~ 5V.

función analogReference ()

Prototipo de función: analogReference (tipo).
El tipo es aceptable:

  1. DEFAULT
    valor de referencia analógica por defecto de 5 o 3.3V
  2. INTERNAL (no aplicable a Arduino Mega)
    referencia incorporada, igual a 1.1V en ATmega168 o ATmega328, e igual a 2.56V en ATmega8
  3. INTERNAL1V1 (para Arduino Mega)
    referencia incorporada 1.1V
  4. INTERNAL2V56 (para Arduino Mega)
    referencia incorporada 2.56V
  5. El
    valor de referencia EXTERNO es el voltaje externo aplicado al pin AREF (limitado al voltaje dentro de 0 a 5 V)

Función de carácter

Inserte la descripción de la imagen aquí

número aleatorio

función randomSeed ()

Prototipo de función: randomSeed (semilla). Generadores de números pseudoaleatorios, en esencia, los números generados se distribuyen aleatoriamente, pero el orden es predecible, es decir, se repetirán. Caso de uso: randomSeed (analogRead (5)); // Recoge el ruido aleatorio del pin analógico 5 (sin usar) y devuelve su valor AD.

función aleatoria ()

Prototipo de función:

  1. largo aleatorio (máx.). Devuelve un número aleatorio entre 0 y máx.
  2. largo aleatorio (mínimo, máximo). Devuelve un número aleatorio que va de mínimo a máximo.

Interrumpir

  1. Interrupción de hardware: la mayoría de los diseños de Arduino tienen dos interrupciones de hardware, los pines correspondientes son los pines digitales 2 y 3.
  2. Interrupción de software: Arduino admite la función attachInterrupt (), y su prototipo de función es: attachInterrupt (digitalPinToInterrupt (pin), ISR, modo);
    o attachInterrupt (pin, ISR, modo), solo admite Arduino Due, placa Zero.
    Entre ellos, ISR es la función de procesamiento de interrupciones designada. Valor del
    modo :
    1) BAJO: disparador de nivel bajo
    2) CAMBIO: disparador de borde de transición
    3) FALLING: disparador de borde descendente

Comunicación Arduino

UART

  1. Configuración de inicialización del puerto serie: Serial.begin (baund). Establezca la velocidad en baudios.
  2. El puerto serie envía datos: Serial.print (datos) o Serial.println (datos), Serial.write (datos).
  3. El puerto serie recibe datos: Serial.read ().

I2C

Utilice pines SDA (datos) y SCL (reloj). Necesita utilizar la biblioteca Wire, es decir, el programa debe incluir el archivo de encabezado Wire.h.

Enviar (anfitrión)

  1. Inicializar, establecer como host: Wire.begin ().
  2. Inicio, especifique la dirección del esclavo I2C: Wire.beginTransmission (addr).
  3. Caché de datos: Wire.write (valor). Utilice la cola para almacenar datos en búfer.
  4. Transmita datos y luego cierre: Wire.endTransmission ().
  5. Solicitud de datos: Wire.requestFrom (dirección, bytes). Solicite una cierta cantidad de bytes de datos del esclavo en la dirección especificada.
  6. Respuesta a la solicitud de datos: Wire.onRequest (func). Cuando se recibe una solicitud de datos, se llama a la función especificada para su procesamiento.

Recibir (esclavo)

  1. Inicialice, configúrelo como esclavo y especifique la dirección: Wire.begin (addr).
  2. Especifique la función de procesamiento de datos de recepción: Wire.onReceive (func).
  3. Supervise si hay datos: Wire.available ().
  4. Recibir datos en el bus I2C: Wire.read ().

SPI

El bus de interfaz periférica en serie (SPI) se puede utilizar para comunicación en serie, dúplex completo. Utilice SCK (reloj), MOSI (salida maestra y entrada esclava) y MISO (entrada maestra y salida esclava). Necesita usar la biblioteca SPI, es decir, el programa debe incluir el archivo de encabezado SPI.h.

  1. Inicialización: SPI.begin ().

Supongo que te gusta

Origin blog.csdn.net/qq_42386127/article/details/98771322
Recomendado
Clasificación