Working serial, text scrolling
This commit is contained in:
commit
7fbc7230dc
3 changed files with 210 additions and 0 deletions
80
mpcArduino.ino
Normal file
80
mpcArduino.ino
Normal file
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
Project to interface a screen connected to an arduino with data from a vash script.
|
||||
Used as start up for a HTPC.
|
||||
*/
|
||||
// OLED thingies
|
||||
#include <SPI.h>
|
||||
#include <Wire.h>
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SSD1306.h>
|
||||
//Functionality
|
||||
|
||||
#define OLED_RESET 4
|
||||
Adafruit_SSD1306 display(OLED_RESET);
|
||||
|
||||
#define NUMFLAKES 10
|
||||
#define XPOS 0
|
||||
#define YPOS 1
|
||||
#define DELTAY 2
|
||||
|
||||
|
||||
#define LOGO16_GLCD_HEIGHT 16
|
||||
#define LOGO16_GLCD_WIDTH 16
|
||||
static const unsigned char PROGMEM logo16_glcd_bmp[] =
|
||||
{ B00000000, B11000000,
|
||||
B00000001, B11000000,
|
||||
B00000001, B11000000,
|
||||
B00000011, B11100000,
|
||||
B11110011, B11100000,
|
||||
B11111110, B11111000,
|
||||
B01111110, B11111111,
|
||||
B00110011, B10011111,
|
||||
B00011111, B11111100,
|
||||
B00001101, B01110000,
|
||||
B00011011, B10100000,
|
||||
B00111111, B11100000,
|
||||
B00111111, B11110000,
|
||||
B01111100, B11110000,
|
||||
B01110000, B01110000,
|
||||
B00000000, B00110000 };
|
||||
|
||||
#if (SSD1306_LCDHEIGHT != 32)
|
||||
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
|
||||
#endif
|
||||
|
||||
// Vars
|
||||
String inputString = ""; // a string to hold incoming data
|
||||
boolean stringComplete = false; // whether the string is complete
|
||||
|
||||
boolean repeat = false;
|
||||
boolean shuffle = false;
|
||||
int volume = 100;
|
||||
String title = "Yesterdays";
|
||||
String artist = "Guns 'n Roses";
|
||||
String album = "Appetite for Destruction";
|
||||
|
||||
unsigned int tick = 0;
|
||||
unsigned int maxticks = 0;
|
||||
|
||||
void setup() {
|
||||
// initialise serial
|
||||
Serial.begin(9600);
|
||||
// by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
|
||||
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32)
|
||||
// init done
|
||||
display.clearDisplay();
|
||||
display.display();
|
||||
delay(500);
|
||||
layout(tick);
|
||||
calcMaxTicks();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// print the string when a newline arrives:
|
||||
if (stringComplete) {
|
||||
setFromSerial( inputString );
|
||||
}
|
||||
layout(tick++);
|
||||
if ( tick > maxticks ) tick = 0;
|
||||
delay(500);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue