Documentos de Académico
Documentos de Profesional
Documentos de Cultura
h>
void setup()
{
pinMode(53,OUTPUT); //Si tienes mas de 1 esclavo en SPI, se necesita siempre el
pin 53 de SS mas cualquier otro.
pinMode(10,OUTPUT); //En este caso utilizo el pin 10 como segundo selector de
esclavo.
SPI.beginTransaction(SPISettings(500000,MSBFIRST,SPI_MODE0)); //Configuro la
velocidad de transmision y el modo SPI
digitalWrite(53,LOW); //Selecciono el esclavo asociado al pin 53, en este caso el
MCP6S22
SPI.transfer(0x40); //Accedo al registro de ganancias
SPI.transfer(0x01); //Pongo una ganancia de +2 en el canal 0 (predeterminado)
digitalWrite(53,HIGH); //Corto la comunicacion con el esclavo
delay(1000); //Doy un tiempo para que se realice la medida necesaria a la salida
del MCP
digitalWrite(53,LOW); //Selecciono el esclavo
SPI.transfer(0x41); //Accedo al registro de canales
SPI.transfer(0x01); //Selecciono el canal 1 como entrada al integrado
digitalWrite(53,HIGH); //Corto la comunicacion
digitalWrite(53,LOW); //Selecciono el esclavo
SPI.transfer(0x40); //Accedo al registro de ganancias
SPI.transfer(0x04); //Pongo una ganancia de +8 (Siendo el canal 1 mi entrada, la
cual he seleccionado previamente)
digitalWrite(53,HIGH); //Corto la comunicacion
delay(1000); //Doy un tiempo para que se realice la medida necesaria a la salida
del MCP
SPI.beginTransaction(SPISettings(8000000,MSBFIRST,SPI_MODE0)); //Configuro la
velocidad de transmision y el modo SPI para el segundo integrado
}
void loop()
{
for(int i = 0; i<4096;i+=32)
{
salida(i); //Este for dibujara el diente de sierra mediante una variable que
crece en forma de rampa y al llegar a un valor maximo vuelve a cero y empieza a
crecer de nuevo
}
}