Paso 4:
Inserte el siguiente código en el IDE de Arduino. Tenga en cuenta los comentarios en el código que dirá qué hace cada parte del código.
/*
******************************************************
* Prueba SPI (conducir un potenciómetro Digital en este caso)
*
* Este módulo utiliza la librería SPI Arduino (viene incluido con
* el IDE de Arduino) para permitir la comunicación entre un
* Programa Arduino y un SPI habían habilitado viruta periférica.
*
* La rutina lee en valores de 8 bits, almacena el valor
* en la variable "pote" y luego envía "olla" a través del SPI.
* *
* La librería SPI usa pin 13 de Arduino Uno para el reloj.
* Serial de los datos se envía en el pin 11.
*
* Esta rutina utiliza pin 10 como el chip seleccionar para el
* Dispositivo SPI a programar.
*
* Clavijas 2-9 se usan para leer valores de 8 bits para el octeto
* a través de SPI
******************************************************
*/
#include < SPI.h > / / enlaces preescritos biblioteca SPI en el código
void setup()
{
pinMode (2, entrada); Set de pines 2-9 como entradas
pinMode (3, entrada);
pinMode (4, entrada);
pinMode (5, entrada);
pinMode (6, entrada);
pinMode (7, entrada);
pinMode (8, entrada);
pinMode (9, entrada);
pinMode (10, salida); Sets pasadores SPI que salidas
pinMode (11, salida);
pinMode (13, salida);
digitalWrite (2, alto); Conjunto de las resistencias de pull-up de Arduino activadas
digitalWrite (3, alto); Esto establece un interno al chip
digitalWrite (4, alto); resistor de pull-up en el modo un pin desconectado
digitalWrite (5, alto); es fiable en lógica 1
digitalWrite (6, alto);
digitalWrite (7, alto);
digitalWrite (8, HIGH);
digitalWrite (9, alto);
digitalWrite (10, HIGH);
digitalWrite (11, alto);
digitalWrite (13, HIGH);
SPI.begin(); Inicializar los parámetros de SPI
SPI.setBitOrder(MSBFIRST); MSB a primero
SPI.setDataMode(SPI_MODE3); Para borde de levantamiento del reloj
SPI.setClockDivider(SPI_CLOCK_DIV64); Divisor de reloj (opcional)
Ver sitio de Arduino o Wikipedia para obtener más información sobre estos ajustes
}
void loop()
{
int val = 0; "val" es una variable de prueba utilizada al leer los pins
int j = 0; "j" es una variable utilizada en la operación de leer los datos
pote de byte = B00000000; Cero todos los bits en bytes "pote"
para (int i = 0; i < 8; i ++) / / bucle para leer cada uno de 8 pines de entrada
{
j = i + 2; Añadir 2 cuenta con pines de entrada de bucle
Val = digitalRead(j); Perno adecuado leer
if(Val == High)
{
bitSet(pot, i); Conjunto apropiado de bits 1 basado en conteo de lazo me
} / / De lo contrario dejarlo en 0
}
}
digitalWrite(10,LOW); Gota SPI chip-select 0 (pin 10 del Arduino)
SPI.transfer(pot); Transferencia SPI de olla variable
digitalWrite(10,HIGH); Levantar el chip-select 1
Delay(10000); Bucle de demora 10 segundos (elegir su marco de tiempo)
} / / Datos serán leídos y enviados una vez cada 10 segundos en base a esto