435 lines
11 KiB
C++
435 lines
11 KiB
C++
|
|
/* **************************************** *
|
|
* Geschenk für Jochen *
|
|
* **************************************** *
|
|
* (C) 2017-02-06 Paolo Iocco *
|
|
* rev. 0.1 *
|
|
* **************************************** *
|
|
* Circuit diagram
|
|
* ---------------
|
|
* +-------+
|
|
* | ooooo |
|
|
* D1--TX<----| A |<---------RAW
|
|
* D0--RX---->| r |<---------GND
|
|
* RST------->| d |<---------RST
|
|
* GND------->| u |<---------VCC
|
|
* RST D2-------->| i |-----A3---D17 lHiL2
|
|
* CE D3----#--->| n |-----A2---D16 lHiL1
|
|
* DC D4-------->| o |-----A1---D15 lAuto2
|
|
* DIN D5<---#----| |-----A0---D14 lAuto1
|
|
* CLK D6<---#----| m |-----SCK--D13
|
|
* lCLK D7---------| i |-----MISO-D12
|
|
* lCS D8---------| n |--#--MOSI-D11
|
|
* lDIN D9----#----| i |--#--SS---D10 HV
|
|
* +-------+
|
|
*
|
|
* ***************************************** */
|
|
|
|
#include "sys64738.h"
|
|
#include "LedControl.h"
|
|
#include "TimerOne.h"
|
|
|
|
#define LCD_RST 2
|
|
#define LCD_CE 3
|
|
#define LCD_DC 4
|
|
#define LCD_SDI 5
|
|
#define LCD_SCK 6
|
|
#define _FONT FONT_6x8
|
|
#define lCLK 7
|
|
#define lCS 8
|
|
#define lDIN 9
|
|
#define HV 10
|
|
#define lAuto1 14
|
|
#define lAuto2 15
|
|
#define lHiL1 16
|
|
#define lHiL2 17
|
|
#define BASE 250000
|
|
|
|
LedControl lc=LedControl(lDIN,lCLK,lCS,1);
|
|
Display5110 Lcd(LCD_CE, LCD_RST, LCD_DC, LCD_SDI, LCD_SCK);
|
|
byte HochVolt=0;
|
|
unsigned long tempo=0;
|
|
long randNumber;
|
|
|
|
/* ************************************************ *
|
|
* switch the plasma ball and the HV-LED on and off *
|
|
* ************************************************ */
|
|
void Hoch_Volt(){
|
|
if (HochVolt==0){
|
|
digitalWrite(HV,HIGH);
|
|
digitalWrite(lHiL1,HIGH);
|
|
digitalWrite(13,HIGH);
|
|
HochVolt=1;
|
|
}
|
|
else {
|
|
digitalWrite(HV,LOW);
|
|
digitalWrite(lHiL1,LOW);
|
|
digitalWrite(13,LOW);
|
|
HochVolt=0;
|
|
}
|
|
}
|
|
|
|
/* ************************** *
|
|
* Lights the matrix randomly *
|
|
* ************************** */
|
|
void HiL_Random(){
|
|
randNumber = random(0,256);
|
|
lc.setRow(0,0,randNumber);
|
|
randNumber = random(0,256);
|
|
lc.setRow(0,1,randNumber);
|
|
randNumber = random(0,256);
|
|
lc.setRow(0,2,randNumber);
|
|
randNumber = random(0,256);
|
|
lc.setRow(0,3,randNumber);
|
|
randNumber = random(0,256);
|
|
lc.setRow(0,4,randNumber);
|
|
randNumber = random(0,256);
|
|
lc.setRow(0,5,randNumber);
|
|
randNumber = random(0,256);
|
|
lc.setRow(0,6,randNumber);
|
|
randNumber = random(0,256);
|
|
lc.setRow(0,7,randNumber);
|
|
}
|
|
|
|
/* ************************* *
|
|
* Lights the LEDs randomly *
|
|
* ************************* */
|
|
void Car_Random(){
|
|
randNumber = random(0,256);
|
|
digitalWrite(lHiL2,(randNumber & 0x01));
|
|
digitalWrite(lAuto1,(randNumber & 0x02));
|
|
digitalWrite(lAuto2,(randNumber & 0x04));
|
|
}
|
|
|
|
/* ************************************* *
|
|
* TRQ Service Routine - Every "BASE" us *
|
|
* ************************************* */
|
|
void IRQ_Service(){
|
|
tempo++;
|
|
if (tempo % 1 == 0)
|
|
HiL_Random();
|
|
if (tempo % 4 == 0)
|
|
Car_Random();
|
|
if (tempo % 10 == 0)
|
|
Hoch_Volt();
|
|
}
|
|
|
|
/* ***************** *
|
|
* Header first type *
|
|
* ***************** */
|
|
void Header1(){
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"**************",_FONT);
|
|
Lcd.WriteStringXY(0,1,"ENBN 2013-2017",_FONT);
|
|
Lcd.WriteStringXY(0,2,"**************",_FONT);
|
|
}
|
|
|
|
/* ****************** *
|
|
* Header second type *
|
|
* ****************** */
|
|
void Header2(){
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"**************",_FONT);
|
|
Lcd.WriteStringXY(0,1,"ENBN 2013-2017",_FONT);
|
|
Lcd.WriteStringXY(0,2,"***THE TEAM***",_FONT);
|
|
}
|
|
|
|
/* ************** *
|
|
* Setup Function *
|
|
* ************** */
|
|
void setup() {
|
|
|
|
pinMode(HV, OUTPUT);
|
|
pinMode(lAuto1, OUTPUT);
|
|
pinMode(lAuto2, OUTPUT);
|
|
pinMode(lHiL1, OUTPUT);
|
|
pinMode(lHiL2, OUTPUT);
|
|
pinMode(13, OUTPUT);
|
|
|
|
lc.shutdown(0,false);// turn off power saving, enables display
|
|
lc.setIntensity(0,1);// sets brightness (0~15 possible values)
|
|
lc.clearDisplay(0);// clear screen
|
|
|
|
Lcd.Init();
|
|
|
|
randomSeed(BASE);
|
|
|
|
Timer1.initialize(BASE); // 1s
|
|
Timer1.attachInterrupt(IRQ_Service);
|
|
}
|
|
|
|
/* ************************************* *
|
|
* Cyclic loop function - Messages & Co. *
|
|
* ************************************* */
|
|
void loop(){
|
|
|
|
Header1();
|
|
delay(3000);
|
|
|
|
Header1();
|
|
Lcd.WriteStringXY(3,3,"AWARD WINNING",_FONT);
|
|
Lcd.WriteStringXY(12,4,"TEAM SETUP",_FONT);
|
|
delay(2000);
|
|
|
|
Header1();
|
|
Lcd.WriteStringXY(3,3,"BEST IN CLASS",_FONT);
|
|
Lcd.WriteStringXY(0,4,"BEST IN SEGMNT",_FONT);
|
|
delay(2000);
|
|
|
|
Header1();
|
|
Lcd.WriteStringXY(9,3,"THIS IS OUR",_FONT);
|
|
Lcd.WriteStringXY(15,4,"HEARTFELT",_FONT);
|
|
Lcd.WriteStringXY(6,5,"APPRECIATION",_FONT);
|
|
delay(2000);
|
|
|
|
Header1();
|
|
Lcd.WriteStringXY(6,3,"TO OUR CHIEF",_FONT);
|
|
delay(2000);
|
|
|
|
Lcd.WriteStringXY(0,4,"DR. J. ASSFALG",_FONT);
|
|
delay(2000);
|
|
|
|
Lcd.WriteStringXY(0,5,"-THE BULLDOZER",_FONT);
|
|
delay(3000);
|
|
|
|
Header1();
|
|
Lcd.WriteStringXY(6,3,"STANDING FOR",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(0,4,"1. MASTERCLASS",_FONT);
|
|
Lcd.WriteStringXY(12,5,"TEAM DRILL",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(0,4," ",_FONT);
|
|
Lcd.WriteStringXY(3,4,"2. ALWAYS ACT",_FONT);
|
|
Lcd.WriteStringXY(3,5,"BEYOND LIMITS",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(0,4," ",_FONT);
|
|
Lcd.WriteStringXY(3,4,"3.NOTHING CAN",_FONT);
|
|
Lcd.WriteStringXY(0,5," ",_FONT);
|
|
Lcd.WriteStringXY(18,5,"STOP US!",_FONT);
|
|
delay(3000);
|
|
|
|
Header1();
|
|
Lcd.WriteStringXY(6,4,"-THANKS FOR-",_FONT);
|
|
Lcd.WriteStringXY(3,5,"(ALMOST) ALL!",_FONT);
|
|
delay(3000);
|
|
|
|
//* *********************************************** *
|
|
Header2();
|
|
delay(3000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(15,3,"--PAOLO--",_FONT);
|
|
Lcd.WriteStringXY(18,4,"AKA GYRO",_FONT);
|
|
Lcd.WriteStringXY(15,5,"GEARLOOSE",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(9,3,"--DOMINIK--",_FONT);
|
|
Lcd.WriteStringXY(3,4,"THE 8-HANDED",_FONT);
|
|
Lcd.WriteStringXY(9,5,"OCTOPUS(SY)",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(3,3,"--THOMAS K.--",_FONT);
|
|
Lcd.WriteStringXY(9,4,"THE GENERAL",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(18,3,"--TONI--",_FONT);
|
|
Lcd.WriteStringXY(3,4,"'MAKE THE LAB",_FONT);
|
|
Lcd.WriteStringXY(3,5,"GREAT AGAIN!'",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(12,3,"--DRASKO--",_FONT);
|
|
Lcd.WriteStringXY(3,4,"DONT FEAR ANY",_FONT);
|
|
Lcd.WriteStringXY(6,5,"DISCUSSION!!",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(12,3,"--ROBERT--",_FONT);
|
|
Lcd.WriteStringXY(6,4,"THE GREATEST",_FONT);
|
|
Lcd.WriteStringXY(12,5,"SUPERVISOR",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(3,3,"--THOMAS M6--",_FONT);
|
|
Lcd.WriteStringXY(0,4,"0/0 TIL END OF",_FONT);
|
|
Lcd.WriteStringXY(0,5,"YEAR? REALLY??",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(12,3,"--STEFAN--",_FONT);
|
|
Lcd.WriteStringXY(3,4,"ALWAYS A HAND",_FONT);
|
|
Lcd.WriteStringXY(0,5,"FOR AKI TOPICS",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(12,3,"--KONRAD--",_FONT);
|
|
Lcd.WriteStringXY(6,4,"SUPPORTED BY",_FONT);
|
|
Lcd.WriteStringXY(0,5,"THE UGLY DOGS!",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(3,3,"--CHRISTINE--",_FONT);
|
|
Lcd.WriteStringXY(6,4,"1ST LADY AND",_FONT);
|
|
Lcd.WriteStringXY(6,5,"XLS MISTRESS",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(15,3,"--DARIO--",_FONT);
|
|
Lcd.WriteStringXY(21,4,"THE 2ND",_FONT);
|
|
Lcd.WriteStringXY(0,5,"ITALIAN HV JOB",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(12,3,"--MARTIN--",_FONT);
|
|
Lcd.WriteStringXY(3,4,"NEEDS SOME HV",_FONT);
|
|
Lcd.WriteStringXY(0,5,"INFRASTRUCTURE",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(9,3,"--MICHAEL--",_FONT);
|
|
Lcd.WriteStringXY(9,4,"LOVED BEING",_FONT);
|
|
Lcd.WriteStringXY(9,5,"OFK CAR GUY",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(18,3,"--VERA--",_FONT);
|
|
Lcd.WriteStringXY(0,4,"DONT MESS WITH",_FONT);
|
|
Lcd.WriteStringXY(3,5,"OUR 2ND LADY!",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(12,3,"--MARCEL--",_FONT);
|
|
Lcd.WriteStringXY(0,4,"LEARNS TO LOVE",_FONT);
|
|
Lcd.WriteStringXY(3,5,"MT EQUIPMENT!",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(6,3,"--DENNIS--",_FONT);
|
|
Lcd.WriteStringXY(0,4,"NO NEED OF DRY",_FONT);
|
|
Lcd.WriteStringXY(0,5,"HANDS AT WORK!",_FONT);
|
|
delay(4000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(3,3,"-AND FINALLY-",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(3,3,"-UNFORGOTTEN-",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(0,4,"DR. ANDI SHORT",_FONT);
|
|
delay(2000);
|
|
|
|
Lcd.WriteStringXY(3,5,"THE STIMULANT",_FONT);
|
|
delay(3000);
|
|
|
|
Header2();
|
|
Lcd.WriteStringXY(3,3,"AND OF COURSE",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(6,4,"--MR. DIEZ--",_FONT);
|
|
delay(2000);
|
|
|
|
Lcd.WriteStringXY(0,5,"U'R NXT CHIEF!",_FONT);
|
|
delay(4000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(15,0,"-AND NOW-",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(9,1,"IN ORIGINAL",_FONT);
|
|
Lcd.WriteStringXY(18,2,"LANGUAGE",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(0,3,"WARN: EXPLICIT",_FONT);
|
|
Lcd.WriteStringXY(18,4,"CONTENT!",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.WriteStringXY(0,5,"BESTOF JOCHEN:",_FONT);
|
|
delay(3000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"--------------",_FONT);
|
|
Lcd.WriteStringXY(3,1,"DENEN MUESSEN",_FONT);
|
|
Lcd.WriteStringXY(9,2,"WIR MAL DIE",_FONT);
|
|
Lcd.WriteStringXY(30,3,"EIER",_FONT);
|
|
Lcd.WriteStringXY(6,4,"HOCHBINDEN!!",_FONT);
|
|
Lcd.WriteStringXY(0,5,"--------------",_FONT);
|
|
delay(5000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"--------------",_FONT);
|
|
Lcd.WriteStringXY(9,1,"DA MUSS MAN",_FONT);
|
|
Lcd.WriteStringXY(15,2,"JETZT MAL",_FONT);
|
|
Lcd.WriteStringXY(9,3,"GROSSZUEGIG",_FONT);
|
|
Lcd.WriteStringXY(21,4,"DRUEBER",_FONT);
|
|
Lcd.WriteStringXY(9,5,"PLANIEREN!!",_FONT);
|
|
delay(5000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"--------------",_FONT);
|
|
Lcd.WriteStringXY(15,1,"IHR IMMER",_FONT);
|
|
Lcd.WriteStringXY(15,2,"MIT EUREM",_FONT);
|
|
Lcd.WriteStringXY(12,3,"FREITZEIT-",_FONT);
|
|
Lcd.WriteStringXY(6,4,"ORIENTIERTEN",_FONT);
|
|
Lcd.WriteStringXY(6,5,"ARBEITSSTIL!",_FONT);
|
|
delay(5000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"--------------",_FONT);
|
|
Lcd.WriteStringXY(24,1,"LAUTER",_FONT);
|
|
Lcd.WriteStringXY(15,2,"MUSCHI'S!",_FONT);
|
|
Lcd.WriteStringXY(0,5,"--------------",_FONT);
|
|
delay(5000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"--------------",_FONT);
|
|
Lcd.WriteStringXY(18,1,"WIR SIND",_FONT);
|
|
Lcd.WriteStringXY(15,2,"NICHT ZUM",_FONT);
|
|
Lcd.WriteStringXY(3,3,"EIERSCHAUKELN",_FONT);
|
|
Lcd.WriteStringXY(30,4,"DA!!",_FONT);
|
|
Lcd.WriteStringXY(0,5,"--------------",_FONT);
|
|
delay(5000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"--------------",_FONT);
|
|
Lcd.WriteStringXY(15,1,"DIE HABEN",_FONT);
|
|
Lcd.WriteStringXY(27,2,"KEINE",_FONT);
|
|
Lcd.WriteStringXY(27,3,"EIER!",_FONT);
|
|
Lcd.WriteStringXY(0,5,"--------------",_FONT);
|
|
delay(5000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"--------------",_FONT);
|
|
Lcd.WriteStringXY(6,1,"ES IST IMMER",_FONT);
|
|
Lcd.WriteStringXY(12,2,"EINE FRAGE",_FONT);
|
|
Lcd.WriteStringXY(6,3,"WIE WEIT MAN",_FONT);
|
|
Lcd.WriteStringXY(6,4,"SICH BUECKEN",_FONT);
|
|
Lcd.WriteStringXY(30,5,"WILL",_FONT);
|
|
delay(5000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"--------------",_FONT);
|
|
Lcd.WriteStringXY(3,1,"DA GEHST DOCH",_FONT);
|
|
Lcd.WriteStringXY(15,2,"SCHON MIT",_FONT);
|
|
Lcd.WriteStringXY(15,3,"RUNTERGE-",_FONT);
|
|
Lcd.WriteStringXY(6,4,"LASSNER HOSE",_FONT);
|
|
Lcd.WriteStringXY(6,5,"INS MEETING!",_FONT);
|
|
delay(5000);
|
|
|
|
Lcd.Clear();
|
|
Lcd.WriteStringXY(0,0,"**************",_FONT);
|
|
Lcd.WriteStringXY(12,1,"ALLES GUTE",_FONT);
|
|
Lcd.WriteStringXY(18,2,"UND VIEL",_FONT);
|
|
Lcd.WriteStringXY(15,3,"ERFOLG IM",_FONT);
|
|
Lcd.WriteStringXY(6,4,"NEUEN JOB !!",_FONT);
|
|
Lcd.WriteStringXY(0,5,"**************",_FONT);
|
|
delay(10000);
|
|
}
|
|
|