Created
December 19, 2017 10:29
-
-
Save Chelsea486MHz/028e267ee1a42e5e7a6616058288ec2b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <LCD5110_Basic.h> | |
| #include <avr/pgmspace.h> | |
| #define RST_PIN 25 /* Resets the flash duration */ | |
| #define INC_PIN 26 /* Increases it by 50 ms */ | |
| #define DEC_PIN 27 /* Decreases it by 50 ms */ | |
| #define SAF_PIN 28 /* Safety mechanism */ | |
| #define TRG_PIN 29 /* Triggers the flash */ | |
| #define FLS_PIN 13 /* The flash is connected to this pin */ | |
| #define SCR_RST 6 | |
| #define SCR_CE 7 | |
| #define SCR_DC 5 | |
| #define SCR_DIN 4 | |
| #define SCR_CLK 3 | |
| #define DEFAULT_FLASH_DURATION 500 /* 100 ms */ | |
| #define FLASH_DURATION_STEP 50 | |
| #define SAFETY_ENABLED 0xFF /* Safety is enabled. Can't use the flash. */ | |
| #define SAFETY_DISABLED 0x00 /* Safety is disabled. SMILE! */ | |
| const uint8_t screen[] PROGMEM={ | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0010 (16) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0020 (32) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0030 (48) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0040 (64) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x82, 0xBA, 0xBA, 0x82, 0xBA, 0xBA, 0x82, 0xBA, 0xBA, 0x82, // 0x0050 (80) pixels | |
| 0xFE, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0060 (96) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0070 (112) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0080 (128) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0090 (144) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00A0 (160) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00B0 (176) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00C0 (192) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00D0 (208) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, // 0x00E0 (224) pixels | |
| 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, // 0x00F0 (240) pixels | |
| 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0100 (256) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0110 (272) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0120 (288) pixels | |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x20, // 0x0130 (304) pixels | |
| 0x20, 0x27, 0x28, 0x28, 0x27, 0x20, 0x2F, 0x21, 0x22, 0x2F, 0x20, 0x2F, 0x28, 0x28, 0x20, 0x28, // 0x0140 (320) pixels | |
| 0x2F, 0x28, 0x20, 0x2F, 0x21, 0x22, 0x2F, 0x20, 0x2F, 0x2A, 0x28, 0x20, 0x20, 0x20, 0xE0, 0x00, // 0x0150 (336) pixels | |
| 0x00, 0xFC, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, // 0x0160 (352) pixels | |
| 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, // 0x0170 (368) pixels | |
| 0x84, 0x84, 0x84, 0x04, 0x84, 0x84, 0x04, 0x04, 0x04, 0x84, 0x84, 0x84, 0x04, 0x04, 0xFC, 0x00, // 0x0180 (384) pixels | |
| 0x00, 0x00, 0xFD, 0x44, 0x54, 0x44, 0xFC, 0x44, 0x54, 0x44, 0xFC, 0x44, 0x54, 0x44, 0xFC, 0x44, // 0x0190 (400) pixels | |
| 0x54, 0x44, 0xFC, 0x44, 0x54, 0x44, 0xFC, 0x44, 0x54, 0x44, 0xFC, 0x44, 0x54, 0x44, 0xFC, 0x44, // 0x01A0 (416) pixels | |
| 0x54, 0x44, 0xFD, 0x00, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // 0x01B0 (432) pixels | |
| 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // 0x01C0 (448) pixels | |
| 0x40, 0x40, 0x40, 0x5F, 0x5F, 0x40, 0x5F, 0x5F, 0x40, 0x5F, 0x5F, 0x40, 0x53, 0x54, 0x5C, 0x5C, // 0x01D0 (464) pixels | |
| 0x48, 0x40, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x44, 0x55, 0x44, 0x7F, 0x44, 0x55, 0x44, 0x7F, 0x44, // 0x01E0 (480) pixels | |
| 0x55, 0x44, 0x7F, 0x44, 0x55, 0x44, 0x7F, 0x44, 0x55, 0x44, 0x7F, 0x44, 0x55, 0x44, 0x7F, 0x44, // 0x01F0 (496) pixels | |
| 0x55, 0x44, 0x7F, 0x44, 0x55, 0x44, 0x7F, 0x00, | |
| }; | |
| extern uint8_t SmallFont[]; | |
| uint16_t flash_duration; | |
| uint8_t safety_state; | |
| LCD5110 scr(SCR_CLK, SCR_DIN, SCR_DC, SCR_RST, SCR_CE); | |
| void setup(void) | |
| { | |
| scr.InitLCD(60); | |
| scr.setFont(SmallFont); | |
| scr.drawBitmap(0, 0, screen, 84, 48); | |
| pinMode(RST_PIN, INPUT_PULLUP); | |
| pinMode(INC_PIN, INPUT_PULLUP); | |
| pinMode(DEC_PIN, INPUT_PULLUP); | |
| pinMode(SAF_PIN, INPUT_PULLUP); | |
| pinMode(TRG_PIN, INPUT_PULLUP); | |
| pinMode(FLS_PIN, OUTPUT); | |
| flash_duration = DEFAULT_FLASH_DURATION; | |
| } | |
| void loop(void) | |
| { | |
| if (digitalRead(RST_PIN) == HIGH) | |
| flash_duration = DEFAULT_FLASH_DURATION; | |
| else if (digitalRead(INC_PIN) == HIGH) | |
| flash_duration += FLASH_DURATION_STEP; | |
| else if (digitalRead(DEC_PIN) == HIGH) | |
| flash_duration -= FLASH_DURATION_STEP; | |
| else if (digitalRead(SAF_PIN) == HIGH) | |
| { | |
| if (safety_state == SAFETY_ENABLED) | |
| { | |
| safety_state = SAFETY_DISABLED; | |
| scr.print(1, 1, "SAFETY OFF"); | |
| } | |
| else | |
| { | |
| safety_state = SAFETY_ENABLED; | |
| scr.print(1, 1, "SAFETY ON "); | |
| } | |
| } | |
| else if (digitalRead(TRG_PIN) == HIGH) | |
| { | |
| digitalWrite(FLS_PIN, HIGH); | |
| delay(flash_duration); | |
| digitalWrite(FLS_PIN, LOW); | |
| } | |
| scr.printNumI(47, 1, flash_duration, 1); | |
| delay(750); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment