Estoy intentando aprender a controlar un ATMega328 IC desde mi ATMega2560 Arduino utilizando SPI. He encontrado varios tutoriales que usan potenciómetros digitales, pero no tengo potenciómetros digitales y todo lo que quiero aprender es hacer parpadear un LED en el ATMega328 del código que se ejecuta en ATMega2560 a través de SPI.
¿Puede alguien proporcionar algunas líneas de código para mostrarme cómo se hace esto?
Aquí está mi configuración de pines (usando los nombres de pines de Arduino para ambos IC):
- ATMega2560 pin 50 (MISO) = > ATMega328 pin 12 (MISO)
- ATMega2560 pin 51 (MOSI) = > ATMega328 pin 11 (MOSI)
- ATMega2560 pin 52 (SCK) = > ATMega328 pin 13 (SCK)
- ATMega2560 pin 2 = > ATMega328 pin 10 (SS)
- ATMega2560 5V pin = > ATMega328 Vcc pin
- pin de ATMega2560 GND = > ATMega328 GND pin
- ATMega328 pin 3 = > LED que me gustaría parpadear
Aquí está mi código actual:
#include "SPI.h" // necessary library
int SLAVESELECT = 2;
int DATAOUT = 51;
int DATAIN = 50;
int SPICLOCK = 52;
void setup()
{
pinMode(DATAOUT, OUTPUT);
pinMode(DATAIN, INPUT);
pinMode(SPICLOCK, OUTPUT);
pinMode(SLAVESELECT, OUTPUT);
SPI.begin(); // wake up the SPI bus.
SPI.setBitOrder(MSBFIRST);
}
void setValue(int pin, int value)
{
digitalWrite(SLAVESELECT, LOW);
SPI.transfer(pin); // send command byte
SPI.transfer(value); // send value (0~255)
digitalWrite(SLAVESELECT, HIGH);
}
void loop()
{
setValue(0x11,255);
delay(1000);
setValue(0x11,0);
delay(1000);
}