mirror of
https://github.com/dekuNukem/exixe.git
synced 2025-10-31 11:17:03 -07:00
added more arduino examples
This commit is contained in:
@@ -1,23 +1,40 @@
|
||||
#include <SPI.h>
|
||||
#define SPI_BUF_SIZE 16
|
||||
|
||||
uint8_t spi_buf[SPI_BUF_SIZE];
|
||||
const int slaveSelectPin = 10;
|
||||
uint8_t count;
|
||||
uint8_t slaveSelectPin = 10;
|
||||
|
||||
void print_digit(uint8_t digit)
|
||||
// brightness between 0 to 127, 0 off 127 fully on
|
||||
void display_digit(uint8_t digit, uint8_t brightness, uint8_t cs_pin)
|
||||
{
|
||||
// set the enable bit to 1
|
||||
memset(spi_buf, 0x80, SPI_BUF_SIZE);
|
||||
uint8_t spi_buf[SPI_BUF_SIZE];
|
||||
memset(spi_buf, 0x80, SPI_BUF_SIZE); // set the EN bit of each byte to 1
|
||||
spi_buf[0] = 0xaa; // first byte, header
|
||||
// LED orange color
|
||||
spi_buf[13] |= 127;
|
||||
spi_buf[14] |= 28;
|
||||
spi_buf[15] |= 0;
|
||||
|
||||
spi_buf[13] = 0; // LED red unchanged
|
||||
spi_buf[14] = 0; // LED green unchanged
|
||||
spi_buf[15] = 0; // LED blue unchanged
|
||||
digit = digit % 10; // digit is now between 0 and 9
|
||||
digit++; // digit is now between 1 and 10, we can use it as the index for the SPI buffer now
|
||||
spi_buf[digit] |= 127; // that digit fully on
|
||||
spi_buf[digit] |= brightness; // set that digit to brightness
|
||||
digitalWrite(cs_pin, LOW);
|
||||
for (int i = 0; i < SPI_BUF_SIZE; ++i)
|
||||
SPI.transfer(spi_buf[i]);
|
||||
digitalWrite(cs_pin, HIGH);
|
||||
}
|
||||
|
||||
// color between 0 to 127, 0 off 127 fully on
|
||||
void set_led(uint8_t red, uint8_t green, uint8_t blue, uint8_t cs_pin)
|
||||
{
|
||||
uint8_t spi_buf[SPI_BUF_SIZE];
|
||||
memset(spi_buf, 0, SPI_BUF_SIZE); // clear the buffer
|
||||
spi_buf[0] = 0xaa; // first byte, header
|
||||
spi_buf[13] = 0x80 | red;
|
||||
spi_buf[14] = 0x80 | green;
|
||||
spi_buf[15] = 0x80 | blue;
|
||||
digitalWrite(cs_pin, LOW);
|
||||
for (int i = 0; i < SPI_BUF_SIZE; ++i)
|
||||
SPI.transfer(spi_buf[i]);
|
||||
digitalWrite(cs_pin, HIGH);
|
||||
}
|
||||
|
||||
void setup()
|
||||
@@ -32,12 +49,7 @@ void setup()
|
||||
void loop()
|
||||
{
|
||||
count++;
|
||||
print_digit(count);
|
||||
|
||||
digitalWrite(slaveSelectPin, LOW);
|
||||
for (int i = 0; i < SPI_BUF_SIZE; ++i)
|
||||
SPI.transfer(spi_buf[i]);
|
||||
digitalWrite(slaveSelectPin, HIGH);
|
||||
|
||||
set_led(127, 0, 127, slaveSelectPin); // should be purple
|
||||
display_digit(count, 127, slaveSelectPin);
|
||||
delay(500);
|
||||
}
|
||||
Reference in New Issue
Block a user