Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LCDKeypad.h>
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
- int adc_key_val[5] ={50, 200, 400, 600, 800};
- int NUM_KEYS = 5;
- int adc_key_in;
- int key=-1;
- int oldkey=-1;
- byte armsDown[8] = {
- 0b00100,
- 0b01010,
- 0b00100,
- 0b00100,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b01010
- };
- byte uppercut1[8] = {
- 0b00100,
- 0b01010,
- 0b00100,
- 0b00100,
- 0b01111,
- 0b10100,
- 0b00100,
- 0b01010
- };
- byte uppercut2[8] = {
- 0b00100,
- 0b01010,
- 0b00100,
- 0b00101,
- 0b01110,
- 0b10100,
- 0b00100,
- 0b01010
- };
- byte bighead[8] = {
- 0b01110,
- 0b01010,
- 0b01110,
- 0b00100,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b01010
- };
- byte biggerhead[8] = {
- 0b11111,
- 0b10001,
- 0b11111,
- 0b00100,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b01010
- };
- byte exp1[8] = {
- 0b00000,
- 0b10001,
- 0b11111,
- 0b00100,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b01010
- };
- byte exp2[8] = {
- 0b00000,
- 0b00000,
- 0b11111,
- 0b00100,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b01010
- };
- byte exp3[8] = {
- 0b00000,
- 0b00000,
- 0b01110,
- 0b00100,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b01010
- };
- byte exp4[8] = {
- 0b00000,
- 0b00000,
- 0b00100,
- 0b00100,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b01010
- };
- void setup() {
- lcd.begin(16, 2);
- lcd.createChar(0, uppercut1);
- lcd.createChar(1, uppercut2);
- // create a new character
- lcd.createChar(2, armsDown);
- // create a new character
- lcd.createChar(3, bighead);
- // create a new character
- lcd.createChar(4, biggerhead);
- lcd.createChar(5, exp1);
- lcd.createChar(6, exp2);
- lcd.createChar(7, exp3);
- lcd.setCursor(1, 0);
- lcd.print("ULTIMATE POOP");
- }
- void loop() {
- adc_key_in = analogRead(0); // read the value from the sensor
- key = get_key(adc_key_in); // convert into key press
- if(key != oldkey){
- upperCut();
- }
- }
- int get_key(unsigned int input)
- {
- int k;
- for (k = 0; k < NUM_KEYS; k++)
- {
- if (input < adc_key_val[k])
- {
- return k;
- }
- }
- if (k >= NUM_KEYS)k = -1; // No valid key pressed
- return k;
- }
- void upperCut(){
- lcd.setCursor(5, 1);
- lcd.write(2);
- lcd.setCursor(4, 1);
- lcd.write(2);
- delay(400);
- lcd.setCursor(4, 1);
- lcd.write(byte(0));
- delay(200);
- lcd.setCursor(4, 1);
- lcd.write(1);
- delay(100);
- lcd.setCursor(5 ,1);
- lcd.write(3);
- delay(70);
- lcd.setCursor(5 ,1);
- lcd.write(4);
- delay(70);
- lcd.setCursor(5 ,1);
- lcd.write(5);
- delay(70);
- lcd.setCursor(5 ,1);
- lcd.write(6);
- delay(70);
- lcd.setCursor(5 ,1);
- lcd.write(7);
- delay(70);
- lcd.createChar(7, exp4);
- for(int i = 5; i < 16; i++){
- if(i > 5){
- lcd.setCursor((i-1), 1);
- lcd.write(" ");
- }
- lcd.setCursor(i, 1);
- lcd.write(7);
- delay(250);
- }
- lcd.setCursor(15, 1);
- lcd.write(" ");
- }
Add Comment
Please, Sign In to add comment